#include <Servo.h>
// Definición de pines
const int servoPin = 9; // Pin donde está conectado el servo
const int openButtonPin = 2; // Pin del botón para abrir la puerta
const int closeButtonPin = 3; // Pin del botón para cerrar la puerta
const int greenLedPin = 6; // Pin del LED verde (indica movimiento de la puerta)
const int redLedPin = 7; // Pin del LED rojo (indica puerta quieta)
Servo myServo; // Objeto para controlar el servo
void setup() {
// Inicialización de pines
pinMode(openButtonPin, INPUT_PULLUP);
pinMode(closeButtonPin, INPUT_PULLUP);
pinMode(greenLedPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
// Inicialización del servo
myServo.attach(servoPin);
}
void loop() {
// Lectura de los estados de los botones
int openButtonState = digitalRead(openButtonPin);
int closeButtonState = digitalRead(closeButtonPin);
// Abrir la puerta si se presiona el botón de abrir
if (openButtonState == LOW) {
myServo.write(0); // Ángulo de 0 grados (puerta abierta)
digitalWrite(greenLedPin, HIGH); // Encender LED verde (puerta en movimiento)
digitalWrite(redLedPin, LOW); // Apagar LED rojo
}
// Cerrar la puerta si se presiona el botón de cerrar
else if (closeButtonState == LOW) {
myServo.write(90); // Ángulo de 90 grados (puerta cerrada)
digitalWrite(greenLedPin, LOW); // Encender LED verde (puerta en movimiento)
digitalWrite(redLedPin, HIGH); // Apagar LED rojo
}
// Si no se presiona ninguno de los botones, la puerta está quieta
else {
digitalWrite(greenLedPin, LOW); // Apagar LED verde
digitalWrite(redLedPin, LOW); // Encender LED rojo (puerta quieta)
}
}