//https://blog.wjcomponentes.com.br/2022/04/08/contador-com-botao-no-arduino-uno/
///Definições -----------------------------------------------------------------------------------------
#define btn1 19 // Define pino do botão 1
//Variáveis Globais ----------------------------------------------------------------------------------
int cont = 0; // Variável de Controle
unsigned long t_start;
unsigned long t_stop; //
unsigned long t_pause; // Tempo de parada em millis
unsigned long u_parada; // Tempo da ultima parada em segundos
unsigned long t_parada; // Tempo total de parada em segundos
unsigned long t_geral_pda_min; // Tempo geral da máquina parada em minutos
void setup() {
Serial.begin(9600); // Inicializa a serial com 9600
pinMode(btn1, INPUT_PULLUP); // Configura o pino como INPUT PULL-UP
}
void loop() {
if (digitalRead(btn1) == LOW) {
t_start = millis();
}
if (digitalRead(btn1) == HIGH) {
t_stop = millis();
t_pause = (t_stop - t_start);
Serial.print("tempo de pausa: ");
Serial.println(t_pause / 1000);//Tempo entre o nivel alto e baixo
u_parada = t_pause / 1000;
Serial.print("ultima parada: ");
Serial.println(u_parada);
}
if (u_parada > 10) {
t_parada = u_parada;
t_geral_pda_min = t_geral_pda_min + t_parada;
Serial.print("total parada: ");
Serial.println(t_geral_pda_min / 1000);
}
}
/*unsigned char flagHIGH = 0;
unsigned long temp1;
unsigned long temp2;
unsigned long tempHL;
int norte = 13;
void setup() {
Serial.begin(9600);
pinMode(norte, INPUT);
}
void loop()
{
if (digitalRead(norte) == HIGH && flagHIGH == 0) {
temp1 = millis();
flagHIGH = 1;
}
if (digitalRead(norte) == LOW && flagHIGH == 1) {
temp2 = millis();
tempHL = (temp2 - temp1);
flagHIGH = 0;
Serial.println(tempHL);//Tempo entre o nivel alto e baixo
}
}
*/