#include <LiquidCrystal_I2C.h>
const int potPin = 14; // Pin del potenciómetro
const int servoPin = 4; // Pin para el servo (PWM) de 16 bits
const int lcdAddress = 0x27; // Dirección I2C del LCD
const int lcdColumns = 16; // Número de columnas en tu LCD
const int lcdRows = 2; // Número de filas en tu LCD
const int Canal = 0; // Canal
const int frecuencia = 50; // Frecuencia PWM
const int resolucion = 10; // resolucion PWM
int servoPos; // Posición del servo
LiquidCrystal_I2C lcd(lcdAddress, lcdColumns, lcdRows);
void setup() { // acomodar, condicionar, bariables
lcd.init(); //prender lcd
lcd.backlight(); // prender luz trasera de lcd
pinMode(servoPin, OUTPUT); // pin desalida servo
ledcAttachPin(servoPin, Canal); // guardar la informacion en el canal
ledcSetup(Canal, frecuencia, resolucion); //se programa la lcd
ledcWrite(0,12); //
}
void loop() {
int potValue = analogRead(potPin); // Lee el valor del potenciómetro
servoPos = map(potValue, 0, 4095, 0, 180); // Mapea el valor del potenciómetro a la posición del servo
// Controla el servo utilizando PWM
int dutyCycle = map(servoPos, 0, 180, 25, 125); // Ajusta estos valores según las especificaciones de tu servo
ledcWrite(Canal, dutyCycle); // almacenamiento de datos
// Muestra la posición del servo en el LCD
lcd.setCursor(0, 0); // acomodar en la primer linia
lcd.print("Grado inclinado: "); // texto
lcd.setCursor(0, 1); // acomodo abajo
lcd.println(servoPos); //escibe el grado de inclinacion
delay(100); // Puedes ajustar este valor según tus necesidades
}