Ciao a tutti da qualche giorno sto sviluppando questo software.
Sto realizzando un countdown con la funzione millis.
Tutto funziona tranne qualche particolare.
Quando avvio arduino il timer parte da solo, e vorrei aggiungere la funzione reset.
Per ora ho aggiunto solo la funzione pausa.
CODICE ARDUINO
#include <Arduino.h>
#include <TM1637Display.h>
//display 7 segmenti
#define CLK 2
#define DIO 3
//led -- SHOT CLOCK
const int ledPin = 12;
int ledState = LOW;
//button Pausa
const int buttonPin = 7;
int buttonPushCounter = 0;
int buttonState = 0;
int lastButtonState = 0;
//button Reset
const int reset_buttonPin = 8;
int reset_buttonState = 0;
//temporizzatore
unsigned long previousMillis = 0;
const long interval = 1000;
//variabile tempo
int k = 60;
TM1637Display display(CLK, DIO);
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(reset_buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
reset_buttonState = digitalRead(reset_buttonPin);
unsigned long currentMillis = millis();
if (buttonState != lastButtonState){
if(buttonState == HIGH){
buttonPushCounter++;
}
delay(50);
}
lastButtonState = buttonState;
if (buttonPushCounter % 2 != 0){
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
display.setBrightness(0x0f);
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
display.showNumberDec(k);
k--;
if(k<=0) k=60;
}
}
}