#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
const int pinPot = 32; //Indicamos el ADC para el Potenciometro
const int pinServo = 13; //Salida al servo
const int f = 50; // frecuencia del servo en Hz
const int r = 8; // resolución 8 bits
int cicloServo = 0;
const int cServo = 0; //declaramos la variable
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
pinMode(pinServo, OUTPUT);
lcd.init(); //LCD
lcd.backlight();//LCD
ledcSetup(cServo, f, r);
ledcAttachPin(pinServo, cServo); //Anclar el canal del servo
}
void loop() {
int valorPot = analogRead(pinPot); // Indicamos que el micro lea la entrada analógica del pin 32
float positionServo = valorPot * 0.04395604395; // multiplicamos el valor que entrega el potenciometro por 0.04395604395
cicloServo = map(valorPot, 0, 4096, 1, 37);
ledcWrite(cServo, cicloServo);
lcd.setCursor(0, 0); // Colocamos el cursor en la primera linea
lcd.print("Grado Servo"); // Escribimos Grado Servo para saber que nos indica el grado
lcd.setCursor(0, 1); // Colocamos el cursor en la segunda línea
lcd.println(positionServo,2); //Indicamos que escriba el grado al que está el servo
delay(100); // tasa de escritura
}