Skocz do zawartości

Migacz na bazie Arduino Uno


Pomocna odpowiedź

Napisano (edytowany)

Witam. Mam pewien problem. Nie zagłębiając się za bardzo w projekt, mam płytkę Arduino Uno z modułem NRF24L01(na pinach 9, 10, 11, 12, 13) oraz sterownik silników L298N(na pinach 2, 3, 4 ,5) i chciałbym wykonać funkcję migacza, w taki sposób by stany pinów np. 8 i 7 zmieniały się na przemienne używając funkcji millis by nie zatrzymywać całkiem uC. Przerabiałem kurs forbot i ogarnąłem mniej więcej funkcję millis(), ale nie wiem jak zrobić takie miganie na przemian, bo miganie dwóch diod z różną częstotliwością to znam, ale żeby migała raz jedna, a raz druga to nie mam pojęcia🤔.

Dziękuje za poświęcony czas i pozdrawiam.

P.S. tą funkcję będę chciał wykorzystać w funkcji warunkowej if, w "środku" progamu.

Edytowano przez Arek-
  • Lubię! 1

No to "nie zagłębiając się za bardzo w projekt" nie da się. Przecież chcesz wbudować coś istotnego, pracującego równolegle, do programu, który tego wcześniej w ogóle nie przewidywał. To jakbyś kończył budowę domu i nagle sobie przypomniał, że nie zrobiłeś piwnicy. Być może najmniej inwazyjnym rozwiązaniem będzie proces pracujący na przerwaniach, "odwracający" stan jakiejś flagi volatile w pamięci. Masz tam jakieś wolne timery?

Ogólnie to jest projekt pojazu rc i to działa tak, że pilot wysyła jakieś wartości do uno i to arduino w pojeździe wysyła sygnały do sterownika silników. I chcę żeby po załączeniu przełącznika w pilocie i przesłaniu jakiejś cyfry załączyła się funkcja migania. Wszystko dookoła mam tylko chcę, aby stany na dwóch wyjściach zmieniały wartość na przeciwne po określonym czasie, czyli np.  pin7- HIGH, pin8-LOW i pin7-LOW, pin-8-HIGH.

11 godzin temu, Arek- napisał:

Witam. Mam pewien problem. Nie zagłębiając się za bardzo w projekt, mam płytkę Arduino Uno z modułem NRF24L01(na pinach 9, 10, 11, 12, 13) oraz sterownik silników L298N(na pinach 2, 3, 4 ,5) i chciałbym wykonać funkcję migacza, w taki sposób by stany pinów np. 8 i 7 zmieniały się na przemienne używając funkcji millis by nie zatrzymywać całkiem uC. Przerabiałem kurs forbot i ogarnąłem mniej więcej funkcję millis(), ale nie wiem jak zrobić takie miganie na przemian, bo miganie dwóch diod z różną częstotliwością to znam, ale żeby migała raz jedna, a raz druga to nie mam pojęcia🤔.

Dziękuje za poświęcony czas i pozdrawiam.

P.S. tą funkcję będę chciał wykorzystać w funkcji warunkowej if, w "środku" progamu.

Mam podobny problem: Chce zmierzyć czas trwania  pewnego procesu  przy pomocy funkcji millis() i  znalazłem coś na ten temat. Teraz spróbuje zamieścić link. Dodam, że nie ma tam nic o flagach, przerwaniach  oraz możesz liczyć na  przykładowy  kod   nie zawierający zbędnych metafor i paraleli (ciiiiii!)😉

https://www.arduino.cc/en/Tutorial/BuiltInExamples/BlinkWithoutDelay

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ę »
×
×
  • Utwórz nowe...