Skocz do zawartości
Komentator

Kurs Arduino II - #4 - przerwania, kontaktron, czujnik PIR

Pomocna odpowiedź

html_mig_img
Pisząc rozbudowane programy łatwo doprowadzić do sytuacji, w której układ nie reaguje od razu np. na wciśnięcie przycisku. Wtedy najlepiej użyć przerwań, które zostały opisane w tym artykule tak, aby każdy zrozumiał ideę ich stosowania.Najpierw jednak kilka słów o sensorach znanych z alarmów: kontaktronach oraz czujnikach ruchu.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Po przerwie wakacyjne wraca kurs Arduino – poziom II. Muszę przyznać, że ten odcinek był dla mnie najtrudniejszy (a pewnie tego nie widać). Nie przesadzę, jeśli powiem, że napisałem ten artykuł ~3 razy. Jeszcze nigdy tyle tekstu nie było pisane i usuwane, co tym razem 🙂 A ciągle mam ochotę jeszcze coś zmieniać...

Wytłumaczenie przerwań było nie lada wyzwaniem, szczególnie, że chciałem pokazać całą ideę tego mechanizmu. Mam nadzieję, że udało mi się ostatecznie przygotować artykuł, który wykracza poza standardowe poradniki Arduino o przerwaniach, które tylko tłumaczą składnie poleceń. Mam nadzieję, że początkujący programiści znajdą w artykule coś dla siebie, a bardziej doświadczone osoby wybaczą pominięcie niektórych kwestii, które teraz musiałem przemilczeć, aby całość miała sensowną długość.

Udostępnij ten post


Link to post
Share on other sites

Może kolejny temat to wielowątkowość ?? Często wystepują o to pytania np przy sterowaniu silnikiem za pomocą polota od tv

Udostępnij ten post


Link to post
Share on other sites

hashpl, mam to w planach, ale nie wiem, czy w tym kursie. Może napiszę osobny artykuł, który będzie traktował tylko o tym.

Udostępnij ten post


Link to post
Share on other sites

ok ok. Połączenie Arduino - silnik, Joystick + nrf24l01 też fajnie by było to dokładnie wyjaśnić. Wiem że wiele razy był już ten wątek poruszany ale jakby tak wszystko było w jednym miejscu - fajna sprawa

Udostępnij ten post


Link to post
Share on other sites

hashpl, nie wiem czy będę zagłębiał się w tak konkretne zastosowania. Prędzej skupię się na uniwersalnym podejściu do "wielowątkowości" 🙂

Udostępnij ten post


Link to post
Share on other sites

No nareszcie doczekałem się tego na czym najbardziej mi zależało.

Dzięki za już i proszę o więcej.

Udostępnij ten post


Link to post
Share on other sites

Cześć,
W jaki sposób mogę wyeliminować drgania styków ( bez używania delaya ) korzystając z przerwania sprawdzającego stan microswitcha?

Tryb domyślny to jest L czy H ?

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites

stspodl, powodzenia podczas realizacji kursu 🙂

RybaSG, dobra i bezpieczna eliminacja drgań styków bez zatrzymywania programu jest trudnym zadaniem. Na ten moment najlepiej byłoby zrobić to filtrem RC (czyli dodając kondensator i rezystor). Mam jednak w planach artykuł, gdzie zajmę się tym od strony programistycznej.

Tryb domyślny to jest L czy H ?

Nie bardzo rozumiem pytania, mógłbyś podać jakiś przykład?

Udostępnij ten post


Link to post
Share on other sites

W kursie opisane jest, że zajmiemy się trybem domyślnym natomiast na swoim czujniku mam zworkę z możliwością ustawienia L lub H i zastanawiam się, który z nich, to tryb domyślny 🙂

EDIT : Dzięki wielkie, filtr RC zadziałał 🙂

Udostępnij ten post


Link to post
Share on other sites

RybaSG, a widzisz, u mnie nie było zworki wlutowanej - więc sprawa była łatwiejsza. Tryb domyślny w moim wypadku, to tryb retriggering, czyli zworka w pozycji H.

Udostępnij ten post


Link to post
Share on other sites

Wytłumaczenie przerwań było nie lada wyzwaniem, szczególnie, że chciałem pokazać całą ideę tego mechanizmu. Mam nadzieję, że udało mi się ostatecznie przygotować artykuł, który wykracza poza standardowe poradniki Arduino o przerwaniach, które tylko tłumaczą składnie poleceń. Mam nadzieję, że początkujący programiści znajdą w artykule coś dla siebie, a bardziej doświadczone osoby wybaczą pominięcie niektórych kwestii, które teraz musiałem przemilczeć, aby całość miała sensowną długość.

... 🙂 Gdym ja miał opisać naturę przerwań w oparciu o analogie, to przyjrzałbym się zasadom jakim muszą się podporządkować służby ratownicze 🙂 Gotowanie zupy to smaczna analogia, ale trochę płytka dla oddania idei stosowania przerwań 😉

Artykuł super i widać w nim chęć przybliżenia zagadnienia w sposób możliwie jak najprostszy 🙂

Udostępnij ten post


Link to post
Share on other sites

nse, służby ratownicze też mogą sobie spokojnie na przerwie jeść zupę, a w momencie wezwania (alarmu) rzucają wszystko i jadą w akcje 😉

Udostępnij ten post


Link to post
Share on other sites

Cytat z artykułu:

Podczas pracy w trybie, non-retriggering, na wyjściu otrzymamy stan wysoki tylko raz, później wyjście czujnika przejdzie w stan niski – niezależnie od wykrywania kolejnych ruchów w trakcie.

Jak dokładnie działa czujnik w rym trybie? Na wyjściu dostaniemy stan wysoki (o czasie trwania ustawionym Tx?), potem stan niski, a potem co? Jest jakiś czas "restartu" i wszystko zadziała od początku?

Udostępnij ten post


Link to post
Share on other sites
nse, służby ratownicze też mogą sobie spokojnie na przerwie jeść zupę, a w momencie wezwania (alarmu) rzucają wszystko i jadą w akcje 😉

... oczywiście że mogą, pod warunkiem że ta zupa nie spowoduje przedłużenia czasu reakcji na alarm 😉

Artykuł bardzo fajny i widać że ktoś myślący go pisał, chciałem jedynie nieco poszerzyć horyzont rozumienia przerwań, oczywiście można się też z przerwaniami odwołać do naszych odruchów, przykładowo reakcja powieki oka ... gdzie reakcja nie jest podporządkowana żadnym analizom a działa na zasadzie tablicy akcja -> reakcja 🙂

Pozdrawiam serdecznie

Ps. Pozostanie do opisania natura stosu 😉

Udostępnij ten post


Link to post
Share on other sites

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ę »

×