#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); //direccion del display
int DUTY;
int an = 4; //pin de entrada potenciometro
int e;
int frec = 500;//frecuencia de senal pwm
int can = 0;//canal usado
int res = 9;//resolucion de senal de salida
int pin = 23; //pin de salida pwm
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
lcd.clear();
analogReadResolution(9);//resolucion de lectura de potenciometro
ledcSetup(can, frec, res);//configuramos parametros de senal pwm
ledcAttachPin(pin, can);//declaramos pin pwm como salida
}
void loop() {
// put your main code here, to run repeatedly:
lcd.setCursor(3, 0); // ubica cursor en columna 0, linea 0
lcd.print("***PWM*** ");
lcd.setCursor(0, 1); // ubica cursor en columna 0, linea 1
lcd.print("DUTY:" + (String)e + "%");
DUTY = analogRead(an); //0 - 511 guarda en duty un valor de 9bits
ledcWrite(can, DUTY); // escribo en pin 23 el contenido de DUTY
e = (100 * DUTY) / 511; //DUTY EN PORCENTAJE
if (e <= 9)
{
lcd.setCursor(7, 1); // ubica cursor en columna 7, linea 1
lcd.print(" ");
}
if (e <= 99)
{
lcd.setCursor(8, 1); // ubica cursor en columna 8, linea 1
lcd.print(" ");
}
}