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

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!

Gość
Napisz odpowiedź...

×   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...