LED Heart With a Vibrating Motor
The LED heart is based on ATmega328p MCU and consists
of 21 bright LEDS, it also has a vibrating motor to make some sound. The heart has different LED effects such as blinking; heart beating; sound and light Morse coded phrase “I love you” (in Russian, but you can easily recode it in any other language); fading in and out; and many others. Software is written by means of Arduino IDE. Add new effects and change available ones anyway you like. The device is powered by rechargeable battery, recharging scheme is provided. When LED heart stops blinking, just plug it into USB socket to charge.
So, let’s do it!
Parts and Soldering
You will need:
1) 1 x PCB
You can use this one, factory made, or make it yourself. All sources are available: gerber files and full KiCad project.
2) 1 x ATmega328P-AU – microcontroller
3) 1 x MCP73831T-2ACI/OT - charge management controller
4) 2 x 0,1 uF cap, 0805
5) 22 x 360 Ohm resistor, 0805
6) 1 x 2 kOhm resistor, 0805
7) 2 x 10 kOhm resistor, 0805
8) 1 x BSS138 – n-channel transistor, sot-23
9) 22 x LEDS, 0805 – choose your favourite colours; 21 LEDS – for heart, 1 LED – for charge indicator
10) 1 x USB Mini-B SMD connector for charging
11) 1 x SPDT slide switch to turn on and off the heart
12) 1 x vibrating motor, this one suits fine
13) 1 x any 3,7 V Li-Ion rechargeable battery like this one
14) Programmer to program the heart. You can use Arduino Nano or Uno programmed with “ArduinoISP” sketch or avr programmer.
As you can see all parts are big enough for hand soldering. Don’t hesitate!
Programming
After we get heart soldered we have to program it. For programming we need programmer, mentioned in Step 1, Arduino IDE, sketch. In heart ATmega328P-AU uses no external crystal, but internal oscillator to run program. Arduino IDE doesn’t have description of such a configuration by default, so one needs to install it. How to do this is described for example here and here. Following the examples just install new configuration, not program MCU. After installation choose "ATmega328 on a breadboard (8 MHz internal clock)". Be careful! Choose exactly this configuration! If chosen configuration is wrong, you will not be able to reprogram microcontroller without external crystal! We will program the device using ISP connector on the board. Connect programmer you use, say Arduino Nano, to your soldered heart. Detailed information can be found here steps 2 – 6. In Arduino IDE choose “Tools – Programmer - ArduinoAsISP”. Then choose “Tools –Burn Bootloader”. Wait for completion. Open sketch for the heart. Choose “File – Upload Using Programmer”. Wait for completion. Turn on your LED heart!