delay to zło w czystej postaci poniżej masz kod z założeniami jakie podałeś w terminalu masz 3 liczby
czas oczekiwania na 3 naciśnięcia / ilość naciśnięć / czas pracy przekaźnika po załączeniu
program działa liniowo bez pętli i delay więc nie będzie wpływał na inne funkcje programu
posprzątałem lekko w kodzie
czas oczekiwania na 3 naciśnięcia / ilość naciśnięć / czas pracy przekaźnika po załączeniu
program działa liniowo bez pętli i delay więc nie będzie wpływał na inne funkcje programu
Kod:
long cm;
long pm,pm_1;
long licznik;
byte start;
int stat,start_1;
byte czas_oczekiwania = 5;
void setup() {
Serial.begin(9600);
pinMode(5, INPUT_PULLUP);
}
void loop() {
cm = millis()/1000;
if ( digitalRead(5) == HIGH )stat = 0;
if ( digitalRead(5) == LOW and stat == 0 )
{start ++;stat = 1;pm = cm;}
if ( start > 0 ){
if ((cm - pm) == 1){licznik ++;pm = cm;}}
if ( licznik > czas_oczekiwania and digitalRead(13) == 0 )
{licznik = 0;start = 0;}
if ( start >= 3 )
{digitalWrite(13,HIGH);}
if ( digitalRead(13) == HIGH ){
licznik = 0;start = 0;
if ((cm - pm_1) > 0){start_1 ++;pm_1 = cm;}
if ( start_1 > 30 ){digitalWrite(13,LOW);start_1 = 0;}}
Serial.print(licznik);
Serial.print(" / ");
Serial.print(start);
Serial.print(" / ");
Serial.println(start_1);
}
posprzątałem lekko w kodzie
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji