Encender led con un sensor ultrasónico en ESP32
En este tutorial vamos a encender led con un sensor ultrasónico en ESP32 detectando la proximidad con un sensor de distancia HC-SR04 que al detectar cualquier objeto a menos de 20 cm de distancia encenderá un led.
¿Qué es un sensor ultrasónico?
Como su nombre lo indica, es un sensor que detecta la distancia entre algún objeto y el mismo sensor. Su funcionamiento es muy sencillo. El sensor ultrasónico emite un sonido ultrasónico y recibe el sonido restando el tiempo que tardo entre emitirse y recibirse calculando la distancia.
Requerimientos:
- Sensor HC-SR04.
- Un led.
- Una resistencia de 330 Ω.
Pasos:
- Conectamos el led a la tierra a través de una resistencia de 330 Ohms.
- Conectamos el pin D2 del ESP32 al ánodo del led.
- Conectamos la corriente VIN del sensor de distancia a la corriente VCC del ESP32.
- Conectamos la tierra GND del sensor de distancia a la tierra GND del ESP32.
- Conectamos el pin D12 al eco (Generador de ruido) del sensor de distancia.
- Conectamos el pin D13 al trig (Receptor de ruido) del sensor de distancia.
Código y diagrama: https://wokwi.com/projects/343118872517280339
Código:
int DISTANCIA = 0; int pinLed=2; int pinEco=12; int pinGatillo=13; long readUltrasonicDistance(int triggerPin, int echoPin) { //Iniciamos el pin del emisor de reuido en salida pinMode(triggerPin, OUTPUT); //Apagamos el emisor de sonido digitalWrite(triggerPin, LOW); //Retrasamos la emision de sonido por 2 milesismas de segundo delayMicroseconds(2); // Comenzamos a emitir sonido digitalWrite(triggerPin, HIGH); //Retrasamos la emision de sonido por 2 milesismas de segundo delayMicroseconds(10); //Apagamos el emisor de sonido digitalWrite(triggerPin, LOW); //Comenzamos a escuchar el sonido pinMode(echoPin, INPUT); // Calculamos el tiempo que tardo en regresar el sonido return pulseIn(echoPin, HIGH); } void setup() { Serial.begin(115200); //Configuramos el pin del led como salida pinMode(pinLed, OUTPUT); } void loop() { //Calculamos la distancia en cm DISTANCIA = 0.01723 * readUltrasonicDistance(pinGatillo, pinEco); //Mostramos la disstancia Serial.println(DISTANCIA); //Si la distancia es menor a 20 encendemos el led if (DISTANCIA < 20) { digitalWrite(pinLed, HIGH); } //Si la distancia es mayor a 20 apagamos el led else { digitalWrite(pinLed, LOW); } delay(10); }
🎦 Este curso: https://www.youtube.com/watch?v=VuJkqL2Ys3Y&list=PLCTD_CpMeEKTvjzabAvLGHakg-ql6t0q6&ab_channel=ProgramadorNovato
🎦 Curso de Arduino: https://www.youtube.com/watch?v=oGinJt9aALc&list=PLCTD_CpMeEKSqw3Nh7rA9aXUAzbPIPkdv&ab_channel=ProgramadorNovato
🎦 [CURSO] C++ DE 0 A HEROE: https://www.youtube.com/watch?v=APN8aCyPvww&list=PLCTD_CpMeEKTofxs7iottRxJ5YPM7BOcc
<<Anterior tutorial Siguiente tutorial >>