En este nuevo capítulo, te voy a mostrar cómo conectar y como funciona un LED RGB en Arduino.
Componentes necesarios para el circuito de LED RGB de Arduino
Los componentes que necesitas, son los siguientes:
Cantidad | Componente |
---|---|
1 | Arduino UNO |
3 | 330/220 Ω Resistencia |
1 | LED RGB |
1 | Placa de pruebas |
4 | Cables de conexión |
¿Cómo funciona un led RGB?
El LED RGB es como si tuviéramos 3 LEDs en uno. Uno de color rojo, otro verde y otro azul. Mediante la combinación de diferentes niveles de estos colores, tenemos el amplio abanico de colores R (Red) G (Green) B (Blue).
La siguiente imagen muestra las conexiones de cada color. Destaca el cátodo (negativo) con su pin más largo.
Esquema de conexión de un LED RGB en Arduino
Pasemos a ver la conexión del LED RGB.
Puesto que tenemos tres pines positivos, vamos a utilizar una resistencia en cada uno de ellos. Esto funciona muy similar a conectar tres leds normales separados. Los cables los he coloreado en consonancia con el color de la luz del LED, de modo que sea más fácil saber en qué pin va cada color.
Advertencia
En Tinkercad hay un pequeño fallo. Los pines verde y azul están invertidos, por lo que este esquema no te va a funcionar si lo pruebas ahí. Solo tienes que invertir el cable verde y el azul. De la forma en que está conectado el esquema, te va a funcionar en Arduino.
Encendido de una sola luz del LED RGB en Arduino
Empecemos con un código fácil. Vamos a probar de encender únicamente un color del LED RGB. Por ejemplo, la luz roja.
He guardado los valores HIGH y LOW en constantes, para poder utilizarlos como ON y OFF, de modo que se vea de forma sencilla lo que está apagado y lo que está encendido. Escríbelo así, o sin estas constantes, funciona igual.
//https://programacionfacil.org/blog/
//Declaramos los pines de cada color
const int LEDR = 13;
const int LEDG = 12;
const int LEDB = 8;
const int ON = HIGH;
const int OFF = LOW;
void setup() {
pinMode(LEDR,OUTPUT);
pinMode(LEDG,OUTPUT);
pinMode(LEDB,OUTPUT);
}
void loop() {
digitalWrite(LEDR, ON);
digitalWrite(LEDG, OFF);
digitalWrite(LEDB, OFF);
}
Ahora, encendamos solo el color verde. Para ello, modifica únicamente el loop().
void loop() {
digitalWrite(LEDR, OFF);
digitalWrite(LEDG, ON);
digitalWrite(LEDB, OFF);
}
Finalmente, encendamos el LED azul.
Los colores RGB
Para poder realizar combinaciones de colores, es necesario conectar los pines a tomas PWM para poder especificar niveles de intensidad de cada color. Esto lo haremos como hicimos con el potenciómetro.
Cada uno de los 3 colores RGB tienen 256 posibles valores del 0 al 255, lo que nos viene como anillo al dedo en un analogWrite() que admite justo los niveles que necesitamos sin hacer divisiones ni nada por el estilo.
Un HIGH en un LED, equivale al nivel 255, máximo nivel en ese color. Un LOW, equivale a un nivel 0, el LED quedará apagado.
Para elegir colores RGB, podemos utilizar el selector de colores entre muchos otros, y escoger el que queramos. Esto nos permitirá hacer hasta 16,7 millones de colores con nuestro LED RGB. No obstante, hay que pensar que es un simple LED, hay colores que con un LED del estilo como el del esquema, no se representan muy bien, ya que combinaremos tres lucecitas para conseguir un efecto óptico.
El esquema es el mismo, solo vamos a cambiar los tres pines de los colores, a pines PWM, los que verás en el código.
LED RGB en pines PWM de Arduino
Recuerda conectar los pines en las nuevas posiciones.
Todo lo dejamos igual, exceptuando el loop(), donde vamos a cambiar digitalWrite() por analogWrite() para poder controlar los niveles de color.
//https://programacionfacil.org/blog/
//Declaramos los pines de cada color
const int LEDR = 11;
const int LEDG = 10;
const int LEDB = 9;
void setup() {
pinMode(LEDR,OUTPUT);
pinMode(LEDG,OUTPUT);
pinMode(LEDB,OUTPUT);
}
void loop() {
analogWrite(LEDR, 0);
analogWrite(LEDG, 0);
analogWrite(LEDB, 0);
}
Con todos los niveles a cero, tendrás el led apagado.
Vayamos al selector de colores y elijamos un color. Por ejemplo, un azul clarito. Nos fijaremos en la zona RGB. El valor 0 irá al LED rojo (ausencia total de color rojo). El 223 al verde y el 255 al azul (azul en su valor máximo). Con esta combinación de niveles, conseguiremos el color que ves en la imagen (aproximadamente, recuerdo de nuevo que son tres mini LED en uno y solo estamos mezclando esas luces).
Ves haciendo combinaciones. En otro capítulo te mostraré nuevas cosas que hacer con el LED RGB.
Por cierto, aclaro que el color negro se representa con los niveles RGB 0, 0, 0. Esto se representa como has visto, con el LED apagado.
Para formar el color blanco, hay que dejar todos los colores al máximo (255,255,255).
Si tienes alguna duda sobre como conectar el LED RGB, sobre como funciona el código, etc., puedes dejarme un comentario y te intentaré ayudar.
Aquí tienes el resto de capítulos del curso de Arduino.