¿Qué es un LED?
Un LED es un diodo emisor de luz, es decir, un tipo particular de diodo que emite luz al ser atravesado por una corriente eléctrica.
Recodemos que diferenciamos entre dispositivos eléctricos y electrónicos.
Los dispositivos eléctricos engloban resistencias, condensadores y bobinas, e integran el campo de electricidad.
Los dispositivos electrónicos, surgen del uso de materiales semiconductores, y dan lugar al campo de la electrónica.
Un diodo es una unión de dos materiales semiconductores con dopados distintos. Sin entrar en detalles, esta diferencia de dopado hace que genere una barrera de potencial, que como primera consecuencia hace que el paso de corriente en uno de los sentidos no sea posible.
Aquí tenemos la primera característica de los diodos, tienen polaridad, es decir, solo dejan pasar la corriente en un sentido. Por tanto, tenemos que conectar correctamente la tensión al dispositivo.
La otra consecuencia de la barrera de potencial es que, incluso conectando el dispositivo con la polaridad correcta, a baja tensión los electrones siguen sin poder atravesar el dispositivo.
Esto ocurre hasta alcanzar un cierto valor de tensión que llamamos tensión de polarización directa (Vd), que depende del tipo de diodo.
A partir de esta tensión decimos que el diodo está polarizado y la corriente puede atravesarlo libremente con una resistencia casi nula.
La tensión que realmente está alimentando al diodo es la diferencia entre la tensión aplicada, y la tensión de polarización directa del diodo.
Como vemos, en el momento que superamos la tensión de polarización, y dado que la resistencia del diodo es muy pequeña, se genera una gran corriente que destruirá el diodo. Por ese motivo, necesitamos una resistencia que limite la cantidad de corriente que circula por el diodo.
En resumen, si no ponemos una resistencia, el sistema solo tiene dos estados.
- Si la tensión aplicada es inferior a Vd, el LED no emite luz.
- Si la tensión aplicada es superior a Vd, el LED emite luz.
¿Por qué un LED enciende conectando a una salida de Arduino directamente?
El LED funciona porque Arduino tiene una limitación de 20mA en sus salidas. Esta limitación hace que el LED no se funda, aunque realmente se está comportando como si fuera un cortocircuito. Simplemente Arduino no puede dar más corriente.
Te puede interesar
Calcular el valor de la resistencia para polarizar un LED
Hemos visto que lo principal para hacer funcionar un LED es calcular el valor de la resistencia necesaria. Para calcular el valor de tensión necesaria para alimentar un LED necesitamos conectar 3 parámetros
- Tensión de alimentación (Vcc)
- Tensión de polarización (Vd)
- Corriente nominal del LED (In)
Aplicando la ley de Ohm, con el valor de la intensidad nominal del LED
Dado que las resistencias comerciales tienen valores normalizados, no encontraréis una resistencia con el valor exacto que hayáis calculado. En este caso, elegiremos la resistencia normalizada inmediatamente superior al valor calculado, para garantizar que la corriente es inferior a la nominal.
La tensión de alimentación Vcc es conocida para nosotros. En caso de aplicar una fuente de alimentación o una batería, Vcc es la tensión nominal de la misma. En el caso de una salida digital o analógica de Arduino, Vcc dependerá del modelo que estemos usando (5V o 3.3V) pero también es conocido.
Recordar que aunque uséis una salida analógica PWM la tensión entregada a la carga es siempre Vcc. Consultar la entrada Salidas analógicas PWM en Arduino si tenéis dudas en esto.
Respecto a la tensión de polarización y la corriente nominal dependen de los materiales y constitución interna del diodo. En el caso de diodos LED convencionales de 3mm y 5mm, dependen principalmente del color y luminosidad
En la siguiente tabla os adjuntamos unos valores generales de la tensión de polarización Vd típica para cada color. También os figura el valor de la resistencia necesaria, en Ohmios, para distintos valores de tensión de alimentación Vcc.
| Color | Vdd | Resistencia (Ohmios) | |||
|---|---|---|---|---|---|
| 3.3V | 5V | 9V | 12V | ||
| Infrarrojo | 1.4V | 150 | 270 | 510 | 680 |
| Rojo | 1.8V | 100 | 220 | 470 | 680 |
| Naranja | 2.1V | 100 | 200 | 470 | 680 |
| Amarillo | 2.2V | 100 | 200 | 470 | 680 |
| Verde | 3.2V | 10 | 150 | 330 | 560 |
| Azul | 3.5V | – | 100 | 330 | 560 |
| Violeta | 3.6V | – | 100 | 330 | 560 |
| Blanco | 3.8V | – | 100 | 330 | 560 |
Conexión eléctrica
La conexión eléctrica es realmente sencilla. Simplemente ponemos la resistencia previamente calculada en serie con el LED.
Código
Los códigos es similar el ejemplo de BLINK (parpadear), el cual viene en la IDE de Arduino, pero empleando un LED externo en lugar del LED integrado en la placa. Para ello, solo tenemos que sustituir el número de PIN 13, correspondiente con el LED integrado, por el PIN de la salida a la que vamos a emplear.
const int ledPIN = 9;
void setup() {
Serial.begin(9600); //iniciar puerto serie
pinMode(ledPIN , OUTPUT); //definir pin como salida
}
void loop(){
digitalWrite(ledPIN , HIGH); // poner el Pin en HIGH
delay(1000); // esperar un segundo
digitalWrite(ledPIN , LOW); // poner el Pin en LOW
delay(1000); // esperar un segundo
}
Ejemplo con uso de PWM para variar su luminosidad
El siguiente código emplea una salida PWM para hacer variar la intensidad del LED, tal y como vimos en la entrada salidas analógicas en Arduino.
const int ledPIN = 9;
byte outputValue = 0;
void setup(){
Serial.begin(9600); // Iniciar puerto serie
}
void loop(){
if (Serial.available()>0){ // Si hay datos disponibles
outputValue = Serial.read(); // Leemos la opción
outputValue -= '0'; // Restamos '0' para convertir a un número
outputValue *= 25; // Multiplicamos x25 para pasar a una escala 0 a 250
analogWrite(ledPIN , outputValue);
}
}