#include <Servo.h>
// Definición de pines
const int Trig = 3;
const int Echo = 2;
const int pinLED1 = 13; // LED verde integrado
const int pinLED2 = 6; // LED rojo
const int pinBuzzer = 10;
Servo myservo;
void setup() {
Serial.begin(9600);
myservo.attach(9);
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
pinMode(pinLED1, OUTPUT);
pinMode(pinLED2, OUTPUT);
pinMode(pinBuzzer, OUTPUT);
myservo.write(0); // Posición inicial
}
void loop() {
long duracion;
long distancia;
// Medición con sensor ultrasónico
digitalWrite(Trig, LOW);
delayMicroseconds(4);
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
duracion = pulseIn(Echo, HIGH);
distancia = duracion / 58.2;
if (distancia > 0 && distancia <= 20) {
digitalWrite(pinLED1, HIGH); // LED verde encendido
digitalWrite(pinLED2, LOW); // LED rojo apagado
tone(pinBuzzer, 1000); // Buzzer encendido
myservo.write(90); // Abre servo
delay(10000); // Espera 10 segundos
myservo.write(0); // Cierra servo
noTone(pinBuzzer); // Apaga buzzer
digitalWrite(pinLED1, LOW); // Apaga verde
digitalWrite(pinLED2, HIGH); // Enciende rojo
}
delay(50);
}