Arduino Nano ESP32 - tira de LEDs NeoPixel

La tira 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 Arduino Nano 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 Arduino Nano ESP32.

Hardware Requerido

1×Arduino Nano ESP32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×NeoPixel RGB Tira LED
1×1000uF Capacitor
1×470Ω Resistor
1×Adaptador de Corriente 5V
1×(Opcional) Conector de Alimentación DC
1×Cables Puente
1×Protoboard
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca de la tira de LEDs RGB NeoPixel

Diagrama de pines

La tira de LEDs RGB NeoPixel tiene tres pines:

  • Pin GND: debe conectarse a GND (0V)
  • 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 del Arduino Nano ESP32
Diagrama de pines de NeoPixel

Diagrama de Cableado

Diagrama de cableado para la tira de LEDs RGB NeoPixel con Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Cómo programar para la tira de LEDs RGB NeoPixel

  • Declara un objeto NeoPixel
#define PIN_NEO_PIXEL D2 // The Arduino Nano ESP32 pin 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)
  • Establece el color de cada LED individual (llamado píxel).
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0));
  • Ajusta el brillo de toda la tira.
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 ajustar el brillo de cada píxel 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 Arduino Nano 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, pone todos los píxeles en rojo, manteniendo este estado durante un segundo.
  • Todo este proceso se repite indefinidamente.
/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-neopixel-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_NEO_PIXEL D2 // The Arduino Nano ESP32 pin 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

Para empezar con Arduino Nano ESP32, siga estos pasos:

  • Si eres nuevo en Arduino Nano ESP32, consulta el tutorial sobre cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino.
  • Conecta los componentes de acuerdo con el diagrama proporcionado.
  • Conecta la placa Arduino Nano ESP32 a tu computadora mediante un cable USB.
  • Inicia el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Nano ESP32 y su puerto COM correspondiente.
  • Abre el Administrador de Bibliotecas haciendo clic en el icono de Administrador de Bibliotecas en la barra de navegación izquierda del IDE de Arduino
  • Busca “Adafruit NeoPixel”, luego encuentra la biblioteca NeoPixel de Adafruit
  • Haz clic en el botón Instalar para instalar la biblioteca NeoPixel.
Biblioteca NeoPixel para Arduino Nano ESP32
  • Copia el código anterior y ábrelo con el IDE de Arduino
  • Haz clic en el botón Cargar en el IDE de Arduino para cargar el código al Arduino Nano ESP32
  • Observa el 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!