This project creates a RGB LED lit love heart which is controlled by a PIC12F683 microcontroller.  I designed the project as a gift for my wife on our 15th wedding anniversary (since she puts up with my addiction to electronics I thought she deserved something in return!).

The love heart is made from a 200x150x6mm sheet of plexi-glass which is cut and sanded to create the optical effect and then mounted on the control board.  Even if you are not into microcontrollers the display can be easily adapted to show any shape (or shapes) you like; furthermore any high-intensity LEDs can be used allowing you to create a static light display using little more than some LEDs, resistors and a power source.

In this instructable I will walk you through the various steps and techniques used to make this unique display item.

Note: The high brightness LEDs, PWM colour mixing and the varying intensities confuse my video camera a lot and it seems that the camera is overly sensitive to blue.  Despite this I hope the video gives you some idea of how the display functions; the display outputs 35 unique colours fading between each.

Step 1: Items You Will Need

To build this project you will need some basic tools in order to work with the plexiglass.  In addition you will need a PCB (printed circuit board) which you can either make yourself, or use my supplied Eagle CAD files to order a PCB from one of the many board producers available on the Internet.

You will need:

1x 200x150x6mm sheet of plexi-glass
1x Aluminium tape
1x Double-sided sticky tape
1x P600 and/or P1200 fine grain sand-paper
1x sharp hobby knife
1x dot-punch
1x black fine-line marker pen
1x Printed Circuit Board
1x PIC12F683
1x DIP-8 IC Socket
3x 1K Ohm resistor
10x 56R resistor
5x 120R resistor
5x High-intensity RGB LEDs (common anode)
2x 100nF capacitors
1x 10uF capacitor
1x 7805 5V Regulator
1x 2.1mm DC Jack
3x BC337 NPN Transistors
1x 6 pin right-angle 2.54mm header (optional)

If you don't want to build the more complex RGB LED controller you can use 5 high intensity red LEDs and resistors instead.

<p>can you share file .hex for me ??</p>
<p>slymnynrdg@hotmail.com <br>c code you can send me or hex file?</p>
Cld u pls send me hex file: hellloose@hotmail.com
@maczv inc. : contact me for the hex file : nodoubtman@hotmail.com<br> <br> cya!
if you do not mind could give the .hex, please. when I want to compile the code I generated error. you could help me to solve the problem. the error raised is this:<br><br> <br>Error [192] undefined identifier &quot;GPIO2&quot;<br>Error [192] undefined identifier &quot;GPIO5&quot;<br>Error [192] undefined identifier &quot;GPIO4&quot;<br>Error [192] undefined identifier &quot;OPTION&quot;<br>Error [192] undefined identifier &quot;T1SYN
@macz inc. <br>go to : Build Options for projet, go to compiler, on the second line under macro : enter : _LEGACY_HEADERS, click on Add, then press ok, compile your code and you are done <br> <br>tell me if it is working, it worked for me <br>have a good day! <br>marC:)
I look forward to seeing what you make with the laser engraver.
Simoninns, going to do this for a christmas gift. However the schematic in the PDF is unreadable. Do you have a larger copy of the schematic?<br>thanks Mike
You can get a much better copy over on my website www.waitingforfriday.com in the projects section
Thank you. Got it.
Good night, prettu cute job, very creative idea. I just have a doubt about the schematic. I wonder if it was correct to connect the cathodes to the 5v power, wouldn't it be to connect the cathodes to ground via the transistor and the anode to the source. I see that the configuration I suggest is for common cathode and the design for common anode but the schematic doesn't make it clear. Anyways I really liked that project I hope I can do it as well.
hi, this is a very very cool project..<br>i'd like to make one as a present for my partner..<br><br>However, i can't seem to successfully build the code on MPLAB using Hi Tech C Compiler..<br>Can anyone help me?I'm new to the PIC world.. <br><br>Thanks
What error messages is the compiler giving you?
It's the __config part.. All of them are undefined identifiers.. Tried looking for alternative names for them like I did for gpio2,4&amp;5, and t1sync but can't find any..<br><br>Any help is much appreciated.. Thanks..
If the compiler can't recognise the config lines it's likely that you do not have the correct device selected (and therefore it is picking the wrong header file).<br><br>In MPLAB click on the 'Configure' menu and then 'Select Device...' and confirm that you have the PIC12F683 selected.
Thanks for your quick reply.<br><br>I checked, and i had actually configured it correctly.<br><br>Does the compiler version play a part? It stated in the 'Select Device..' menu, the supported compiler is ver 9.80. while i am using ver 9.82<br><br>
It should compile on a newer version of the compiler... I can't really see anything from the screenshot (it pops up very small). I suggest you post a support question over on the hitech forums. The compiler should select the correct header file from the configured device once it seems the #include directive.
Very nice. Would make a great sign for a reception desk and office door ;-)
Since the plexi-glass is hand 'etched' you could put anything you like on it (provided it wasn't too complex). The more elaborate the template the harder it will be to cut and sand though. My thoughts were that, if you had access to a laser cutter or CNC router, you could etch something really cool like a monochrome image of someone or a logo.

About This Instructable




More by simoninns:RGB LED Love Heart MicroSimon 
Add instructable to: