ESP32 - tira de LEDs NeoPixel

La tira de NeoPixel es como una tira de LEDs RGB coloridos, y puedes controlar el color y el brillo de cada LED por separado. En esta guía, descubriremos cómo usar un ESP32 para controlar la tira de LEDs RGB NeoPixel. Para controlar todos los LEDs de la tira NeoPixel, solo necesitas un único pin en el ESP32.

Acerca de la tira de LEDs RGB NeoPixel

Disposición de pines

La tira de LED RGB NeoPixel tiene tres pines:

  • Pin GND: debe conectarse a GND (0 V)
  • Pin VCC: debe conectarse a 5 V de una fuente de alimentación externa
  • Pin DIN: es el pin que recibe la señal de control. Debe conectarse a un pin GPIO del ESP32.
Pinout de NeoPixel

Diagrama de Cableado

Diagrama de cableado de la tira de LEDs RGB NeoPixel para ESP32

This image is created using Fritzing. Click to enlarge image

Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.

Cómo programar para la tira de LEDs RGB NeoPixel

  • Declara un objeto NeoPixel
#define PIN_NEO_PIXEL 16 // The ESP32 pin GPIO16 connected to NeoPixel #define NUM_PIXELS 30 // The number of LEDs (pixels) on NeoPixel Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800);
  • Inicializa el NeoPixel
NeoPixel.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
  • Establecer el color de cada LED individual (llamado píxel).
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0));
  • Establece el brillo de todas las tiras.
NeoPixel.setBrightness(200); // a value from 0 to 255

※ Nota:

  • NeoPixel.setBrightness() se usa para todos los píxeles de la tira de LEDs. Para establecer el brillo de cada píxel de forma individual, podemos escalar el valor de color.
  • Los valores establecidos por NeoPixel.setBrightness() y NeoPixel.setPixelColor() solo tienen efecto cuando se llama a NeoPixel.show().

Código ESP32

El siguiente código realiza las siguientes tareas:

  • Cambia secuencialmente los píxeles a verde, con una pausa entre cada píxel.
  • Apaga todos los píxeles durante dos segundos.
  • Al mismo tiempo, coloca todos los píxeles en rojo, manteniendo este estado durante 1 segundo.
  • Todo este proceso se repite indefinidamente.
/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-neopixel-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_NEO_PIXEL 16 // The ESP32 pin GPIO16 connected to NeoPixel #define NUM_PIXELS 30 // The number of LEDs (pixels) on NeoPixel LED strip Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800); void setup() { NeoPixel.begin(); // initialize NeoPixel strip object (REQUIRED) } void loop() { NeoPixel.clear(); // set all pixel colors to 'off'. It only takes effect if pixels.show() is called // turn pixels to green one-by-one with delay between each pixel for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel NeoPixel.setPixelColor(pixel, NeoPixel.Color(0, 255, 0)); // it only takes effect if pixels.show() is called NeoPixel.show(); // update to the NeoPixel Led Strip delay(500); // 500ms pause between each pixel } // turn off all pixels for two seconds NeoPixel.clear(); NeoPixel.show(); // update to the NeoPixel Led Strip delay(2000); // 2 seconds off time // turn on all pixels to red at the same time for two seconds for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0)); // it only takes effect if pixels.show() is called } NeoPixel.show(); // update to the NeoPixel Led Strip delay(1000); // 1 second on time // turn off all pixels for one seconds NeoPixel.clear(); NeoPixel.show(); // update to the NeoPixel Led Strip delay(1000); // 1 second off time }

Pasos R\u00e1pidos

  • Si esta es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
  • Realiza el cableado como en la imagen de arriba.
  • Conecta la placa ESP32 a tu PC a través de un cable micro USB.
  • Abre Arduino IDE en tu PC.
  • Selecciona la placa ESP32 correcta (ESP32 Dev Module) y el puerto COM.
  • Haz clic en el icono Libraries en la barra izquierda del Arduino IDE.
  • Busca “Adafruit NeoPixel”, luego encuentra la biblioteca NeoPixel de Adafruit.
  • Haz clic en el botón Install para instalar la biblioteca NeoPixel.
Biblioteca NeoPixel para ESP32
  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en el IDE de Arduino para cargar el código en ESP32
  • Echa un vistazo al efecto de la tira de LEDs

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!