#include <LiquidCrystal_I2C.h>
int lcdColuna = 16; // Colunas atribuidas com números
int lcdLinha = 2; //Linhas do display
int val = 0; // variável armazenar o valor lido
float soma = 0;
int porcentagem;
LiquidCrystal_I2C lcd(0x27, lcdColuna, lcdLinha); // atribui coluna e linha
void setup() {
Serial.begin(9600);
pinMode (2, OUTPUT); //configura o pino LED como saída
pinMode (18, INPUT); //configura o pino do botão de avanço/entrada
pinMode (19, INPUT); //configura o pino do botão de recuo/entrada
lcd.init(); //inicia o LCD
lcd.backlight(); // acende a luz de fundo do display LCD
}
void loop(){
Serial.println("PWM");
Serial.println(porcentagem);
Serial.println();
Serial.println();
Serial.println(soma);
lcd.setCursor (0, 0); //loca coluna e linha do LCD
lcd.print ("PWM:");
if (digitalRead (18) == HIGH){
soma = soma + 25.5;
if (soma >= 255) soma = 255;
val = soma;
}
if (digitalRead (19) == HIGH){
soma = soma - 25.5;
if (soma <= 0) soma = 0;
val = soma;
}
analogWrite (2, val); //aciona o LED com o valor
lcd.setCursor (8,0);
porcentagem = ((soma*100)/255);
if (porcentagem >= 100) lcd.setCursor (7,0); //notação de centena
if (porcentagem < 100){ //gambiarra para apagar centena
lcd.setCursor (7,0);
lcd.print (' ');
}
lcd.print (porcentagem); //porcentagem de PWM
lcd.setCursor (11,0);
lcd.print ('%');
lcd.setCursor (8,1);
lcd.print (val); //valor analógico de 0 a 255
//lcd.setCursor (0,1);
//lcd.print (soma); //a soma com notação decimal de 0 a 255
}