Control de LEDs con Arduino, ESP8266 y ESP32: Resistencias, Módulos KY y Depuración con Osciloscopio

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.

Los módulos de diodos LED para Arduino y ESP32 facilitan la integración visual en prototipos al integrar diodos bicolores, RGB o emisores automáticos en placas preparadas para conectores hembra. La siguiente tabla técnica resume los principales modelos de la serie KY, su tensión de funcionamiento y si integran resistencia limitadora en la placa PCB:

Módulo LED Tipo de Diodo Resistencia Interna en PCB Tensión Directa Típica (VF) Pines del Módulo Recomendación de Conexión en Arduino / ESP32
KY-011 LED Bicolor 5 mm (Rojo / Verde) No (Conexión directa) Rojo: 2,0 V | Verde: 2,2 V [G] Verde, [R] Rojo, [-] GND Requiere resistencia externa de 220 Ω (5 V) o 100 Ω (3,3 V) por cada ánodo.
KY-009 LED SMD 5050 RGB (3 chips) No (Peligro de sobrecorriente) R: 2,0 V | G: 3,2 V | B: 3,2 V [R] Rojo, [G] Verde, [B] Azul, [-] GND Obligatorio colocar 3 resistencias externas (220 Ω en R, 150 Ω en G y B).
KY-016 LED RGB 5 mm Through-Hole Sí (Resistencias SMD en placa) R: 2,0 V | G: 3,2 V | B: 3,2 V [R] Rojo, [G] Verde, [B] Azul, [-] GND Conexión directa a pines digitales o canales PWM de Arduino o ESP32.
KY-034 Flash LED 7 Colores Automático No (Circuito integrado oscilador) 3,0 V a 4,5 V [S] Señal / VCC, [-] GND Colocar resistencia de 100 Ω a 220 Ω para limitar la corriente del chip oscilador.
KY-010 Barrera Óptica / Interruptor Óptico Sí (Resistencia pull-up en PCB) LED IR: 1,2 V | Fototransistor [S] Señal digital, [+] VCC, [-] GND Alimentación directa a 5 V o 3,3 V; pin de señal conectado a entrada digital con interrupción.
Precauciones Eléctricas: Límite de Corriente GPIO, Resistencia Limitadora Obligatoria y Niveles de 3,3 V
  • Destrucción del puerto GPIO por conexión directa sin resistencia: Un diodo LED en polarización directa presenta una resistencia interna prácticamente nula una vez superada su tensión de umbral (VF). Si conectas un LED directamente entre un pin GPIO y masa sin una resistencia limitadora calculada en serie, la corriente superará los 40 mA o 50 mA, rebasando el límite máximo absoluto del microcontrolador (40 mA máx. en ATmega328P de Arduino Uno; 12-20 mA máx. en ESP32 y 12 mA en ESP8266), provocando la destrucción térmica irreversible de la etapa de salida push-pull del pin.
  • Peligro crítico en módulos sin resistencia integrada (KY-009 vs KY-016): El módulo SMD RGB KY-009 utiliza un LED 5050 montado sobre una PCB que carece por completo de resistencias limitadoras en sus pistas. Conectar los pines R, G o B del KY-009 directamente a los pines de Arduino o ESP32 fundirá instantáneamente el chip LED y sobrecargará el microcontrolador. Es obligatorio colocar una resistencia en serie externa (150 Ω a 220 Ω) en cada color. En contraste, el módulo KY-016 sí incorpora resistencias SMD integradas.
  • Tensión directa de LEDs azules/blancos y alimentación en ESP32 (3,3 V): Los diodos LED azules, blancos y verdes de alta luminosidad tienen tensiones directas elevadas (VF entre 3,0 V y 3,3 V). Al alimentarlos desde un pin GPIO de 3,3 V en ESP32, la caída de tensión disponible en la resistencia (VR = 3,3 V - VF) es muy pequeña (0,1 V a 0,3 V), lo que produce un brillo tenue si se utilizan resistencias estándar de 220 Ω o 330 Ω. Para estas placas se recomiendan resistencias de 47 Ω a 100 Ω. Jamás conectes el ánodo a 5 V y el cátodo a un pin del ESP32 a nivel ALTO, ya que circulará corriente inversa destructiva hacia el riel interno de 3,3 V del SoC.

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)

Color del Diodo Caída de Tensión Directa (VF) Resistencia Recomendada para Arduino Uno / 5 V (IF = 15-20 mA) Resistencia Recomendada para ESP8266 y ESP32 / 3,3 V (IF = 10-12 mA)
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)

Canal de Color SMD Tensión Directa de Umbral (VF) Resistencia Externa para 5 V (Arduino Uno / Mega) Resistencia Externa para 3,3 V (ESP32 / NodeMCU)
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)

Color del LED RGB Tensión Directa Típica (VF) Resistencia Limitadora Interna / Sugerida (5 V) Resistencia Sugerida para Lógica de 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.

Comprobación de Diodos LED y Señales PWM con Osciloscopio

Aunque un diodo LED es uno de los componentes más básicos de la electrónica, analizar su comportamiento dinámico con un osciloscopio digital resulta imprescindible para diagnosticar problemas de parpadeo (flicker), caídas de tensión en líneas de alimentación y tiempos de conmutación en proyectos de alta velocidad:

  • Medición de la Tensión de Umbral Dinámica (VF) y Ruido de Conducción: Al colocar la sonda del osciloscopio en paralelo con el LED (o midiendo con sonda diferencial en ánodo y cátodo), puedes capturar la curva de encendido real en el dominio del tiempo. En acoplamiento DC se mide la tensión de codo exacta a diferentes corrientes, mientras que en acoplamiento AC (10 mV/div) es posible detectar si la fuente de alimentación o el regulador del microcontrolador introducen rizado o fluctuaciones de brillo imperceptibles para el ojo humano pero perjudiciales para la cámara o sensores ópticos.
  • Verificación de la Frecuencia y Ciclo de Trabajo en Regulación PWM: Cuando se modula el brillo de un LED mediante analogWrite() o canales LEDC en ESP32, el diodo conmuta a frecuencias elevadas (490 Hz o 980 Hz en Arduino Uno, y de 1 kHz a 5 kHz en ESP32). Mediante las medidas automáticas de frecuencia y ciclo de trabajo (+Duty) del osciloscopio, se verifica que la señal PWM llegue limpia sin deformaciones capacitivas ni picos de sobretensión provocados por cables largos.
  • Tiempo de Transición y Conmutación Óptica en Barreras KY-010: En módulos de bloqueo óptico como el KY-010, al interrumpir el haz de luz con un objeto, el fototransistor interno pasa de saturación a corte. Al configurar el disparo único (Single-Shot Trigger) en flanco de subida con base de tiempos de 50 μs/div, se observa la pendiente real del flanco (tiempo de subida tr). Si el tiempo de transición supera los 5 μs debido a la capacitancia del circuito, las entradas digitales pueden interpretar lecturas dobles o transitorios espurios.

La siguiente tabla compara cuatro osciloscopios de banco recomendados para el análisis de señales digitales, buses de comunicación y transitorios en proyectos de electrónica con microcontroladores:

Modelo de Osciloscopio Ancho de Banda Canales Velocidad de Muestreo Profundidad de Memoria Idoneidad para Proyectos Arduino y ESP32
Rigol DS1054Z 50 MHz (ampliable a 100 MHz) 4 analógicos 1 GSa/s 24 Mpts Excelente estándar de laboratorio: 4 canales indispensables para correlacionar señales RGB simultáneas y buses serie.
Siglent SDS1104X-E 100 MHz 4 analógicos 1 GSa/s 14 Mpts Sobresaliente: decodificación por hardware incluida, velocidad de captura SPO de 400.000 wfm/s y bajo nivel de ruido.
Hantek DSO2D10 100 MHz 2 analógicos + Generador AWG 1 GSa/s 8 Mpts Económico para banco de trabajo: generador de funciones integrado de 25 MHz para simular señales cuadradas y PWM.
FNIRSI 1014D 100 MHz (nominal) 2 analógicos + Generador 1 GSa/s 240 kpts Gama de entrada para principiantes y aficionados que buscan visualizar pulsos básicos sin requerir decodificación digital.

Para profundizar en los fundamentos de instrumentación y selección de equipos para electrónica digital y microcontroladores, te recomendamos revisar nuestra guía sobre osciloscopios para proyectos con Arduino y ESP32, o consultar nuestra comparativa de osciloscopios digitales de sobremesa y osciloscopios portátiles.

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.

Cómo verificar y depurar esta señal en el laboratorio con un osciloscopio

Conectando el Canal 1 del osciloscopio al pin de salida del microcontrolador y el Canal 2 al ánodo del LED (después de la resistencia limitadora) podrás medir directamente la caída de tensión directa Vf real del diodo según su color (aproximadamente 1,8 V en LEDs rojos y 3,0 a 3,2 V en LEDs azules o blancos) y calcular por diferencia la corriente exacta que circula por la resistencia.

¿Buscas un instrumento para tu banco de trabajo? Consulta nuestra guía técnica: Cómo elegir un osciloscopio para proyectos con Arduino y ESP32 o compara los mejores osciloscopios digitales y osciloscopios USB para PC.

Preguntas Frecuentes sobre Conexión de Diodos LED en Microcontroladores

¿Da igual colocar la resistencia limitadora en el positivo (ánodo) o en el negativo (cátodo) del LED?

Sí, desde el punto de vista del circuito eléctrico es exactamente indiferente. Al tratarse de una conexión en serie elemental (Pin GPIO → Resistencia → LED → Masa GND, o Pin GPIO → LED → Resistencia → Masa GND), la corriente que atraviesa todos los componentes de la malla es exactamente idéntica por la Ley de Kirchhoff. Lo estrictamente crucial es que la resistencia esté presente en el lazo para limitar la corriente total.

¿Por qué el módulo LED SMD RGB KY-009 se calienta o daña los pines de Arduino si no uso resistencias externas?

A diferencia del módulo KY-016 (que integra tres resistencias SMD soldadas en la placa), la PCB del módulo KY-009 conecta directamente los tres canales del diodo 5050 a los pines de cabecera sin ninguna resistencia limitadora. Al conectarlo directamente a 5 V o 3,3 V, la corriente se dispara por encima de los límites térmicos del diodo y del microcontrolador. Es imprescindible intercalar siempre una resistencia externa de entre 150 Ω y 220 Ω en serie con cada uno de los terminales R, G y B.

¿Cómo calcular la resistencia limitadora exacta para un LED conectado a un ESP32 (3,3 V)?

Se aplica la Ley de Ohm: R = (VGPIO - VF) / IF. En un ESP32, la tensión de salida es VGPIO = 3,3 V. Si conectas un LED rojo estándar con caída directa VF = 2,0 V y deseas una corriente segura de 12 mA (0,012 A), el cálculo es: R = (3,3 - 2,0) / 0,012 = 108,3 Ω (el valor comercial estándar más cercano es 100 Ω o 120 Ω). Para un LED azul o blanco con VF = 3,1 V, la resistencia requerida es de tan solo R = (3,3 - 3,1) / 0,012 = 16,6 Ω (se emplea 18 Ω o 22 Ω).

Deja un comentario