#include <ESP32Servo.h> // 1. Librería para controlar el motor
Servo miServo; // 2. Crea el objeto 'miServo'
const int trigPin = 5; // 3. Pin del emisor de sonido
const int echoPin = 18; // 4. Pin del receptor de sonido
const int servoPin = 19; // 5. Pin de señal del motor
void setup() {
miServo.attach(servoPin); // 6. Conecta el software al pin 19
pinMode(trigPin, OUTPUT); // 7. Trig es salida
pinMode(echoPin, INPUT); // 8. Echo es entrada
Serial.begin(115200); // 9. Inicia comunicación serial
}
void loop() {
// --- RETO 1: Completa el FOR ---
// Pista: Empieza en 0, llega hasta 180, avanza uno por uno.
for (int pos = 0; __________________; __________________) {
miServo.write(pos); // Mueve el motor
delay(15); // Ritmo del motor
if (obtenerDistancia() < 30) { resetServo(); return; }
}
// --- Bucle FOR (Completado para referencia) ---
for (int pos = 180; pos >= 90; pos--) {
miServo.write(pos);
delay(15);
if (obtenerDistancia() < 30) { resetServo(); return; }
}
// --- RETO 2: Completa el WHILE ---
// Pista: Mientras la distancia detectada sea menor a 30...
while (__________________________) {
Serial.println("Peligro: Objeto detectado. Esperando...");
delay(500); // Espera antes de volver a revisar
}
// Movimiento final de reseteo
miServo.write(0);
}
// Función del sensor
int obtenerDistancia() {
digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW);
return pulseIn(echoPin, HIGH) * 0.034 / 2;
}
// Función de emergencia
void resetServo() {
miServo.write(0);
Serial.println("¡Alerta! Regresando a 0 grados.");
}
No hay comentarios:
Publicar un comentario