Algunas partes de este sitio web aún no están disponibles en su idioma. Estamos trabajando para solucionar esto y nos disculpamos por cualquier inconveniente.
Tutorial ESP32 31/55 - Proyecto Tira LED con Evitación de Obstáculos | Kit de Aprendizaje IoT ESP32 de SunFounder
En este tutorial, crearemos un proyecto utilizando un microcontrolador ESP32 y una tira de LED WS2812 que puede cambiar su dirección en función de la detección de obstáculos. Cuando la tira de LED se mueve hacia adelante, mostrará colores aleatorios, y al detectar un obstáculo, cambiará a un color predeterminado y invertirá la dirección. Este proyecto muestra las capacidades del ESP32 en combinación con un sensor de evitación de obstáculos por infrarrojos.
ESP32-31-luz-fluida-principal2
A lo largo de este tutorial, cubriremos los componentes de hardware necesarios, las instrucciones de cableado y el código requerido para dar vida a este proyecto. Para una explicación más visual, asegúrate de revisar el video vinculado a continuación (en el video a las 00:00).
Hardware Explicado
Este proyecto requiere varios componentes, incluyendo el microcontrolador ESP32, una tira de LED WS2812 y un sensor de evitación de obstáculos por infrarrojos. El ESP32 es un microcontrolador potente que cuenta con Wi-Fi y Bluetooth incorporados, lo que lo hace perfecto para aplicaciones de IoT. La tira de LED WS2812 es una tira de LED RGB programable que permite el control individual de cada LED, lo que nos permite crear efectos de iluminación dinámicos.
El sensor de evitación de obstáculos por infrarrojos funciona emitiendo luz infrarroja y detectando reflejos de objetos cercanos. Cuando se detecta un obstáculo, el sensor cambia su estado de salida, permitiendo que el ESP32 responda adecuadamente alterando el comportamiento de la tira de LED.
Detalles de la hoja de datos
Fabricante
WS2812B
Número de parte
WS2812B
Voltaje de lógica/IO
3.3 V (típ.)
Tensión de alimentación
5 V (típ.)
Corriente de salida (por canal)
20 mA (máx)
Corriente máxima (por canal)
60 mA (máx)
Guía de frecuencia PWM
400 Hz (típ.)
Umbrales de lógica de entrada
0.3 Vcc (alto), 0.1 Vcc (bajo)
Caída de tensión / RDS(on)/ saturación
1.2 V (máx)
Límites térmicos
85 °C (máx)
Paquete
Montaje en superficie
Notas / variantes
Disponible en varias longitudes y densidades
Asegúrate de que la tira de LED esté alimentada con 5 V para un rendimiento óptimo.
Utiliza una resistencia adecuada para el pin de datos para prevenir problemas de integridad de señal.
Tenga cuidado con las limitaciones de corriente de salida para evitar el sobrecalentamiento.
Desacople adecuadamente la fuente de alimentación para prevenir picos de voltaje.
Ajuste el sensor infrarrojo con cuidado para lograr el rango de detección deseado.
Instrucciones de cableado
ESP32-31-flowing-light-wiring
Para cablear los componentes, comienza con el sensor de evitación de obstáculos por infrarrojos. Conecta el pin de salida del sensor al pin25en el ESP32. El pin del medio debe estar conectado a tierra, y el último pin (VCC) debe estar conectado a una fuente de alimentación de 3.3 V.
ESP32-31-diagrama-de-luz-fluida
A continuación, para la tira LED WS2812, conecta el pin de datos (generalmente el cable amarillo) al pin.14en el ESP32. El cable rojo debe conectarse a una fuente de alimentación de 5 V, y el cable negro debe conectarse a tierra. Asegúrate de asegurar todas las conexiones adecuadamente para evitar cables sueltos.
Ejemplos de código y recorrido
Aquí hay un breve resumen del código que ejecuta este proyecto. Primero, definimos el número de píxeles en la tira de LED y el pin de datos utilizado para la comunicación:
#define NUM_PIXELS 8
#define DATA_PIN 14
En elsetup()función, inicializamos la tira de LED y el sensor infrarrojo:
En elloop()función, verificamos si se detecta un obstáculo y controlamos la tira de LED en consecuencia:
if (avoid_value) {
for (int i = 0; i < NUM_PIXELS; i++) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
} else {
for (int i = NUM_PIXELS - 1; i >= 0; i--) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
}
Este código permite que la tira de LED muestre colores aleatorios al avanzar y cambie de dirección cuando se detecta un obstáculo. El código completo se carga al final del artículo, así que asegúrate de revisarlo para obtener todos los detalles.
Demostración / Qué Esperar
Cuando la configuración esté completa y el código se haya subido, la tira LED comenzará a mostrar colores aleatorios mientras avanza. Cuando se detecte un obstáculo, la tira cambiará a un color predeterminado (como verde) y cambiará de dirección. Si se retira el obstáculo, la tira volverá a avanzar con colores aleatorios. Ten en cuenta que el rango de detección del sensor infrarrojo puede variar según la fuente de alimentación utilizada (en el video a las 10:30).
Marcas de tiempo del video
00:00 Comienzo
2:14 Introducción al proyecto
4:58 Explicación del cableado
7:41 Ajustando el sensor de evitación de obstáculos
10:03 Explicación del código de Arduino
15:40 Seleccionando la placa ESP32 y el puerto COM en Arduino IDE