|
Lightunio_V20
Details of the Lightuino V2.0 Board
The Lightuino board is a standalone Arduino-compatible (ATMEGA 328p) or a shield (daughtercard). The purpose of the board is to expand the number of outputs available to the Arduino user and to provide outputs optimised for driving LEDs, optocouplers, relays, etc. Instead of providing additional digital logic, the Lightuino offers 70 constant current outputs that can provide up to approximately 20 milliAmps of current per output.
Uses
OrientationFor all locations described on this page, please hold the board in front of you so that the M5451 chips are on the top surface and the power jack is farthest from your body (and the silkscreen is right-side up). We will call the side the power jack is on the top. IDE cable pin numbers on both cables start from the bottom right (it is marked "1") and go to pin 40. All location descriptions refer to the LEFT IDE cable. To find the pin on the RIGHT side, just "flip" the top and bottom pins -- Note: its nice to use a meter to be sure!
ConfigurationJumpersThere are several jumpers on the board:
Headers
Potentiometers (VSEL and VTRIM)
VDIV footprintIf you need to implement a voltage divider connected to your analog pins, these resistor footprints do the trick. They bridge 5V and the analog pins. Also just above each analog pin is a footprint for a set of ground connections, for easy connection of the variable half of the voltage divider. PINSELThe pin select footprint lets you choose which digital IOs control the LEDs. The top footprint holes correspond to the left side data pin, the clock pin, the right side data pin, and the brightness pin (as marked). The bottom footprint holes correspond to digital IOs 0 through 13 moving from left to right. To use the M5451 chips, you must solder wires between a hole on the lower bank to a hole in the upper bank (if it is not already done). Make sure your wire does not short against a via on the board! If you do not care which pins, then I recommend you use pin 3 to the "clock", pin 4 to the "left", pin 5 to the "right", and finally pin 10 to "bright". You will need to enter this information into your sketch so it knows what pins to use. RESETThe reset button is located on the top as shown. Please click the reset button EXACTLY when the Arduino IDE prints the "sketch size..." log. It is very easy to press the button too early or late, which will cause the sketch to not be uploaded! LEDS
IDE cable pinoutThe left and right IDE cable pinouts are exactly the same on the circuit board. But since the header does a right angle turn to leave the board on the side, a pin on the top of the left side is on the bottom on the right, and vice versa. For example, pin 40 (the GND pin) on the circuitboard is on the upper left corner. On the left side then corresponds to the top row, bottom pin. On the right side this is the top row, top pin.
In code, // A nice little PIN identifier sketch. It assigns the extreme 4 pins (2 on each side)
// different values. Hook a multimeter up in series with an LED and measure the current
// flowing through when the LED is connected to each pin. You will see different currents
// on each pin.
// You can use the same technique to find pins in the middle of the connector!
CCShield board(myClockPin,mySerDataPin,mySerDataPin2, myBrightnessPin);
FlickerBrightness leds(board);
void loop()
{
board.flags = Lightuino_FASTSET;
while (1)
{
leds.brightness[0] = 32; // This is the near side top pin on the LEFT connector
leds.brightness[34] = 64; // This is 2-from-the-far side top pin on the LEFT connector
leds.brightness[35] = 127; // This is the near side bottom pin on the RIGHT IDE connector
leds.brightness[69] = 255; // This is 2-from-the-far side bottom pin on the RIGHT IDE connector
for (int i=0;i<10;i++) leds.loop();
//delay(100);
}
}
Note, sometimes the IDE cable will reverse what is bottom and top, so while the code comments are accurate for your connector they may not be accurate for the output of the IDE cable. Just experiment! MiscellaneousBrightnessNote that the M5451 chip can dissipate 1 Watt at 25 Celsius, so you must work within this limit. For example let's say that you are putting 5V across the circuit, and the LEDs use 3V. This means that 2V will be dissipated in the chip (5 minus 3). At 10mA current, this is 20mW per line (power = volts*amps) or 20*35 LEDs = 700mW total dissipated in the chip. So you are ok. But if you used 20mA current, you would have 1.4Watts when all the LEDs are lit. Not so good. However, there is more than one way to fix the problem. First, you can change the VSEL pot to adjust the input voltage. Second, if only half of the LEDs are simultaneously on (maybe your application blinks them), then you are back to 700mW so are ok. But of course this means a bug in your program might cause all the LEDs to turn on and the chip to burn out... Or maybe you could install a heat sink onto the M5451 chip and do some testing to ensure you don't start a fire :-). CPU Components Only
Board Layout
|
Hi there Mr. Stone, I'm working on an installation using the Arduino, but intend to use around 100 RGB LEDS. Unfortunately I'm on a bit of a budget, ordering more than one of your ready-made Lightuinos isn't quite possible. Is there a way I can make a shield with more output pins in one go? (I'm thinking at this point ~400) Thank you, Mei-ling Humphrey mkdot?humphreyat?gmaildot?com
A single Lightuino can drive 70 LEDS. If you put your 3 LEDs in a series per channel, you can get this number up to 210.
Question is, do you need individual LED control per channel?
I'm trying to build a material reflectance measurement device, described in this paper: http://research.microsoft.com/en-us/um/people/jpwang/paper_stuffs/led_brdf_cvpr08.pdf.
The device makes use of LEDs as photometers as well as for emitting light. Would it be possible to measure voltages off LEDs connected to your Lightuino board in addition to the traditional use of emitting light (in other words, for the same LED, is it possible to switch between input and output as needed?)
I'm brand new to the Arduino world, but it sure looks like the way to go, and it seems like your Lightuino will simplify the use of the ~75 or more LEDs needed for my project.
Would it be alright to email you to discuss solutions for my project?
Sure send me an email! That's a pretty cool paper, thanks for linking to it.
The Lightuino itself is not capable of measuring the analog voltage of the LEDs. However I think that the Lightuino and an A/D converter could share LEDs. So you could consider using the Lightuino as the LED driver and microProcessor and buy, develop, or breadboard a suitable A/D converter and analog multiplexer that plugs on top of the Lightuino.
Actually the A/D converter really is the achilles heel of the approach; the Analog/Digital converter chip mentioned in the paper costs more than the Lightuino just for the chip! But you could always use a much slower and cheaper A/D converter -- it would simply take longer to scan each object.
Hi G.,
I'm using Lightuino 3.0. I can't seem to find the schematics for this board on the wiki. Can you point me at them please? Thanks!
Michael