Wpis z mikrobloga

via Wykop Mobilny (Android)
  • 0
Hej Arduinowe świry!

Mam płytkę Wemos D1 (nie mini) i próbuję do niej podłączyć najzwyklejszy czujnik ruchu PIR HC-SR501.

Wszystko elegancko podłączyłem i mogę odczytać zmieniający się stan na pinie w funkcji loop. Chciałem pójść krok dalej i użyć przerwań, aby być notyfikowanym o zmianie stanu, a nie naparzać w pętli readDigital ( ͡° ͜ʖ ͡°).

Googlałem trochę i niestety nie mogę skumać gdzie mam błąd. Poniżej link do pastebin:

https://pastebin.com/HLNNYLt8

Problem jest tego typu, że jedyne co loguje mi się do serial monitora to "changed - easy mode". "changed - hard mode" nigdy nie występuje i nie wiem czemu, pewnie zapomniałem o jakiejś głupocie :D.

Byłbym wdzięczny gdyby ktoś mógł zerknąć, dzięki!

#arduino #programowanie #wemosd1
  • 2
  • Odpowiedz
@zbicin: zrób sobie interrupt na falling albo rising zależy które zbocze oznacza ruch. Jak już koniecznie chcesz widzieć oba stany to zapisuj stan pina w przerwaniu tylko na rejestrach bo digitalRead() jest mega wolne a jak siedzisz za długo w przerwaniach to zaczynają się dziać niestworzone rzeczy.
Tak jak masz teraz stan pinu od przerwania może się zmienić i kilka razy (poczytaj o drganiu styków).
EDIT: i oczywiście dodaj pullup/pulldown resistor
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@keton22: no właśnie problem jest tego typu że ani RISING ani FALLING też mi nie działało.

Niemniej jednak, dzięki za odpowiedź, doczytam też o tych rezystorach bo faktycznie nie mam :)
  • Odpowiedz