jueves, 12 de marzo de 2026

CODE 7 GRADE

#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