02-06-2019, 23:42
Na początek napisz program tylko do karty i czy coś drukować czy nie uzależnij na początku od tego czy w ogóle odczytałeś jakiekolwiek wartości, dopiero w kolejnym kroku decyduj czy wartość odczytana jest prawidłowa czy nie.
Możesz też użyć millis() i wydruki robić nie częściej niż co 1s.
By nie odczytywać kart wtedy gdy nikt jej nie użył możesz użyć przykładu z biblioteki MFRC z IRQ, "minimalInterrupt". W tym przykładzie odczyt czytnik przywołuje przerwaniem uC po wykryciu karty.
Oczywiście odczyt karty nie ma sensu gdy drzwi są otwarte.
Do wszystkiego powinieneś jeszcze nauczyć się obsługiwać upływ czas z millis().
Teraz w programie masz tak, że natychmiast po wykryciu stanu, że odległość jest mniejsza niż 4 i drzwi są otwarte drzwi zostaną zamknięte. Powinieneś zablokować możliwość zamknięcia drzwi na np. 10s po otwarciu kartą. Być może otwarcie kartą działa, tyle że po otwarciu natychmiast są zamykane.
Możesz też użyć millis() i wydruki robić nie częściej niż co 1s.
By nie odczytywać kart wtedy gdy nikt jej nie użył możesz użyć przykładu z biblioteki MFRC z IRQ, "minimalInterrupt". W tym przykładzie odczyt czytnik przywołuje przerwaniem uC po wykryciu karty.
Oczywiście odczyt karty nie ma sensu gdy drzwi są otwarte.
Do wszystkiego powinieneś jeszcze nauczyć się obsługiwać upływ czas z millis().
Teraz w programie masz tak, że natychmiast po wykryciu stanu, że odległość jest mniejsza niż 4 i drzwi są otwarte drzwi zostaną zamknięte. Powinieneś zablokować możliwość zamknięcia drzwi na np. 10s po otwarciu kartą. Być może otwarcie kartą działa, tyle że po otwarciu natychmiast są zamykane.
Miło być decenianym https://buycoffee.to/kaczakat