Arduino Polska Forum
MFRC522 - czy karta aktywana? - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino)
+--- Wątek: MFRC522 - czy karta aktywana? (/watek-mfrc522-czy-karta-aktywana)



MFRC522 - czy karta aktywana? - Wowas - 15-03-2018

Czy w bibliotece MFRC522 jest jakaś funkcja sprawdzająca czy na czytniku jest jakaś karta aktywna? Albo funkcja, która wymusza sprawdzanie karty/breloka  np. co 5 sekund?


RE: MFRC522 - czy karta aktywana? - kaczakat - 16-03-2018

Bibliotek jest wiele, co do zasady SPI działa od Arduino do czytnika, ale czytnik ma pin IRQ, który powinien generować przerwanie w Arduino wywołujące obsługę czytnika. Sprawdzanie co 5s czy jest jakiś klawisz wciśnięty, karta przyłożona jest trochę nie teges. Taki sposób działania nazywa się pooling, z tym że to robi się tak ze 100-mln razy na sekundę, by nie przegapić momentu gdy ktoś machnie kartą przed czytnikiem. A to zajmuje niepotrzebnie czas procesora. Przerwanie jest lepsze, bo funkcja do obsługi karty zostanie wywołana dokładnie wtedy gdy będzie potrzebna.
Tu przykład z przerwaniem:
https://github.com/miguelbalboa/rfid/blob/master/examples/MinimalInterrupt/MinimalInterrupt.ino , a wokół niego cała biblioteka. Karta zgłasza odczyt, arduino odpala komunikację i działają razem z tym dalej.
Niestety w Arduino UNO/NANO/PRO są tylko dwa piny do przerwania zewnętrznego (2 i 3), także najczęściej trzeba stosować pooling, nie starczy dla RTC IRQ, czytnika IRQ, enkodera z przyciskiem.