//Definindo Variáveis e incluindo bibliotecas:
#include <Wire.h> //para compatibilizar com conexões I2C
#include <LiquidCrystal_I2C.h> //Biblioteca para uso do display
LiquidCrystal_I2C lcd(0x27, 16, 2); //iniciando o objeto lcd (endereço 0x27)
//int j; //variável para contar o número de apertos de botão
//bool apertou; //verifica os apertos no botao
//#define LedVermelho 12
//#define LedAzul 10
#define Botao 2
//#define Potenciometro A2
void setup() {
Serial.begin(115200);
//Serial.println("Olá, ESP32!");
//pinMode(LedVermelho, OUTPUT);
//pinMode(LedAzul, OUTPUT);
pinMode(Botao, INPUT_PULLUP);
//pinMode(Potenciometro, INPUT);
//Agora, ajustamos o LCD:
lcd.init(); //inicia a comunicação com o display
lcd.backlight(); //liga o backlight
//lcd.setCursor(2, 0); //Posicão inicial de escrita será a 2a coluna linha 0
lcd.clear(); //limpa o display
//lcd.print("Bem vindo!!!"); //Mensagem de boas vindas!
//delay(1000); //Mantém a mensagem ativa por 1s
//lcd.clear(); //Limpa o display
lcd.setCursor(0, 0); //E ajusta a posição descrita para a coluna 0 e a linha 0
}
//Loop profissional
void loop() {
//Declarando as variáveis locais
//static int i; //variável para contar o número de ciclos
//static unsigned long ti = 0; //variável para contar o tempo
static unsigned long repique = 0;
//static bool estado; //especifica o estado do LED
static bool apertou = digitalRead(Botao);
int j;
//float percpot = map(analogRead(Potenciometro), 0, 4095, 1, 100);
/*if ((millis() - ti) > 3000 / percpot) //caso tenha se passado 300ms, muda o estado do LED
{
//digitalWrite(LedVermelho, estado);
//digitalWrite(LedAzul, !estado);
estado ^= HIGH;
ti = millis(); //e ajusta ti para recomeçar uma nova contagem!
if (!estado) i++;
}*/
//Leitura do botão usando detector de borda:
if (apertou && !digitalRead(Botao) && ((millis() - repique) > 300))
{
j++;
repique = millis();
}
//lcd.setCursor(0, 0);
//lcd.print("Ciclos: " + String(i));
lcd.setCursor(0, 1);
lcd.print("Apertos: " + String(j) + " " ); //+ //String(percpot, 0) + "% ");
}