//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) + "%  ");
}