- Adafruit 5X8 NeoPixel Shield para Arduino
- Comprensión del proceso de comunicación entre la aplicación Blynk y Arduino
- Componentes requeridos
- Adafruit RGB LED Shield y Arduino - Conexión de hardware
- Configuración de la aplicación Blynk
- Código Arduino que controla el escudo LED RGB Adafruit WS2812B
- Subiendo el código a la placa Arduino
En el transcurso de algunos años, los LED RGB se están volviendo populares día a día debido a su hermoso color, brillo y atractivos efectos de iluminación. Es por ello que se utiliza en muchos lugares como elemento decorativo, un ejemplo puede ser el hogar o un espacio de oficina. Además, podemos utilizar las luces RGB en la cocina y también en una consola de juegos. También son excelentes en la sala de juegos o dormitorios de un niño en términos de iluminación ambiental. Anteriormente, usamos los LED WS2812B NeoPixel y el microcontrolador ARM para construir un visualizador de espectro musical, así que compruébalo si te interesa.
Es por eso que en este proyecto vamos a utilizar un escudo de matriz de LED RGB basado en Neopixel, Arduino y una aplicación Blynk para producir muchos efectos de animación y colores fascinantes que podremos controlar con la aplicación Blynk. ¡¡¡Entonces empecemos!!!
Adafruit 5X8 NeoPixel Shield para Arduino
El NeoPixel Shield compatible con Arduino contiene cuarenta LED RGB direccionables individualmente, cada uno tiene el controlador WS2812b incorporado, que está dispuesto en una matriz de 5 × 8 para formar este NeoPixel Shield. También se pueden conectar múltiples NeoPixel Shields para formar un Shield más grande si ese es un requisito. Para controlar los LED RGB, se requiere un solo pin Arduino, por lo que en este tutorial, hemos decidido usar el pin 6 del Arduino para hacerlo.
En nuestro caso, los LED se alimentan desde el pin incorporado de 5V de Arduino, que es suficiente para alimentar aproximadamente "un tercio de los LED" con brillo total. Si necesita alimentar más LED, puede cortar la traza incorporada y usar una fuente externa de 5v para alimentar el blindaje usando el terminal externo de 5V.
Comprensión del proceso de comunicación entre la aplicación Blynk y Arduino
La matriz de LED RGB de 8 * 5 que se utiliza aquí tiene cuarenta LED RGB direccionables individualmente basados en el controlador WS2812B. Tiene control de color de 24 bits y 16,8 millones de colores por píxel. Se puede controlar con la metodología de “Control de un cable”. Eso significa que podemos controlar todo el píxel LED con un solo pin de control. Mientras trabajaba con los LED, he revisado la hoja de datos de estos LED donde encuentro que el rango de voltaje de funcionamiento del escudo es de 4 V a 6 V y el consumo de corriente se encuentra 50 mA por LED a 5 V con rojo, verde, y azul a pleno brillo. Tiene protección de voltaje inverso en los pines de alimentación externos y un botón de reinicio en el escudo para reiniciar el Arduino. También tiene un pin de entrada de alimentación externa para LED si no hay una cantidad suficiente de energía disponible a través de los circuitos internos.
Como se muestra en el diagrama esquemático anterior, necesitamos descargar e instalar la aplicación Blynken nuestro teléfono inteligente donde los parámetros como el color, el brillo se pueden controlar. Después de configurar los parámetros, si se produce algún cambio en la aplicación, es en la nube de Blynk, donde nuestra PC también está conectada y lista para recibir los datos actualizados. El Arduino Uno se conecta a nuestra PC mediante cable USB con un puerto de comunicación abierto, con este puerto de comunicación (Puerto COM), se pueden intercambiar datos entre la nube Blynk y Arduino UNO. La PC solicita datos de la nube de Blynk a intervalos de tiempo constantes y cuando se reciben datos actualizados, los transfiere a Arduino y toma decisiones definidas por el usuario, como controlar el brillo y los colores del LED RGB. El escudo LED RGB se coloca en el LED Arduino y se conecta a través de un solo pin de datos para la comunicación, de forma predeterminada está conectado a través del pin D6 de Arduino.Los datos en serie enviados desde Arduino UNO se envían al Neopixel shied que luego se refleja en la matriz de LED.
Componentes requeridos
- Arduino UNO
- Escudo de matriz de LED RGB 8 * 5
- Cable USB A / B para Arduino UNO
- Computadora portátil / PC
Adafruit RGB LED Shield y Arduino - Conexión de hardware
Los LED WS2812B Neopixel tienen tres pines, uno es para datos y otros dos se usan para energía, pero este escudo Arduino específico hace que la conexión del hardware sea muy simple, todo lo que tenemos que hacer es colocar la matriz LED Neopixel en la parte superior de Arduino UNO. En nuestro caso, el LED se alimenta del carril Arduino 5V predeterminado. Después de colocar el Neopixel Shield, la configuración se ve a continuación:
Configuración de la aplicación Blynk
Blynk es una aplicación que puede ejecutarse en dispositivos Android e IOS para controlar cualquier dispositivo y dispositivo IoT utilizando nuestros teléfonos inteligentes. En primer lugar, es necesario crear una interfaz gráfica de usuario (GUI) para controlar la matriz de LED RGB. La aplicación enviará todos los parámetros seleccionados desde la GUI a Blynk Cloud. En la sección del receptor, tenemos Arduino conectado a la PC mediante un cable de comunicación en serie. Por lo tanto, la PC solicita datos de la nube de Blynk y estos datos se envían a Arduino para el procesamiento necesario. Entonces, comencemos con la configuración de la aplicación Blynk.
Antes de la configuración, descargue la aplicación Blynk de la tienda Google Play (los usuarios de IOS pueden descargarla desde la App Store). Después de la instalación, regístrese con su identificación de correo electrónico y contraseña.
Crear un nuevo proyecto:
Luego de una instalación exitosa, abrimos la aplicación, y allí nos aparecerá una pantalla con la opción “ Nuevo Proyecto ”. Haga clic en él y aparecerá una nueva pantalla, donde debemos configurar los parámetros como el nombre del proyecto, la placa y el tipo de conexión. En nuestro proyecto, seleccione el dispositivo como “ Arduino UNO ” y el tipo de conexión como “ USB ” y haga clic en “ Crear”.
Después de la creación exitosa del Proyecto, obtendremos una identificación de autenticación en nuestro correo registrado. Guarde la identificación de autenticación para referencia futura.
Creación de la interfaz gráfica de usuario (GUI):
Abra el proyecto en Blynk, haga clic en el signo “+” donde obtendremos los widgets que podemos usar en nuestro proyecto. En nuestro caso, necesitamos un selector de color RGB que aparece como "zeRGBa" como se muestra a continuación.
Configuración de los widgets:
Después de arrastrar los widgets a nuestro proyecto, ahora tenemos que configurar sus parámetros que se utilizan para enviar los valores de color RGB a Arduino UNO.
Haga clic en ZeRGBa, luego obtendremos una pantalla llamada Configuración ZeRGBa. Luego, configure la opción Salida en " Combinar " y configure el pin en "V2", que se muestra en la imagen a continuación.
Código Arduino que controla el escudo LED RGB Adafruit WS2812B
Una vez completada la conexión del hardware, el código debe cargarse en Arduino. La explicación paso a paso del código se muestra a continuación.
Primero, incluya todas las bibliotecas necesarias. Abra Arduino IDE, luego vaya a la pestaña Sketch y haga clic en la opción Incluir biblioteca-> Administrar bibliotecas . Luego busque Blynk en el cuadro de búsqueda y luego descargue e instale el paquete Blynk para Arduino UNO.
Aquí la biblioteca “ Adafruit_NeoPixel.h ” se utiliza para controlar la matriz de LED RGB. Para incluirlo, puede descargar la biblioteca Adafruit_NeoPixel desde el enlace dado. Una vez que lo tenga, puede incluirlo con la opción Incluir biblioteca ZIP.
#define BLYNK_PRINT DebugSerial #include #include
Luego definimos el número de LED, que se requiere para nuestra matriz de LED, también definimos el número de pin que se utiliza para controlar los parámetros del LED.
#define PIN 6 #define NUM_PIXELS 40
Luego, debemos poner nuestro ID de autenticación de parpadeo en una matriz de autenticación , que hemos guardado anteriormente.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
Aquí, los pines seriales del software se utilizan como consola de depuración. Por lo tanto, los pines de Arduino se definen como serie de depuración a continuación.
#incluir
Dentro de la configuración, la comunicación serial se inicializa usando la función Serial.begin , blynk se conecta usando Blynk.begin y usando pixels.begin (), la matriz de LED se inicializa.
configuración vacía () { DebugSerial.begin (9600); pixels.begin (); Serial.begin (9600); Blynk.begin (Serial, auth); }
Dentro del loop () , hemos utilizado Blynk.run () , que comprueba los comandos entrantes de la GUI de blynk y ejecuta las operaciones en consecuencia.
bucle vacío () { Blynk.run (); }
En la etapa final, los parámetros que se enviaron desde la aplicación Blynk deben recibirse y procesarse. En este caso, los parámetros se asignaron a un pin virtual "V2" como se discutió anteriormente en la sección de configuración. La función BLYNK_WRITE es una función incorporada que se llama cada vez que cambia el estado / valor del pin virtual asociado. podemos ejecutar código dentro de esta función como cualquier otra función de Arduino.
Aquí la función BLYNK_WRITE está escrita para verificar los datos entrantes en el pin virtual V2. Como se muestra en la sección de configuración de Blink, los datos de píxeles de color se combinaron y asignaron al pin V2. Así que también tenemos que volver a fusionar después de la decodificación. Porque para controlar la matriz de píxeles de LED, necesitamos los 3 datos de píxeles de color individuales, como rojo, verde y azul. Como se muestra en el código a continuación, se leyeron tres índices de la matriz como param.asInt () para obtener el valor del color rojo. De manera similar, todos los otros dos valores se recibieron y almacenaron en 3 variables individuales. Luego, estos valores se asignan a la matriz de píxeles utilizando la función pixels.setPixelColor como se muestra en el código a continuación.
Aquí, la función pixels.setBrightness () se usa para controlar el brillo y la función pixels.show () se usa para mostrar el color establecido en la Matriz.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); píxeles.clear (); pixels.setBrightness (20); para (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } píxeles.show (); }
Subiendo el código a la placa Arduino
Primero, debemos seleccionar el PUERTO del Arduino dentro del IDE de Arduino, luego debemos cargar el código en Arduino UNO. Después de una carga exitosa, anote el número de puerto que se utilizará para nuestra configuración de comunicación en serie.
Después de esto, busque la carpeta de secuencias de comandos de la biblioteca Blynk en su PC. Se instala cuando instalas la biblioteca, la mía estaba en, "C: \ Users \ PC_Name \ Documents \ Arduino \ libraries \ Blynk \ scripts"
En la carpeta del script, debería haber un archivo llamado “blynk-ser.bat” que es un archivo por lotes usado para la comunicación serial que necesitamos editar con el bloc de notas. Abra el archivo con el bloc de notas y cambie el número de puerto a su número de puerto Arduino que anotó en el último paso.
Después de editar, guarde el archivo y ejecute el archivo por lotes haciendo doble clic en él. Entonces, debe estar viendo una ventana como la que se muestra a continuación:
Nota: Si no puede ver esta ventana que se muestra arriba y se le solicita que vuelva a conectarse, entonces podría deberse al error en la conexión de la PC con el escudo Arduino. En ese caso, verifique su conexión Arduino con la PC. Después de eso, verifique si el número de puerto COM se muestra en el IDE de Arduino o no. Si muestra el puerto COM válido, entonces está listo para continuar. Debería ejecutar el archivo por lotes nuevamente.
Demostración final:
Ahora es el momento de probar el circuito y su funcionalidad. Abra la aplicación Blynk y abra la GUI y haga clic en el botón Reproducir. Después de eso, puede seleccionar cualquiera de los colores que desee para que se reflejen en la matriz de LED. Como se muestra a continuación, en mi caso he seleccionado el color rojo y azul, se muestra en la matriz.
Del mismo modo, también puede intentar hacer diferentes animaciones utilizando estas matrices LED personalizando un poco la codificación.