#include <ESP32Servo.h>
#include <LiquidCrystal.h>
// Configuración de la pantalla LCD
LiquidCrystal lcd(22,23,5,18,19,21);
/*
RS: Pin de selección del registro. Conéctalo al pin 22 del ESP32.
E: Pin de habilitación. Conéctalo al pin 23 del ESP32.
D4: Pin de datos 4. Conéctalo al pin 5 del ESP32.
D5: Pin de datos 5. Conéctalo al pin 18 del ESP32.
D6: Pin de datos 6. Conéctalo al pin 19 del ESP32.
D7: Pin de datos 7. Conéctalo al pin 21 del ESP32.
*/
Servo miServo;
#define servoPin 12 //Pin al que conectamos el cable naranja del servo.
#define potPin 14 //Pin al que conectamos la patilla central del potenciómetro.
#define btn 27
#define led 2
int I;
void setup() {
lcd.begin(16, 2);
miServo.attach(servoPin);
Serial.begin(115200);
//
pinMode(potPin,INPUT);
pinMode(btn,INPUT);
pinMode(led,OUTPUT);
}
void loop() {
if (digitalRead(btn) == HIGH) {
lcd.setCursor(0, 0);
//Escribimos la palabra Programador
lcd.print(" EJECUTANDO ");
lcd.setCursor(0, 1);
//Escribimos la palabra Programador
lcd.print(" SECUENCIA ");
digitalWrite(led, HIGH);
miServo.write(0);
delay(3000);
miServo.write(90);
delay(1000);
miServo.write(180);
delay(1000);
miServo.write(0);
delay(1000);
miServo.write(30);
delay(1000);
miServo.write(60);
delay(1000);
miServo.write(90);
delay(1000);
miServo.write(120);
delay(1000);
miServo.write(150);
delay(1000);
miServo.write(180);
delay(1000);
}
else {
digitalWrite(led, LOW);
int valorPot = analogRead(potPin); //Lectura del conversor A/D en bits.
int valorServo = map(valorPot, 0, 4095, 0, 180); //Mapeado de valores: [0..4095 ] -> [0..180]
float vpot = map(valorPot, 0, 4095, 0, 5);
miServo.write(valorServo);
Serial.print(valorServo);
Serial.print(",");
Serial.println(valorPot);
lcd.setCursor(0, 0);
lcd.print("voltaje : ");
lcd.print(vpot);
lcd.print(" v");
lcd.setCursor(0, 0);
//Escribimos la palabra Programador
lcd.setCursor(0, 1);
lcd.print("GRADOS : ");
lcd.print(valorServo);
}
}