Introduction: LED Infinity Mirror Controller, 32 LEDs, Multiple Patterns
UPDATE: This kit is discontinued please see the new version, 8 Channel LED Controller v.3, the development files are still available to build this version.
As simple a circuit as can be. A 12F675 controls a high-power shift register, which in turn controls up to 48 LEDs at 20ma per, (~120mA per channel) in 8 channels(groups),
Software controlled patterns create seamless effects from group to group. With 4-state greyscale ( 4 states of LED of brightness ) a vast amount of patterns/effects are possible.
It was designed to go along with my 8"x8" 32 LED Infinity Mirrors.
A Gallery of all my Infinity Mirrors
A single momentary-pushbutton cycles through the programmed patterns. Comes loaded with 5 patterns, and the ability to add more through re-writing the firmware.
Kits, Including 32 LEDs, colors buyer's choice, can be bought from my store at www.ChromationSystems.com
More Updates and Info will be Posted to the 8 Channel LED Controller Webpage
The Eagle Schematics, PCB layout, and Source Code in Assembly can be purchased all together in a Developer Package.
UPDATE: Code in ASM is available for download below, or on the Main Website
The Schematic, HEX File, and Datasheet are in the ZIP below.
DISCLAIMER: Recreate this project at your own risk.
Step 1: Parts
UPDATE: This kit is discontinued please see the new version, 8 Channel LED Controller v.3,
To Purchase a Full Kit with all the parts, including 32 5mm LEDs. Visit my Store
Also Available with no LEDs Here
Layout all the Parts:
- programmed 12F675 Buy One
- 8 pin socket
- PCB Buy One
- 8 Position Screw-Down Terminal, with 0.1" (DIP) spacing
- TPIC6C596, high power shift register
- 0.1uf Capacitor
- 16 pin socket
- 10k 1/4w resistor (Brown, Black, Orange)
- 8 resistors, value depends on LED Color Approx: 20 - 40 ohm
- 32 LEDs, choice of colors
- board mount momentary push-button ( kit comes with an extra panel-mount button )
- scrap of perfboard
- Dual-Strand wire, 22 ga
- ~2" of solid strand for jumping
- 5 volt, 600ma+ PSU Optional: with barrel Jack Buy One
Optional: ( supplied with the Kit )
- panel mount DC jack
- PSU with correct DC Plug
- Soldering Iron
Step 2: Resistors, Capacitor & Sockets
Place the resistors first.
- R1 is a 10kohm (Brown, Black, Orange), 1/4w, it is the pull-up for the push-button switch
- R2 - R9 are the resistors for the LEDs.
- The values of R2-R9 vary depending on the Color of the LEDs and the amount per channel.
- Depending the resistors may or may not sit flat on the PCB, if they are to big, just place them in like in the images below. Flip every other one so the leads are next to each other.
Place the Capacitor C1 next.
- It is not polarized and can be placed in either way.
Sockets are last, be careful placing them. Make sure all the leads get into their correct hole.
There is a notch in the sockets that should line up with the image on the top-side illustration.
Solder them in securely and watch for solder bridges between pins.
Step 3: Jumper and Terminal Block
J1 & J2:
- Take about a 2" peice of solid strand wire and run it from J1 to J2(see image)
- Trim it to size and solder
Terminal Block: It is quite tiny, you need a eyeglass screwdriver to tighten it.
- Place it with the opening facing outward and it sitting flush with the PCB.
Step 4: Push Button
The push-button is used to cycle through the available patterns.
Supplied with the kit is a board mount button, a piece of perforated board, and a panel-mount pushbutton, I prefer the board-mount button, but the panel-mount is easier (but uglier).
For the board-mount button and perf-board:
- Place the the switch in the most center area of the perf-board.
- Fold the leads over and clip leaving about an 1/8th" lead to hold the button in place.
- Figure out how long you will need the button wire and cut a section off of the supplied dual-strand wire. About 4"-6"
- Solder a one strand of the dual strand wire to each lead.
- Solder in the other end of the dual strand wire into the board holes marked "BUTTON"
Step 5: Power & LED+
The power jack is labeled "PWR" on the board.
- Estimate how much wire you will need for your power leads and cut a piece to length. About 4"
- Solder in the ends of the wire into the board, I would suggest using white for V+ and blue for V-
- If you are using the optional barrel jack, see images for soldering instructions. There are 3 contacts only 2 are used. mistaking which wire goes where could cause damage to the controller, please see images.
LED+ is hooked to V+ input through the PCB and goes to the LED's Anodes.
*If you are building the Infinity Mirror Kit (LINK) Skip this, as it is easier to solder the LED+ wires into the Infinity Mirror while the outer walls are off. You'll just solder the PCB directly to the LEDs.
- Taking another length of dual-strand wire, cut it to length( about 4")
- And solder it into the PCB.
Step 6: Plug in the ICs & Finish
- Looking at either IC, there is a notch on one end, that should line up with the notch in the sockets.
- Carefully place into the socket, the leads may need to be bent inwards gently with your fingers for them to fit.
Flip it over and very carefully look over your soldering and look for solder bridges or dullness on the solder. And fix anything you find.
There isn't any easy way to test this controller, so just follow the instructions and it will work when it is placed into an Infinity Mirror.
- If it really needs to be tested, get 8 LEDs and 8 100-500 ohm resistors and twist or solder a resistor to each of the LEDs cathode.(GND or flat side)
- The other side of the resistors gets screwed into the terminal block. And all the LED anodes are hooked together and then hooked to +5 volts.
- Power to the controller should get hooked up.
- When powered, the LEDs should start lighting and going through patterns.
- Test the push button switch and ensure that is its changing the pattern.
Thanks for Reading. Subscribe or watch for my future projects Including:
- 8"x8" Infinity Mirrors, 32 LEDs with this Controller
- 9 Watt LED Full Color Can Light with DMX-512 Control
Step 7: Optional: Add ICSP
If you want to easily reprogram the Microcontroller an ICSP header can be easily added.
Wire and a header can be purchased separately.
I use a PICKit2 Clone(chinese) and It works great. The MCLR is on the end so I use a different colored wire on that pin.
- Start by securing the 5-pin header to a helping-hand or equivalent.
- Tin all 5 of the pins.
- Strip an 1/8" of wire off an tin it with some solder.
- Solder the wires onto the header, save the odd wire for one of the end pins, as this is used for orientation when connecting it to a programmer.
Remove the ICs from their sockets before continuing.
- Depending on the pinout of your programmer. Take a wire that is soldered onto the header and from the bottom(copper side) find where it should go and solder. Make sure it can not touch any of the surrounding pins.
- Finish soldering all the wires to their pins.
- Check over all your solder joints and ensure no wires are shorting.
- Plug it into your programmer and test for connection to PIC.
- The push-button will function oddly while a programmer is attached, it is hooked up to MCLR as an input. So detach the programmer from the ICSP while testing the button.