Skocz do zawartości
christun

Różne czasy działania - HeartBeat2

Pomocna odpowiedź

Witam

Chcę zrobić układ, który załącza wyjścia na czas i w odstępach określonych w tablicy, wykorzystałem do tego skrypt HeartBeat2 by Paul Badger.

część kodu

#define elemtab2 6
long heartBeatArray2[elemtab2] = {200, 2000, 20, 2000, 1500, 2000  };

int hbeatIndex = 0;
int hbeatIndex2 = 0;
long prevMillis, prevMillis2;



void loop()                    
{  

  if(digitalRead(In1) == LOW){
    if ( (millis() - prevMillis2) > (heartBeatArray2[hbeatIndex2]) ){
        hbeatIndex2++;  // przeniesc do pkt AD
        if ( hbeatIndex2 > elemtab2 - 1 ) hbeatIndex2 = 0;
  
        if ( (hbeatIndex2 % 2) == 0 ){
            digitalWrite(Out2, HIGH);
        }
        // pkt AD
        else{
            digitalWrite(Out2, LOW);
        }
        prevMillis2 = millis();
    }
  }else{
    digitalWrite(Out2, LOW);
  }

}

Problem z jakim nie potrafię sobie poradzić, po uruchomieniu wejścia In1, cykl zaczyna się od drugiej wartości z tablicy, czyli uruchomienie wyjścia Out2 na 20ms, odczekanie 2000ms, itd (zgodnie z danymi w tablicy. Patrzę na to już prawie tydzień i jakoś rozwiązanie nie przychodzi ...

Proszę o pomoc

Udostępnij ten post


Link to post
Share on other sites

@christun, witam na forum 😉 Widzę, że to Twoje pierwsze kroki na Forbocie, oto najważniejsze informacje na start:

  • Chcesz przywitać się z innymi członkami naszej społeczności? Skorzystaj z tematu powitania użytkowników.
  • Opis najciekawszych funkcji, które ułatwiają korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzieć?
  • Poszczególne posty możesz oceniać (pozytywnie i negatywnie) za pomocą reakcji - ikona serca w prawym dolnym rogu każdej wiadomości.

9 godzin temu, christun napisał:

Problem z jakim nie potrafię sobie poradzić, po uruchomieniu wejścia In1, cykl zaczyna się od drugiej wartości z tablicy, czyli uruchomienie wyjścia Out2 na 20ms, odczekanie 2000ms, itd (zgodnie z danymi w tablicy. Patrzę na to już prawie tydzień i jakoś rozwiązanie nie przychodzi ...

Jeśli to jest tylko fragment kodu, to pokaż dla pewności całość. Często w takich przypadkach błędy znajdują się w zupełnie innych miejscach. Jak pokażesz całość to łatwiej będzie pomóc.

Udostępnij ten post


Link to post
Share on other sites

przywitałem się zgodnie z zasadą, przepraszam za moje zachowanie :), kod w zasadzie jest cały, to czego nie pokazałem nie ma wpływu na mój problem ...

Udostępnij ten post


Link to post
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »

×