//https://blog.wjcomponentes.com.br/2022/04/08/contador-com-botao-no-arduino-uno/
#include <Preferences.h>
Preferences pref;
///Definições -----------------------------------------------------------------------------------------
#define btn1 0 // Define pino do botão 1
#define btn2 18 // Define pino do botão 2
#define btn3 17 // Define pino do botão 3
unsigned int mold;
//Variáveis Globais ----------------------------------------------------------------------------------
//int mold = 0; // Variável de Controle
//Setup ----------------------------------------------------------------------------------------------
void setup() {
Serial.begin(9600); // Inicializa a serial com 9600
pref.begin("contador", false);
mold = pref.getUInt("contador", 0);
pinMode(btn1, INPUT_PULLUP); // Configura o pino como INPUT PULL-UP
pinMode(btn2, INPUT_PULLUP); // Configura o pino como INPUT PULL-UP
pinMode(btn3, INPUT_PULLUP); // Configura o pino como INPUT PULL-UP
}
//Loop -----------------------------------------------------------------------------------------------
void loop() {
if (!digitalRead(btn1)) { // Verifica se o botão 1 foi pressionado
mold++; // Caso tenha incrementa +1 a cont
while (!digitalRead(btn1)) {
delay(10); // Loop até que o botão 1 seja solto
}
// Armazene o contador nas Preferências
pref.putUInt("contador", mold);
Serial.print(F("Contador: ")); // Imprime a quantidade de cont na Serial
Serial.println(mold);
}
else if (!digitalRead(btn2)) { // Verifica se o botão 2 foi pressionado
mold--; // Caso tenha decrementa -1 a cont
while (!digitalRead(btn2)) {
delay(10); // Loop até que o botão 2 seja solto
}
pref.putUInt("contador", mold);
Serial.print(F("Contador: " )); // Imprime a quantidade de cont na Serial
Serial.println(mold);
}
else if (!digitalRead(btn3)) { // Verifica se o botão 3 foi pressionado
while (!digitalRead(btn3)) {
mold = 0; // Loop até que o botão 3 seja solto
pref.putUInt("contador", mold);
}
Serial.println(F("Contador Reiniciado!")); // Imprime que o contador foi reiniciado
}
}