když ve funkci sleduješ stav tlačítek a další - jsi hodně ovlivněn dalšími funkcemi, které zde nevidíme.
Více věcí, které ve funkci děláš bych dělal v hlavním programu LOOP - ale můj názor.
Ale psal jsi že to funguje, jen to přičítání po chvilce ne,
na což jsem ti napsal - čím to je (vynuluješ znovu čítač a časuješ od začátku) - i jak to vyřešit.
Kód: Vybrat vše
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == HIGH) {
// if the current state is HIGH then the button went from off to on:
buttonPushCounter++;
Serial.println("on");
Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter);
// zde se pridava cas
interval += 5000;
previousMillis = currentMillis;
digitalWrite(greenLED, LOW);
relayOn = true;
Serial.println(interval);
Serial.println(currentMillis);
Serial.println(previousMillis);
- po prvním stisku tlačítka a přičtení času nahodit proměnnou že časovač běží
- pokud časovač běží, už nedělat to "previousMillis = currentMillis;" ale jen interval += 5000;
- když časovač doběhne, vynulovat tu pomocnou proměnnou že časuješ
Ale já bych to celé psal jinak, což je věc názoru - pokud ti to funguje.
Já bych si to musel sestavit, nechci tu řešit dokola nějaké drobné niance co nejde,
a na to nemám čas, sorry.