Wpis z mikrobloga

potrzebuje rady bo trochę błądzę we mgle i może przekombinowywuje

potrzebuje sprawdzać PWM, w zależności od tego jaki jest poziom to steruje światłami. do tego odbieranie sygnału z 433Mhz. sprawdzanie PWM musi być bardzo szybkie, pominięcie którejś wartości jest bardzo złe. przez to że czasami trzeba jednak sprawdzić czy coś przychodzi na 433Mhz to muszę przez chwile nie sprawdzać PWM. jak rozwiązać taki problem? dodanie innych modułów itd wchodzi w gre

#elektronika #arduino #raspberrypi
  • 15
@mapache: masz dwie opcje, albo piszesz sobie interrupt działąjący na czasach i liczysz ile czasu minęło między przejściem góra/dół.

Albo wstawiasz capacitor i uśredniasz - ale wtedy tracisz na prędkości i responsywności.
@mathmed: to inaczej. mam auto RC. jest odbiornik RC, na jednym z kanałów jest gaz, wartości PWM. zależnie od jaki jest poziom to odpowiednio muszę zapalać lub gasić światła hamowania lub cofania

dodatkowo chcę sterować ogólnie światłami za pomocą 433mhz. z powodu tego jak działa tutaj PWM to musi to być dosłownie ciągle sprawdzania. chodzi o to że zejście raz poniżej pewnego progu to jest hamowanie, drugi raz cofanie. stąd pominięcie
@mathmed: do tego pory to robiłem na Arduino i na przemian sprawdzałem obie rzeczy. z tym że 433mhz rzadziej. miałem pomysł żeby użyć RPi Pico które ma dwa rdzenie i dam radę ogarniać obie rzeczy na raz. ale obsługa modułu 433Mhz jest słaba, a mi sie nie chce pisać biblioteki do tego. już pomijając to że muszę wszystko do 3.3V zmianiać
@mapache: Nie musisz żadnych dwóch wątków a tym bardziej dwóch rdzeni używać, to strzelanie z atomu do komara. Tak jak wcześniej ktoś napisał: od takich prostych rzeczy są po prostu liczniki i przerwania.

W tym wypadku potrzebujesz licznika który wygeneruje przerwanie na pierwszym zboczu. Zapamiętasz sobie czas i przestawisz reakcję licznika na przeciwne zbocze. To przeciwne wygeneruje przerwanie na drugim zboczu, gdzie ten drugi czas w stosunku do tego pierwszego zapamiętanego
@mapache: Jedno mi nie pasuje - rzeczy o których piszesz (zapalanie świateł, hamowanie itp), mają taką bezwładność czasową, że nie dzieją się w okresie istotnym dla działania nawet najwolniejszego mikrokontrolera. Tzn, strumień danych, nawet sprawdzanych rzadko jest i tak zbyt gęsty dla tych cech. To są dziesiątki jak nie setki milisekund.