Tutorial de LED para Arduino, ESP8266 y ESP32

En este tutorial aprenderás a controlar diferentes LEDs con tu micrcontrolador basado en Arduino, ESP8266 o ESP32.

Los diferentes LEDs te dan total flexibilidad en tus proyectos. Desde un simple LED de un color, para indicar el estado de un sistema, hasta un LED multicolor que se utiliza en configuraciones de salas de juego.


Introducción al tutorial de LED para Arduino, ESP8266 y ESP32

En muchas de las publicaciones de mi blog, uso algún tipo de LED para mostrar lo que está sucediendo en el boceto, por ejemplo, cuando se alcanza un cierto nivel de sensor, se enciende un LED. Debido a que hay más luces y diferentes tipos de LED disponibles, cubrimos todos estos dispositivos diferentes en este tutorial. Con este conocimiento, puede hacer que su próximo proyecto sea más especial e impresionante.

En este tutorial, a menudo usamos una señal de modulación de ancho de pulso (PWM) para cambiar los colores de los LED. Si no sabe qué es PWM, el tutorial de PWM le enseña todo lo que necesita saber sobre PMW. Asegúrese de usar pines PWM solo si necesita esta funcionalidad. Para las placas basadas en ESP8266 y ESP32, todos los pines de E / S digitales son compatibles con PWM. Para las placas Arduino, puede encontrar una descripción general de los diferentes pines en los siguientes artículos: Arduino Nano, Arduino Uno, Arduino Mega o echar un vistazo al libro electrónico de la hoja de datos del microcontrolador.

La siguiente tabla le brinda una descripción general de todos los componentes y partes que utilizo para este tutorial. Recibo comisiones por compras realizadas a través de los enlaces de esta tabla.

Arduino NanoAmazonAliExpress
Arduino Pro MiniAmazonAliExpress
Arduino UnoAmazonAliExpress
Arduino MegaAmazonAliExpress
ESP32 ESP-WROOM-32AmazonAliExpress
ESP8266 NodeMCUAmazonAliExpress
ESP8266 WeMos D1 MiniAmazonAliExpress
LED de dos colores (KY-011), SMD RGB (KY-009), LED RGB (KY-016), LED de destello de 7 colores (KY-034) y Bloqueo de luz (KY-010) son parte de un paquete de sensoresAmazonAliExpress

Cómo utilizar el LED de dos colores (KY-011)

LED de dos colores

El módulo LED de dos colores (KY-011) es un LED de dos colores porque el módulo emite luz roja y verde. Al usar PWM, puede ajustar la cantidad de cada color. Por lo tanto, el LED puede ser completamente rojo o verde y todas las combinaciones vienen dependiendo de las entradas para los pines. Esto también define el número de pines del KY-011:

  1. Un pin para la entrada de luz roja.
  2. Un pin para entrada de luz verde
  3. Pin de tierra para cerrar el circuito

El voltaje de funcionamiento del LED de dos colores KY-011 está entre 2V y 2.5V. Por lo tanto, necesitamos una resistencia en serie para la entrada de luz roja y verde para reducir el voltaje de salida de nuestro microcontrolador. Usaremos resistencias de 330Ω para el Arduino con un voltaje de operación de 5V y resistencias de 100Ω para el microcontrolador ESP8266 y ESP32 con un voltaje de operación de 3.3V.

Cableado entre el LED de dos colores (KY-011) y el microcontrolador

La siguiente tabla e imágenes muestran el cableado entre el LED de dos colores KY-011 y el microcontrolador Arduino, ESP8266 o ESP32.

Voltaje de funcionamiento de Arduino (voltaje de funcionamiento: 5 V) ESP8266 y ESP32 (voltaje de funcionamiento: 3,3 V)

Rojo2 V hasta 2,5 VR = 330R = 100Ω
Verde2 V hasta 2,5 VR = 330R = 100Ω

Arduino Nano

LED de dos colores KY-011 Arduino Nano

Arduino Pro Mini

Arduino Pro Mini LED bicolor KY-011

Arduino Uno

LED de dos colores KY-011 Arduino Uno

Arduino Mega

LED de dos colores KY-011 Arduino Mega

ESP32 NodeMCU

LED bicolor KY-011 ESP32 NodeMCU

ESP8266 NodeMCU

LED bicolor KY-011 ESP8266 NodeMCU

ESP8266 WeMos D1 Mini

LED bicolor KY-011 ESP8266 WeMos D1 Mini

Código para LED de dos colores (KY-011) para alternar dos colores

Queremos hacer un breve boceto de muestra para el LED de dos colores que alterna el color del LED entre rojo y verde. Por lo tanto, usamos pines PWM para hacer un bucle entre el color verde y el rojo. También es posible usar solo el color rojo y verde completo si desea hacer un ejemplo para un proyecto de carga de batería.

  • Batería completamente cargada: LED verde
  • Batería vacía: LED rojo
  • La batería se está recargando: los dos LED están encendidos, por lo tanto amarillos.
// for Arduino microcontroller
int Led_Red = 10;
int Led_Green = 11;

// for ESP8266 microcontroller
//int Led_Red = D3;
//int Led_Green = D4;

// for ESP32 microcontroller
//int Led_Red = 4;
//int Led_Green = 0;


void setup() {
  pinMode(Led_Red, OUTPUT); 
  pinMode(Led_Green, OUTPUT); 
}
void loop() {
   for (int val = 255; val > 0; val--) {
      analogWrite(Led_Green, val);
      analogWrite(Led_Red, 255-val);
      delay(15);
   }
   for (int val = 0; val < 255; val++) {
      analogWrite(Led_Green, val);
      analogWrite(Led_Red, 255-val);
      delay(15);
   }
}

Al comienzo del script, necesitamos definir los pines de conexión entre el LED de dos colores y el microcontrolador Arduino, ESP8266 o ESP32. Por lo tanto, verá que la conexión de los pines rojo y verde se establece tres veces. Debido a que solo necesita las líneas para su microcontrolador, puede eliminar las otras líneas para la conexión o comentar las líneas, como hice para el ESP8266 y el ESP32.

En la función de configuración, establecemos que los pines de los LED rojo y verde deben ser salidas porque queremos emitir una señal PWM desde el microcontrolador para cambiar el color del KY-011.

La función de bucle contiene dos bucles for. En cada bucle for, comenzamos configurando un color (rojo o verde) al brillo máximo por la señal PWM (val = 255) y el otro color al brillo más bajo (val = 0). Luego disminuimos el brillo del color principal y aumentamos el brillo del otro color hasta que la proporción se invierta totalmente. Por ejemplo:

  • primera iteración del primer ciclo for: val = 255
    • el LED verde tiene un valor de 255
    • el LED rojo tiene un valor de 0
    • entonces el LED es verde
  • 127 / pequeña iteración del primer ciclo for: val = 128
    • el LED verde tiene un valor de 128
    • el LED rojo tiene un valor de 127
    • entonces el LED es amarillo
  • última iteración del primer ciclo for: val = 1
    • el LED verde tiene un valor de 1
    • el LED rojo tiene un valor de 254
    • entonces el LED es rojo

En el segundo bucle for, invertimos toda la lógica y el color del LED cambia de rojo a verde.

El siguiente video muestra el LED de dos colores en acción, cambiando el color de verde a amarillo a rojo y viceversa.

Cómo utilizar el SMD RGB (KY-009)

RGB SMD

El RGB SMD (KY-009) es como el LED de dos colores (KY-011) pero puede emitir rojo, verde y azul en lugar de solo rojo y verde. Por lo tanto, se puede emitir cualquier color RGB desde el módulo RGB SMD debido a la mezcla de rojo, verde y azul. Al igual que el LED de dos colores (KY-011), el SMD RGB (KY-009) también usa PWM para ajustar la cantidad de cada color. El módulo tiene 4 pines para conectarse a su microcontrolador. Las siguientes imágenes le muestran cómo conectar el KY-011 a su microcontrolador Arduino, ESP8266 o ESP32.

Cableado entre SMD RGB (KY-009) y microcontrolador

Importante: El módulo LED SMD consta de un LED SMD 5050 que debe evitar el desgaste con resistencias limitadoras. La siguiente tabla muestra la tensión de funcionamiento y las resistencias utilizadas para evitar el desgaste.

Voltaje de funcionamiento de Arduino (voltaje de funcionamiento: 5 V) ESP8266 y ESP32 (voltaje de funcionamiento: 3,3 V)

Rojo1,8 V a 2,4 VR = 220 ΩR = 100Ω
Verde2,8 V a 3,6 VR = 100ΩNo se necesita resistencia
Azul2,8 V a 3,6 VR = 100ΩNo se necesita resistencia

Arduino Nano

SMD RGB KY-009 Arduino Nano

Arduino Pro Mini

SMD RGB KY-009 Arduino Pro Mini

Arduino Uno

SMD RGB KY-009 Arduino Uno

Arduino Mega

SMD RGB KY-009 Arduino Mega

ESP32 NodeMCU

SMD RGB KY-009 ESP32 NodeMCU

ESP8266 NodeMCU

SMD RGB KY-009 ESP8266 NodeMCU

ESP8266 WeMos D1 Mini

SMD RGB KY-009 ESP8266 WeMos D1 Mini

Código para SMD RGB (KY-009) para buscar diferentes colores

Queremos hacer un breve boceto de muestra para el SMD RGB (KY-009) que recorre diferentes colores cambiando el valor de PWM en cada uno de los tres colores primarios. Basado en este script de muestra, puede crear variaciones ilimitadas. Por ejemplo, si no desea cambiar un color RGB, puede establecer un valor PWM estático para ese color fuera de los bucles for.

// for Arduino microcontroller
int Led_Red = 10;
int Led_Green = 11;
int Led_Blue = 9;

// for ESP8266 microcontroller
//int Led_Red = D3;
//int Led_Green = D2;
//int Led_Blue = D4;

// for ESP32 microcontroller
//int Led_Red = 2;
//int Led_Green = 0;
//int Led_Blue = 4;
 

void setup() {
  pinMode(Led_Red, OUTPUT); 
  pinMode(Led_Green, OUTPUT); 
  pinMode(Led_Blue, OUTPUT); 
}
void loop() {
   for(int val = 255; val> 0; val--) {
      analogWrite (Led_Red, val);
      analogWrite (Led_Blue, 255-val);
      analogWrite (Led_Green, 128-val);
      delay (15);
   }

   for(int val = 0; val <255; val++) {
      analogWrite (Led_Red, val);
      analogWrite (Led_Blue, 255-val);
      analogWrite (Led_Green, 128-val);
      delay (15);
   }
}

Está familiarizado con la mayoría de las secuencias de comandos del programa del primer ejemplo. Básicamente, el script es como el primero, pero en lugar de dos LED, puede controlar los LED en el árbol.

Por lo tanto, necesitamos configurar los pines del árbol que conectan el LED RGB SMD al microcontrolador Arduino, ESP8266 o ESP32 y configurar el LED azul como salida en la función de configuración.

En la función de bucle, el brillo de los diferentes LED se mezcla cambiando los valores de PWM. Esto da como resultado diferentes colores.

El siguiente video muestra el resultado del boceto. El LED SMD RGB cambia a diferentes colores.

Cómo utilizar el LED RGB (KY-016)

LED RGB

El módulo LED RGB es el mismo que el RGB SMD (KY-009). Solo tiene un voltaje de funcionamiento ligeramente diferente, consulte la tabla a continuación. Pero dado que el voltaje de trabajo difiere solo un poco, usamos las mismas resistencias para evitar el agotamiento del módulo.

Voltaje de funcionamiento de Arduino (voltaje de funcionamiento: 5 V) ESP8266 y ESP32 (voltaje de funcionamiento: 3,3 V)

Rojo1,8 V a 2,1 VR = 220 ΩR = 100Ω
Verde3 V hasta 3,2 VR = 100ΩNo se necesita resistencia
Azul3 V hasta 3,2 VR = 100ΩNo se necesita resistencia

Cableado entre el LED RGB (KY-016) y el microcontrolador

Las siguientes imágenes muestran el cableado entre el LED RGB (KY-016) y las diversas placas de microcontroladores Arduino, ESP8266 o ESP32.

Arduino Nano

LED RGB Arduino Nano KY-016

Arduino Pro Mini

Arduino Pro Mini KY-016 RGB LED

Arduino Uno

Arduino Uno KY-016 RGB LED

Arduino Mega

Arduino Mega KY-016 RGB LED

ESP32 NodeMCU

LED RGB KY-016 ESP32 NodeMCU

ESP8266 NodeMCU

LED RGB KY-016 ESP8266 NodeMCU

ESP8266 WeMos D1 Mini

LED RGB KY-016 ESP8266 WeMos D1 Mini

Código para LED RGB (KY-016) para buscar diferentes colores

Para el LED RGB, utilizamos el mismo código de programa que para el SMD RGB (KY-009) que pasa por diferentes colores cambiando el valor PWM en cada uno de los tres colores primarios.

// for Arduino microcontroller
int Led_Red = 10;
int Led_Green = 11;
int Led_Blue = 9;

// for ESP8266 microcontroller
//int Led_Red = D3;
//int Led_Green = D2;
//int Led_Blue = D4;

// for ESP32 microcontroller
//int Led_Red = 2;
//int Led_Green = 0;
//int Led_Blue = 4;
 

void setup() {
  pinMode(Led_Red, OUTPUT); 
  pinMode(Led_Green, OUTPUT); 
  pinMode(Led_Blue, OUTPUT); 
}
void loop() {
   for(int val = 255; val> 0; val--) {
      analogWrite (Led_Red, val);
      analogWrite (Led_Blue, 255-val);
      analogWrite (Led_Green, 128-val);
      delay (15);
   }

   for(int val = 0; val <255; val++) {
      analogWrite (Led_Red, val);
      analogWrite (Led_Blue, 255-val);
      analogWrite (Led_Green, 128-val);
      delay (15);
   }
}

El siguiente video muestra cómo cambia el color del LED durante el script del programa.

Cómo utilizar el flash LED de 7 colores (KY-034)

7 colores de flash LED

El flash LED de 7 colores cambia automáticamente de color cada 2-3 segundos e incluye 7 colores en total. Debido a que la lógica de cambio de color está dentro del módulo LED, solo necesitamos un pin de E / S digital para activar la lógica del LED y un circuito estándar conectado a 5V o 3.3V y a tierra.

Cableado entre el flash LED de 7 colores (KY-034) y el microcontrolador

Las siguientes imágenes muestran el cableado entre el LED Flash de 7 colores (KY-034) y el microcontrolador Arduino, ESP8266 o ESP32.

Arduino Nano

Flash LED de 7 colores KY-034 Arduino Nano

Arduino Pro Mini

Flash LED de 7 colores KY-034 Arduino Pro Mini

Arduino Uno

Flash LED 7 colores KY-034 Arduino Uno

Arduino Mega

Flash LED de 7 colores KY-034 Arduino Mega

ESP32 NodeMCU

Flash LED 7 colores KY-034 ESP32 NodeMCU

ESP8266 NodeMCU

Flash LED 7 colores KY-034 ESP8266 NodeMCU

ESP8266 WeMos D1 Mini

Flash LED 7 colores KY-034 ESP8266 WeMos D1 Mini

Código para flash LED de 7 colores (KY-034) Espectáculo de luces de 20 segundos

En el siguiente ejemplo, encendemos el LED durante 20 segundos y luego iniciamos el programa nuevamente.

int Led_pin = 11; // for Arduino microcontroller
//int Led_pin = D6; // for ESP8266 microcontroller
//int Led_pin = 4; // for ESP32 microcontroller

void setup() {
  pinMode(Led_pin, OUTPUT);
}

void loop() {
  digitalWrite(Led_pin, HIGH);
  delay(20000);
}

Como en todos los demás scripts, al principio necesitamos configurar el pin que conecta el flash LED de 7 colores con el microcontrolador Arduino, EPS8266 o ESP32. Solo necesita la línea de código correspondiente a su microcontrolador.

En la función de configuración, definimos el pin LED como salida.

En la función de bucle, activamos la lógica del LED de flash de 7 colores configurando el pin digital ALTO. Después de un retraso de 20 segundos, iniciamos el programa nuevamente.

El siguiente video muestra el flash LED de 7 colores KY-034 en acción. En mi opinión, este LED es el más genial de todos en el artículo.

Cómo utilizar el módulo de bloqueo de luz (KY-010)

Bloqueo de luz

El módulo de fotointerruptor KY-010 consta de un transmisor / detector óptico en la parte delantera y dos resistencias (1kΩ y 33Ω) en la parte trasera. El sensor usa un haz de luz entre el emisor y el detector para verificar si el camino entre los dos está bloqueado por un objeto opaco.
El voltaje de funcionamiento está entre 3,3 V y 5 V, por lo que no se necesita resistencia en serie para evitar el agotamiento.

Cableado para bloqueo de luz (KY-010) Interruptor de foto

La siguiente imagen muestra el cableado entre el interruptor de bloqueo de la luz fotográfica (KY-010) y varias placas de microcontroladores Arduino, ESP8266 y ESP32.

Arduino Nano

Bloqueo de luz Arduino Nano KY-010

Arduino Pro Mini

Bloqueo de luz Arduino Pro Mini KY-010

Arduino Uno

Bloqueo de luz Arduino Uno KY-010

Arduino Mega

Bloqueo de luz Arduino Mega KY-010

ESP32 NodeMCU

Bloqueo de luz KY-010 ESP32 NodeMCU

ESP8266 NodeMCU

Bloqueo de luz KY-010 ESP8266 NodeMCU

ESP8266 WeMos D1 Mini

Bloqueo de luz KY-010 ESP8266 WeMos D1 Mini

Código para KY-010 para detectar si el haz del sensor está bloqueado

En el siguiente ejemplo, el microcontrolador detectará si el arnés del sensor está bloqueado. Si esto es cierto, un LED debería encenderse mientras el haz esté bloqueado.

// for Arduino microcontroller
int Led = 8;           
int LightBlocker = 9;

// for ESP8266 microcontroller
//int Led = D7;           
//int LightBlocker = D6;

// for ESP32 microcontroller
//int Led = 4;           
//int LightBlocker = 0;


void setup() {
  pinMode(Led, OUTPUT);
  pinMode(LightBlocker, INPUT);
}

void loop() {
  int val = digitalRead(LightBlocker);
  if(val == HIGH) {
    digitalWrite(Led,HIGH);
  }
  else {
    digitalWrite(Led,LOW);
  }
}

En la primera parte del script de Arduino, definimos los pines que están conectados al LED y al módulo de bloqueo de luz. La secuencia de comandos se puede utilizar para microcontroladores Arduino, ESP8266 o ESP32. Solo necesita comentar las líneas que no coinciden con su microcontrolador.

En la función de configuración, establecemos el pin del LED como salida y el pin del módulo de bloqueo de luz como entrada.

La función de bucle comienza con la lectura del estado digital del sensor de bloqueo de luz. Si el valor del sensor es 1, es equivalente a que la luz esté bloqueada, encendemos el LED configurando el valor de salida digital del pin LED ALTO. En todos los demás casos, configuramos el pin del LED LOW para que el LED esté apagado.

El siguiente video muestra que el LED está encendido cuando bloqueo la luz del módulo de bloqueo de luz con un cable.

Conclusión

Espero que ahora conozcas las diferencias entre los diferentes módulos LED disponibles en el mercado. Dado que existen algunas diferencias importantes, necesita saber qué LED es mejor para su proyecto. Si tiene alguna pregunta sobre este artículo, utilice la sección de comentarios a continuación para hacer preguntas. Y estaría muy feliz si compartieras este artículo con tus amigos.


Deja un comentario