ESP32 - LED RGB

Este tutorial te enseña cómo controlar un LED RGB para emitir cualquier color utilizando ESP32.

Hardware Requerido

1×Módulo de Desarrollo ESP32 ESP-WROOM-32
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×RGB LED
1×(Alternativo) Módulo LED RGB
1×Protoboard
1×Cables Puente
1×(Opcional) Conector de Alimentación DC
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentación para ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
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 del LED RGB

El LED RGB puede emitir cualquier color mezclando los tres colores básicos: rojo, verde y azul. Un LED RGB único está compuesto por tres LEDs: rojo, verde y azul. Estos tres LEDs están empaquetados en una única carcasa para que parezca un único LED.

Pinout del LED RGB

El LED RGB incluye cuatro pines:

  • Pin R (rojo): sirve para controlar el elemento de color rojo
  • Pin G (verde): sirve para controlar el elemento de color verde
  • Pin B (azul): sirve para controlar el elemento de color azul
  • Pin común (cátodo-): conecta este pin a GND (0 V)
Pinout del LED RGB

Para conectar un LED RGB al ESP32, tenemos que añadir resistencias limitadoras de corriente. Esto puede complicar el cableado. Por suerte, podemos usar un módulo de LED RGB que ya viene con resistencias limitadoras de corriente instaladas.

El módulo LED RGB también incluye cuatro pines:

  • Pin común (cátodo): debe conectarse a GND (0 V)
  • R (rojo): el pin se usa para controlar el rojo
  • G (verde): el pin se usa para controlar el verde
  • B (azul): el pin se usa para controlar el azul
Esquema de pines del módulo LED RGB

※ Nota:

Según el pin común, hay dos tipos de LED: LED de ánodo común y LED de cátodo común. Este tutorial utiliza un LED de cátodo común.

Cómo funciona un LED RGB

En términos de física, un color es una combinación de tres elementos de color: Rojo (R), Verde (G) y Azul (B). Cada elemento de color tiene un rango de valores de 0 a 255. La combinación de los valores de los tres elementos de color crea 256 × 256 × 256 colores en total.

Si generamos señales PWM en los pines R, G y B, el LED RGB muestra un color correspondiente a los valores del ciclo de trabajo de PWM. Al cambiar el ciclo de trabajo de las señales PWM (de 0 a 255), el LED RGB puede mostrar cualquier color. Los valores de color de Rojo (R), Verde (G) y Azul (B) corresponden al ciclo de trabajo de PWM en los pines R, G y B, respectivamente.

Diagrama de cableado entre LED RGB y ESP32

  • Esquema de cableado entre ESP32 y LED RGB
Diagrama de cableado de LED RGB 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.

  • Diagrama de cableado entre el ESP32 y el módulo LED RGB
Diagrama de cableado del módulo LED RGB ESP32

This image is created using Fritzing. Click to enlarge image

Cómo controlar un LED RGB

Supongamos que queremos mostrar el color #00979D en un LED RGB, podemos hacer lo siguiente:

  • Encuentra el código de color. Consejos:
  • Convierte el código de color a valores R, G, B usando la herramienta de W3Schools. Toma nota de estos valores. En este caso: R = 0, G = 151, B = 157
Selector de color RGB para LED
  • Defina los pines del ESP32 que se conectan a los pines R, G y B. Por ejemplo:
#define PIN_RED 23 // GPIO23 #define PIN_GREEN 22 // GPIO22 #define PIN_BLUE 21 // GPIO21
  • Configure estos pines ESP32 en modo de salida
pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);
  • Controlar el LED para que emita ese color (#00979D → R = 0, G = 151, B = 157)
analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

ESP32 - Código de ejemplo para LED RGB

El código a continuación cambia el color del LED entre los siguientes colores en secuencia:

  • #00C9CC (R = 0, G = 201, B = 204)
  • #F7788A (R = 247, G = 120, B = 138)
  • #34A853 (R = 52, G = 168, B = 83)
/* * 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-rgb-led */ #define PIN_RED 23 // GPIO23 #define PIN_GREEN 22 // GPIO22 #define PIN_BLUE 21 // GPIO21 void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // color code #00C9CC (R = 0, G = 201, B = 204) analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 201); analogWrite(PIN_BLUE, 204); delay(1000); // keep the color 1 second // color code #F7788A (R = 247, G = 120, B = 138) analogWrite(PIN_RED, 247); analogWrite(PIN_GREEN, 120); analogWrite(PIN_BLUE, 138); delay(1000); // keep the color 1 second // color code #34A853 (R = 52, G = 168, B = 83) analogWrite(PIN_RED, 52); analogWrite(PIN_GREEN, 168); analogWrite(PIN_BLUE, 83); delay(1000); // keep the color 1 second }

Al usar muchos colores, podríamos acortar el código creando una función:

/* * 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-rgb-led */ #define PIN_RED 23 // GPIO23 #define PIN_GREEN 22 // GPIO22 #define PIN_BLUE 21 // GPIO21 void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // color code #00C9CC (R = 0, G = 201, B = 204) setColor(0, 201, 204); delay(1000); // keep the color 1 second // color code #F7788A (R = 247, G = 120, B = 138) setColor(247, 120, 138); delay(1000); // keep the color 1 second // color code #34A853 (R = 52, G = 168, B = 83) setColor(52, 168, 83); delay(1000); // keep the color 1 second } void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); analogWrite(PIN_GREEN, G); analogWrite(PIN_BLUE, B); }

※ 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!