Skocz do zawartości

Różne czasy działania - HeartBeat2


christun

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

Link do komentarza
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.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.