#include <ESP32Servo.h>
Servo servo_1;
#define buttonPin 4
#define buttonPin2 33
#define pinLedSup 14
#define pinLedInf 26
int servoPosition = 0;
bool puedeMostrarMensaje = true;
void setup() {
Serial.begin(115200);
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(pinLedSup, OUTPUT);
pinMode(pinLedInf, OUTPUT);
servo_1.attach(18);
servo_1.write(0);
}
void MensajeInferior(){
Serial.println("Limite inferior");
digitalWrite(pinLedSup, HIGH);
}
void MensajeSuperior(){
Serial.println("Limite superior");
digitalWrite(pinLedInf, HIGH);
}
void loop() {
int buttonState = digitalRead(buttonPin);
int buttonState2 = digitalRead(buttonPin2);
if (buttonState == LOW) {
servoPosition = min(servoPosition + 1, 180);
}
if (buttonState2 == LOW) {
servoPosition = max(servoPosition - 1, 0);
}
if ((servoPosition == 180 || servoPosition == 0) && puedeMostrarMensaje) {
servoPosition == 180 ? MensajeInferior() : MensajeSuperior();
puedeMostrarMensaje = false;
}
if (servoPosition > 0 && servoPosition < 180) {
puedeMostrarMensaje = true;
digitalWrite(pinLedInf, 0);
digitalWrite(pinLedSup, 0);
}
servo_1.write(servoPosition);
delay(10);
}
/*
1.- Identificar las conexiones de los pines.
2.- Crear una variable que controle el estado del servo, considerando sus limites
3,. Realizar la lectura de los botones
4.- Con los botones, modificar la variable del estado del servo, acorde a las especificaciones
5.- Implementar lógica para que el mensaje se imprima una sola vez.
6.- Con la misma lógica del mensaje una sola vez, encedner los leds.
*/