lunes, 4 de mayo de 2020

Control de un LED RGB

Visión general

En esta lección, programaremos el control de un LED RGB, y haremos que emita luz de varios colores.

Requisito

  •  1 x ESP8266 NodeMCU LoLin (La cual usaremos para todos nuestros experimentos)
  •  1 x Protoboard
  •  1 x LED RGB
  •  8 x resistencias de 220Ω.
  •  Cables para conectar todo.

Principio

Los LED RGB constan de tres LED. Cada LED tiene uno rojo, uno verde y uno azul. Estos tres LED de colores son capaces de producir cualquier color.
Los LED con emisores rojo, verde y azul, en general utilizan un cable de cuatro hilos como conexión con un cable común (ánodo o cátodo). Estos LED pueden tener ya sea ánodo común o cables de cátodo común.



Lo que usamos en este experimento es el LED RGB de ánodo común (el mas largo)
El pin es el ánodo común de tres LED. El pin está conectado a la salida de corriente de la placa, y los tres pines restantes están conectados a los pines digitales a través de una resistencia limitadora de corriente.


De esta manera, podemos controlar el color del LED RGB mediante una señal PWM de 3 canales.

Los colores del Led RGB vienen representados con números comprendidos entre el valor 0 y el valor 255. De esta forma, para componer el color rojo ponemos el valor máximo del rojo y el valor mínimo de los otros colores, es decir, el rojo equivale a «R=255; G=0; B=0». Y así sucesivamente con el resto de colores.



Ahora bien, para poder «seleccionar» un color, lo que debemos es darle más intensidad a un color que otro para el ojo humano haga el resto del trabajo y esto se logra utilizando PWM con unos 555 o con un microcontrolador.


Procedimientos

1. Construimos el circuito de la siguiente manera.









2. Programa


/***********************************************************
  File name: led_rgb.ino
  Description:Controlamos un led rgb para que cambie de colores.

*************************************************************/
int redPin = 0; // Pata R del LED RGB esta conectada al pin digital 0
int greenPin = 4; // Pata G del LED RGB esta conectada al pin digital 4
int bluePin = 5; // Pata B del LED RGB esta conectada al pin digital  5
void setup()
{
  //Seteamos los pines como salida
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);

  analogWrite(redPin, 1023);
  analogWrite(greenPin, 1023);
  analogWrite(bluePin, 1023);
}

void loop()
{
  // Colores basicos
  color(255, 0, 0); // enciende el LED RGB Rojo
  delay(1000); // delay de 1 segundo
  color(0, 255, 0); // enciende el LED RGB verde
  delay(1000); // delay de 1 segundo
  color(0, 0, 255); // enciende el LED RGB azul
  delay(1000); // delay de 1 segundo

  // Example blended colors:
  color(255, 255, 0); // enciende el LED RGB amarillo
  delay(1000); // delay de 1 segundo
  color(255, 0, 255); // enciende el LED RGB magenta
  delay(1000); // delay de 1 segundo
  color(0, 255, 255); // enciende el LED RGB cian
  delay(1000); // delay de 1 segundo
  color(255, 255, 255); // enciende el LED RGB blanco
  delay(1000); // delay de 1 segundo
  color(0, 0, 0); // apaga el LED RGB
  delay(2000); // delay de 1 segundo*/
}

// funcion de generacion del color
void color (unsigned char red, unsigned char green, unsigned char blue)
{
  analogWrite(redPin, 1023 - (red * 4)); // PWM signal output
  analogWrite(greenPin, 1023 - (green * 4)); // PWM signal output
  analogWrite(bluePin, 1023 - (blue * 4)); // PWM signal output
}


3. Compile el programa y cárguelo a la placa

Ahora, puede ver que el LED RGB emite rojo, verde, azul, amarillo, magenta, cían, blanco y luego se apaga, cada estado continúa 1s, después
repitiendo el procedimiento anterior.



Resumen

Aprendimos el principio de programación de un LED RGB y su funcionamiento.


No hay comentarios.:

Publicar un comentario