Skocz do zawartości

Migacz na bazie Arduino Uno


Arek-

Pomocna odpowiedź

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
Link do komentarza
Share on other sites

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?

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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

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.