LED

From Fab Lab Bcn WIKI
Revision as of 16:40, 11 January 2011 by Guillem (Talk | contribs)

Jump to: navigation, search

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, early LEDs emitted low-intensity red light, but modern versions are available across the visible spectrum|visible, ultraviolet and infrared wavelengths, with very high brightness.

This page focus on driving LED's and RGB LED's using small programmable microcontrollers such as the Arduino platform.

Arduino LED's basics

LED's control with the Arduino.

(most of the examples are compatible with other microcontroller paltforms)

The Arduino output is limited to 5V 40mA per PIN, 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 run 7 LED's up to 50V each.

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

Shift-Out


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 maximum 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.

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.

Packet solutions

Rainbowduino

Rainbowduino is a packet Arduino compatible solution for driving RGB LED's

ShiftBrite

ShiftBrite is a packet modular RGB LED. There's an arduino library to easy program it.

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 so you can manage stage professional LED lighting equipment.

Helpful links for programming RGB LED's

  • RGB to Hex Conversion [1]