const int buttonStartPin = 2; // Pinul butonului de start
const int buttonStopPin = 3; // Pinul butonului de oprire
const int ledPin = 13; // Pinul LED-ului
unsigned long startTime = 0; // Momentul de start al numărătorii
bool counting = false; // Starea numărătorii
unsigned long countDuration = 0; // Durata numărătorii
unsigned long stopTime = 0; // Momentul de oprire al numărătorii
void setup() {
pinMode(buttonStartPin, INPUT);
pinMode(buttonStopPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Verifică dacă butonul de start a fost apăsat
if (digitalRead(buttonStartPin) == HIGH && !counting) {
startCounting();
}
// Verifică dacă butonul de stop a fost apăsat
if (digitalRead(buttonStopPin) == HIGH && counting) {
stopCounting();
}
// Actualizează numărătoarea dacă este în desfășurare
if (counting) {
updateCount();
}
}
void startCounting() {
startTime = millis();
counting = true;
Serial.println("Numărătoarea a început!");
}
void stopCounting() {
stopTime = millis();
countDuration = stopTime - startTime;
counting = false;
digitalWrite(ledPin, HIGH); // Aprinde LED-ul
Serial.print("Numărătoarea s-a oprit. Durata: ");
Serial.print(countDuration / 1000); // Afișează durata în secunde
Serial.println(" secunde");
delay(countDuration); // Așteaptă durata numărătorii
digitalWrite(ledPin, LOW); // Stinge LED-ul
}
void updateCount() {
// Aici puteți adăuga orice acțiuni suplimentare pe care doriți să le efectuați în timpul numărătorii
}