Difference between revisions of "LED"
(→LED's control with the Arduino.) |
|||
Line 9: | Line 9: | ||
*Arduino power more LED's http://fritzing.org/projects/digital-output-npn-power-transistor/ | *Arduino power more LED's http://fritzing.org/projects/digital-output-npn-power-transistor/ | ||
*Arduino basic RGB LED strips http://fritzing.org/projects/arduino-controlled-rgb-led-light-strips/ | *Arduino basic RGB LED strips http://fritzing.org/projects/arduino-controlled-rgb-led-light-strips/ | ||
− | |||
− | |||
== LED's control with the Arduino. == | == LED's control with the Arduino. == | ||
Line 16: | Line 14: | ||
''(most of the examples are compatible with other mricrocontrollers paltforms)'' | ''(most of the examples are compatible with other mricrocontrollers paltforms)'' | ||
− | http://fightpc.blogspot.com/2008/03/arduino-mood-light.html | + | The Arduino output per PIN is limited to 5V 40mA, to drive higher currents we will need to use [http://blog.makezine.com/archive/2009/03/make_presents_the_transistor.html transistors]. There are so many different kinds of transistors and we will need one for each output so to do the job easy usually is better to use a chip that packs together everything. |
+ | |||
+ | ===ULN2003=== | ||
+ | The ULN2003 is basically and array of 7 transistors allowing as to can run 7 LED's up to 50V each. | ||
+ | |||
+ | *Tutotial on building an RGB mood light using 3W powerfull LED's http://fightpc.blogspot.com/2008/03/arduino-mood-light.html | ||
+ | *Tutotial on building an Arduino shield to run LED's http://fritzing.org/projects/multicolor-rgb-led-controller-shield-for-arduino/ | ||
+ | *Datasheet http://focus.ti.com/lit/ds/symlink/uln2003a.pdf | ||
The Arduino has a maximum of 12 digital outputs. So controlling a huge number of LED's requires the use of external hardware. That became really interesting when playing with LED matrix. There are two main solutions to do that Multiplexer chips and shift-Out chips. | The Arduino has a maximum of 12 digital outputs. So controlling a huge number of LED's requires the use of external hardware. That became really interesting when playing with LED matrix. There are two main solutions to do that Multiplexer chips and shift-Out chips. | ||
Line 52: | Line 57: | ||
*Tutorial (Shield design available) http://fritzing.org/projects/pwm-expander-rgb-ledsservos/ | *Tutorial (Shield design available) http://fritzing.org/projects/pwm-expander-rgb-ledsservos/ | ||
− | + | ==Packet solutions == | |
=== Rainbowduino === | === Rainbowduino === |
Revision as of 00:07, 11 December 2010
A light-emitting diode (LED) is a semiconductor light source. LEDs are used as indicator lamps in many devices, and are increasingly used for lighting. Introduced as a practical electronic component in 1962,<ref name=LemelsonMIT/> early LEDs emitted low-intensity red light, but modern versions are available across the visible, ultraviolet and infrared wavelengths, with very high brightness.
This page focus in driving LED's and RGB LED's using small programmable microcontrollers such as the Arduino platform.
Contents
Arduino LED's basics
- Arduino LED basics http://fritzing.org/projects/digital-output-loop/
- Arduino basic RGB LED mixer http://www.instructables.com/id/RGB-LED-Tutorial-using-an-Arduino-RGBL/step3/Example-Circuit/
- Arduino basic RGB LED mixer http://fritzing.org/projects/rgb-led-mixer/
- Arduino basic RGB LED mixer http://fritzing.org/projects/colored-light-rgb-led/
- Arduino power more LED's http://fritzing.org/projects/digital-output-npn-power-transistor/
- Arduino basic RGB LED strips http://fritzing.org/projects/arduino-controlled-rgb-led-light-strips/
LED's control with the Arduino.
(most of the examples are compatible with other mricrocontrollers paltforms)
The Arduino output per PIN is limited to 5V 40mA, to drive higher currents we will need to use transistors. There are so many different kinds of transistors and we will need one for each output so to do the job easy usually is better to use a chip that packs together everything.
ULN2003
The ULN2003 is basically and array of 7 transistors allowing as to can run 7 LED's up to 50V each.
- Tutotial on building an RGB mood light using 3W powerfull LED's http://fightpc.blogspot.com/2008/03/arduino-mood-light.html
- Tutotial on building an Arduino shield to run LED's http://fritzing.org/projects/multicolor-rgb-led-controller-shield-for-arduino/
- Datasheet http://focus.ti.com/lit/ds/symlink/uln2003a.pdf
The Arduino has a maximum of 12 digital outputs. So controlling a huge number of LED's requires the use of external hardware. That became really interesting when playing with LED matrix. There are two main solutions to do that Multiplexer chips and shift-Out chips.
Multiplexers
- Multiplexers http://itp.nyu.edu/physcomp/Tutorials/Multiplexer
- Multiplexers tutorial using the 4052 chip http://fritzing.org/projects/mux-demux-cd4051-parlor-tricks/
- Multiplexers tutorial using the 4052 chip http://www.arduino.cc/playground/Learning/4051
- Arduino shield to multiplex your outputs up to 48 inputs and outputs http://www.sparkfun.com/products/9832
Shift-Out
- Arduino tutorial using the 74HC595 shifting-out chip http://www.arduino.cc/en/Tutorial/ShiftOut
- Basic LED driver using the 4794 chip http://www.arduino.cc/en/Tutorial/LEDDriver
- Example: A good example of the use of Shifting-Out Registers is the Monome project
The Arduino can dim LED's using its PMW Outputs (AnalogWrite). Considering we need 3 of them for each RGB LED's and the Arduino has just 6 PMW outputs one could think the maxium number we could drive are 2 LED's. Luckly there are a bunch of chips that can easily expand our Arduino PMW ports allowing us to drive a huge number of RGB LED's easily but also any other kind of devices that require these outputs as standard LED's or DC Motors.
TLC5940
TLC5940 is a 16 channel PWM unit, so you can drive 5 RGB's LED's. There's an arduino library to easy work with it.
- Datasheet http://www.ti.com/lit/gpn/tlc5940
- Library http://code.google.com/p/tlc5940arduino/
- Tutorial http://www.arduino.cc/playground/Learning/TLC5940/
- Tutorial (Shield design available) http://fritzing.org/projects/pwm-expander-rgb-ledsservos/
M5451
M5451 is a chip specially designed to drive up to 70 LED's . There's an arduino library to easy work with it that implements PMW support.
- Datasheet http://www.ti.com/lit/gpn/tlc5940
- Library http://code.google.com/p/tlc5940arduino/
- Tutorial http://www.arduino.cc/playground/Learning/TLC5940/
- Tutorial (Shield design available) http://fritzing.org/projects/pwm-expander-rgb-ledsservos/
Packet solutions
Rainbowduino
Rainbowduino is a packet Arduino compatible soultion for driving RGB LED's
- Rainbowduino http://www.seeedstudio.com/depot/rainbowduino-led-driver-platform-atmega-328-p-371.html?cPath=93_99
ShiftBrite
ShiftBrite is a packet modular RGB LED. There's an arduino library to easy program it.
- ShiftBrite http://macetech.com/blog/node/54
- ShiftBrite Shop http://macetech.com/store/index.php?main_page=product_info&cPath=1&products_id=1
- Library http://www.arduino.cc/playground/Main/ShiftBriteLib
BlinkM
BlinkM is an RGB led packet together with an small microcontroller so you can control a huge number of RGB LED's over a single data bus. An Arduino could be use to communicate with the bus and control all the LED's
DMX
Allow your Arduino to talk [DMX | http://en.wikipedia.org/wiki/DMX512] so you can manage stage professional LED lighting equipment.
- Arduino and DMX http://www.arduino.cc/playground/Learning/DMX
- DMX Shieldhttp://www.arduino.cc/playground/DMX/DMXShield
- Diagram on using the MAX485 chip http://fritzing.org/projects/arduino-to-dmx-converter/
Helpful links for programming RGB LED's
- RGB to Hex Conversion [1]