- Componentes requeridos:
- Conexiones de circuito:
- Explicación de trabajo:
- Explicación de programación:
Cualquier color se compone de tres colores: rojo, verde y azul, usando un simple LED RGB puedes generar cualquier color. Pero la limitación del LED RGB es que tiene tres LED separados en su interior y requiere tres pines de cualquier microcontrolador para operar un LED RGB. Por lo tanto, no es posible conectar cientos de LED con un microcontrolador.
Para superar este problema, Adafruit ha creado NeoPixel LED Strip. Solo requiere tres pines para controlar varios LED RGB NeoPixel. Dos pines son para alimentación y tierra y un pin es para entrada de datos (DI). El pin Data IN se usa para direccionar y controlar los diferentes LED en la tira con su color, brillo, etc. Pero requiere un Microcontrolador para ejecutar NeoPixels. Arduino se usa muy comúnmente con NeoPixel, por lo que hoy aprenderemos a conectar los LED de NeoPixel con Arduino. Puede obtener más información sobre NeoPixels en AdaFruit.
Aquí en este proyecto estamos controlando NeoPixel LED usando Arduino y pantalla táctil TFT LCD. Hemos creado 7 botones táctiles de diferentes colores en TFT LCD de 2.4 pulgadas y cuando tocamos el botón de cierto color en el LCD, la tira de LED NeoPixel se ilumina con el mismo color de ese botón. Aquí hemos utilizado la tira de LED RGB digital NeoPixel de 30 LED.
El LED NeoPixel RGB se puede iluminar en cualquier color y, por lo tanto, podemos agregar más botones en la pantalla LCD para iluminar el LED en más colores al tocar esos botones. También se pueden agregar otros hermosos efectos y patrones usando Codificación. Puede construir un sistema de decoración completo controlado por Arduino utilizando NEO Pixel LED y puede controlar este sistema mediante una pantalla LCD cerca de usted.
Componentes requeridos:
- Arduino Mega o cualquier otro modelo de Arduino
- Pantalla LCD TFT de 2,4 pulgadas con controlador SPFD5408
- Tira de LED NeoPixel RGB
- Conexión de cables
- Cable USB o adaptador de 12 V 1A
Conexiones de circuito:
Para conectar NeoPixels Strip a Arduino Mega, simplemente conecte el pin Arduino 5V al pin 5V de NeoPixel y el GND de Mega al GND de NeoPixel y luego conecte el pin NeoPixel DI (entrada de datos) al Pin digital no 36 de Arduino Mega. Monte con cuidado el TFT LCD Touch Shield sobre Arduino de modo que GND de MEGA quede debajo de GND de LCD y el pin de 5V de Arduino se conecte al pin de 5V de LCD.
Tenga cuidado de no intercambiar GND y el pin de 5V de la tira de LED NeoPixel mientras la conecta a Arduino, de lo contrario dañará la tira de LED NeoPixel. También tenga en cuenta que aquí hemos usado Arduino Mega pero puede usar cualquier otro modelo de Arduino.
Conexiones de Arduino a la tira de LED RGB NeoPixel:
Pines Arduino |
Pines de NeoPixel Strip |
5v |
5v |
GND |
GND |
Pin digital no. 36 |
DI (entrada de datos) |
Explicación de trabajo:
Trabajar de NeoPixel LED con Arduino es muy fácil. Simplemente toque el botón táctil de cualquier color en la pantalla LCD en la que desee iluminar la tira de LED NeoPixel. El LED se iluminará según ese color. El código está escrito de tal manera que puede repetir esta tarea sin cesar sin tener que reiniciar el Arduino Mega. Puede consultar el código y el video de demostración al final de este artículo.
Cuando se toca cualquier botón en la pantalla LCD, los datos se envían a Arduino y Arduino envía instrucciones a NeoPixel Strip para que se encienda en consecuencia. Por ejemplo, la tira de LED NeoPixel se ilumina en color verde cuando tocamos el botón Verde en la pantalla LCD y la tira de LED se ilumina en color rojo cuando presionamos el botón Rojo y así sucesivamente.
Explicación de programación:
Para la interfaz TFT LCD con Arduino hemos utilizado algunas bibliotecas. Todas las bibliotecas vienen en un archivo rar y se pueden descargar desde este enlace. Haga clic en 'Clonar o descargar' y 'Descargar archivo ZIP' y agréguelo a la carpeta de su biblioteca Arduino. Esta biblioteca es necesaria para el correcto funcionamiento de TFT LCD.
#incluir
Debe probar su TFT LCD quemando Arduino con códigos de ejemplo dados en la Biblioteca y verificar si los códigos funcionan correctamente. Primero verifique la prueba de gráficos, luego calibre la prueba y finalmente la prueba de pintura. Si encuentra que todas las funciones funcionan bien, comience con el código proporcionado en este tutorial.
Además, para el correcto funcionamiento de la tira de LED NeoPixel RGB, necesitará una biblioteca más, que puede descargar desde aquí.
#incluir
Como se describió anteriormente, el pin digital 36 de MEGA está conectado al pin DI de la tira de LED NeoPixel como se muestra en el código a continuación. Además, el número de LED en la tira es 30, por lo que está escrito en código:
#define PIN 36 #define NUM_LEDS 30
Los colores de la pantalla de los botones LCD se indican mediante algunos códigos. Puede cambiar estos códigos de acuerdo con su LCD.
#define NEGRO 0x0000 #define AMARILLO 0x001F #define VERDE 0xF800 #define ROJO 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define AZUL 0xFFE0 #define WHITE 0xFFFF
Algunos parámetros para los botones como el tamaño y la posición están definidos en el código:
uint16_t ancho = 0; uint16_t altura = 0; uint16_t x = 40; uint16_t y = altura - 20; uint16_t w = 75; uint16_t h = 20;
El parámetro h se utiliza para ajustar el tamaño del botón en la pantalla LCD. Si lo hace 40, el tamaño del botón se duplicará. El parámetro y es la coordenada y de LCD.
Los botones táctiles se indican con números como se muestra en el código:
#define BUTTONS 9 #define BUTTON_Red 0 #define BUTTON_DarkRed 1 #define BUTTON_RED 2 #define BUTTON_DarkGreen 3 #define BUTTON_DeepRed 4 #define BUTTON_Blue 5 #define BUTTON_LightBlue1 7_define BUTTON_LightBlue1 6
Algunas funciones se utilizan para emitir el color de NeoPixel como:
void EmitCyan (); void EmitWhite (); void EmitGreen (); void EmitYellow (); vacío EmitPink (); void EmitBlack ();
Para encontrar los valores RGB digitales que se deben ingresar para el color dado, puede seguir este enlace. Simplemente ingrese el color que desea que brille su tira de NeoPixel, busque los valores RGB para ese color y coloque las funciones anteriores.
La función void initializeButtons () se usa para dar texto y color a los botones y también para colocarlos en el lugar requerido en la pantalla LCD.
void initializeButtons () {uint16_t x = 40; uint16_t y = altura - 20; uint16_t w = 75; uint16_t h = 40; uint8_t spacing_x = 5………………..
La función void showCalibration () se utiliza para dibujar los botones en la pantalla LCD.
void showCalibration () {tft.setCursor (40, 0); para (uint8_t i = 0; i <8; i ++) {botones.drawButton (); }}
Además, el Código Arduino completo para iluminar la tira de LED NeoPixel en el color deseado se muestra a continuación. El código es un poco largo pero simple, puede entenderlo fácilmente.