//static int j; // VAR GLOBAL!
void setup() {
Serial.begin(115200);
pinMode(3, INPUT_PULLUP);
pinMode(2, OUTPUT);
pinMode(7, OUTPUT);
}
//loop beta
/*
void loop() {
static int i, j;
bool apertou;
delay(400);
digitalWrite(7, HIGH);
digitalWrite(2,LOW);
delay(200);
digitalWrite(7, LOW);
digitalWrite(2,HIGH);
i++;
apertou = digitalRead(3);
if(!apertou) j++;
Serial.print("Número de ciclos: ");
Serial.println(i);
Serial.print("Número de apertos: ");
Serial.println(j);
}
*/
//loop pro
void loop() {
static int i;
static long j; // TROQUEI PELO INT PQ DAVA VALORES NEGATIVOS
static long ti = 0; // var para contar o tempo ( static = o valor da var é guardado)
long tf = millis(); // var p contar o tempo
static bool estado;
static unsigned long apertou;
apertou = pulseIn(3, LOW);
if (apertou > 300) j++; // (apertou == LOW) = (!apertou) = (apertou == false) = (apertou == 0)
if ((tf - ti) >= 500) { // caso tenha se passado 300ms, muda o estado do LED
digitalWrite(7, estado);
digitalWrite(2, !estado);
estado = !estado;
ti = millis(); //ajusta ti para recomeçar uma nova contagem
i++;
Serial.print("Número de ciclos: ");
Serial.println(i);
Serial.print("Número de apertos: ");
Serial.println(j);
}
// attachInterrupt(digitalPinToInterrupt(3), Acao_Botao, FALLING);
}
/* void Acao_Botao() {
static unsigned long repique = millis();
if ((millis - repique) > 100) {
repique = millis();
j++;
}
}
*/