#include <Servo.h>
Servo Servomotor;
const int ledRojoPin = 10;
const int ledVerdePin = 11;
const int botonPin = 7;
const int BuzzerPin = 1;
int estadoAnterior = HIGH;
bool semaforoActivo = false;
void setup() {
Servomotor.attach(9);
pinMode(ledRojoPin, OUTPUT);
pinMode(ledVerdePin, OUTPUT);
pinMode(botonPin, INPUT_PULLUP);
pinMode(BuzzerPin, OUTPUT);
}
void loop() {
int estadoBoton = digitalRead(botonPin);
if (estadoBoton == LOW && estadoAnterior == HIGH) {
semaforoActivo = !semaforoActivo;
if (semaforoActivo) {
// Semáforo activado: Servo a 0 grados, LED verde encendido, LED rojo apagado
Servomotor.write(0);
digitalWrite(ledVerdePin, HIGH);
digitalWrite(ledRojoPin, LOW);
tone(BuzzerPin, 200, 2000); // Activar el zumbador
} else {
// Semáforo desactivado: Servo a 90 grados, LED verde apagado, LED rojo encendido
Servomotor.write(90);
digitalWrite(ledVerdePin, LOW);
digitalWrite(ledRojoPin, HIGH);
noTone(BuzzerPin); // Desactivar el zumbador
}
}
estadoAnterior = estadoBoton;
}