DIY LED Plexiglass christmas decorations (PIC version)

By on December 14, 2011

Very few components, plexiglass and a CNC are the ingredients to make wonderful brilliant figures to decorate the Christmas tree or our house this Christmas and New Year. Let’s see how to do it.

With the LED is possible to do things that with the traditional sources of artificial light was not allowed, like signs and figures obtained by projecting in a sheet of plexiglass the LED light. If we put a diode in parallel to the surface of a sheet of glass or transparent plastic, its light passes through the material and in the front is not seen. Making an incision on the surface, the light stops in them, and show the figure. Here, this is the technique of the modern LED signs, and we propose to experiment with creating some interesting and striking bright objects to use as Christmas decorations at home or where you prefer.Each object consists of an electronic circuit that turns on an LED RGB to compose various shades of color and a “mechanical” part formed by a plexiglass object. Yeah, but how we can work on plexiglass? Simple, with a CNC machine or with an hand drill.


The electronic circuit

As you can see, the circuit is simple and consists of a Microchip PIC12F675 programmed in PICBASIC PRO which works perfectly with 3 volts, which allows us to power the circuit with a lithium coin type CR2032.
Once powered the circuit after power-on-reset, the PIC initializes its own lines of I/O by assigning GP1, GP2, GP4 as dedicated outputs to control RGB LED LD1; GP0 is instead initialized as input assigned to the A/D converter (AN0) and we connected it to a photoresistor. This solution allows us to turn on the circuit only if the ambient light is weak enough (or if it’s dark …) to allow to see the figure carved into the plastic, but if the environment is too bright, the circuit turns off, so I do not consume the battery.
In the circuit we can use either RGB LED common anode and RGB LED common cathode.
After power on the circuit starts fading, gradually obtained by modulating PWM channels of the individual color of the tri-color LEDs.
After each cycle of fading, the microcontroller checks the analog input AN0 which is connected to the photoresistor, so if in the meantime the environment is too enlightened, firmware sends it in sleep mode for a minute. After a minute the micro wakes up and checks again photoresistor, to see if the light is lowered into the light, when the cycle starts again, otherwise it puts back into sleep.
The whole circuit is fed by a battery or battery capable of providing at least 3 times, preferably 3.6 (well, it must be a cell lithium-ion) or 4.5 volts.


R1: 47 ohm
R2: 47 ohm
R3: 82 ohm
R4: 10 kohm

C1: 100 nF

U1: PIC12F675-I/P

LD1: LED 5 mm RGB

LDR1: photoresistor 2÷20 kohm

SW1: switch

- socket 4+4
– battery holder CR2032
– Strip


Construction of the circuit

The tri-color LEDs can be mounted in three ways: through the through-hole (as in photos of the prototype visible in these pages, the side facing the short side, the side facing the long side of the board.
Remember that the circuit accepts both common anode LEDs, both common cathode: just set the jumper properly, or short-circuit the common terminal to ground if you use the type common cathode (cathode jumpers) or positive (jumpers ANODE ) if you use the diode common anode, it is understood that the firmware designed by us is suitable for controlling LED common anode. However, there is no problem, because adapting the firmware is pretty simple: just exchange the logical zero with 1 and vice versa.

Build the bright object

The materials recommended for this application are clear polycarbonate (or methacrylate) or Plexiglas, which can give the shape you want.
Then we need to impress, deep enough (half or two thirds the thickness of the slab) the drawing or the writing that you want to appear bright.
For this work, you can use a CNC or a hand drill (like DREMEL).
CAM programs allow you to draw shapes as ArtCAM.
Remember that each template must include a tab with a slot size of the head of the RGB LED.
To support the outline, you must mount the PCB in a plastic container, the lid must also include a window as large as the horizontal section of the tongue.

The CAD simulation

Source code PIC

'****************************************************************  '*  Name    : RGB controller for common anode led               *  '*  Author  : Landoni Boris                                     *  '*                                    *  '*                                       *  '*                                           *  '****************************************************************    DEFINE OSC 4  DEFINE ADC_BITS 8       ' Set number of bits in result  DEFINE ADC_CLOCK 3     ' Set clock source  DEFINE ADC_SAMPLEUS 500 ' Set sampling time in microseconds  DEFINE OSCCAL_1K 1                    
@  DEVICE BOD_OFF  @  DEVICE MCLR_OFF  @       DEVICE INTRC_OSC    OPTION_REG=%00000000  CMCON =%00000111  ADCON0=%00000000  WPU=%00000000  IOCB=%00000000  INTCON=%00000000  ANSEL=%00000001    SYMBOL  G        =GPIO.4  SYMBOL  B        =GPIO.1  SYMBOL  R        =GPIO.2  SYMBOL	AN       =GPIO.0  'INGRESSO AD    TMP     VAR WORD  TMP1    VAR BYTE  TMP2    VAR BYTE  TMP3    VAR WORD  PAUSA   VAR WORD  LUCE    VAR WORD                                                    
TMP1 = 1500  'cicle  TMP2 = 80   'step  TMP3 = TMP1*TMP2 'TMP1*TMP2  PAUSA=200     HIGH R   HIGH G   HIGH B   PAUSE 1000   LOW R   PAUSE 1000   HIGH R   PAUSE 1000    MAIN:      ADCIN 0,LUCE      IF LUCE > 100 THEN          LOW R          HIGH G          HIGH B          PAUSE PAUSA          FOR TMP=0 TO TMP1                  LOW g                  HIGH r                  PAUSEUS TMP*TMP2                  HIGH g                  LOW r                  PAUSEUS TMP3-(TMP*TMP2)          NEXT TMP          LOW G          HIGH B          HIGH R          PAUSE PAUSA            FOR TMP=0 TO TMP1                  LOW b                  HIGH g                  PAUSEUS TMP*TMP2                  HIGH b                  LOW g                  PAUSEUS TMP3-(TMP*TMP2)          NEXT TMP            LOW B          HIGH R          HIGH G          PAUSE PAUSA          FOR TMP=0 TO TMP1                  LOW r                  HIGH b                  PAUSEUS TMP*TMP2                  HIGH r                  LOW b                  PAUSEUS TMP3-(TMP*TMP2)          NEXT TMP        ELSE           HIGH G           HIGH R           HIGH B          SLEEP 60      ENDIF  GOTO MAIN


Download ZIP File Angel Shape
Download ZIP File Candle
Download ZIP File Christmas Tree
Download ZIP File Reindeer
Download ZIP File Santa Claus
Download ZIP File Snow
Top Silk
Bottom copper
Top copper

About Boris Landoni

Boris Landoni is the technical manager of Skilled in the GSM field, embraces the Open Source philosophy and its projects are available to the community.