Skocz do zawartości

Zatrzymanie programu przyciskiem GPIO


Skroll

Pomocna odpowiedź

Witam,

moje raspberry obsługuje czytnik RFID mniej więcej tak jak jest to niżej przedstawione. Problem w tym że podczas odczytu program czeka na karte i dopóki jej nie dostanie doputy nie ruszy dalej. 
Czy jest jakaś opcja żeby dać taki błąd w except (nie dokońca rozumiem to except szczerze mówiąc więc jeśli się myle poprawcie mnie) żeby się wyłączał w momencie wciśnięcia przycisku podpiętego pod GPIO? Z klawiatury to działa ale z klawiatury mnie nie urządza 😕

try:
    id, text = reader.read()
    print("ID: %s\nText: %s" % (id,text))

except KeyboardInterrupt:
	GPIO.cleanup()
    break

 

Link do komentarza
Share on other sites

Fakt, trochę nie rozumiesz... bo cały pic polega na tym, że masz przerwać funkcję reader.read() (która jest poza twoją kontrolą) i nic tu nie pomoże poza jakimiś zabawami z forkiem, sygnałami i ogólną linuksową zabawą w IPC...

Na szczęście autor biblioteki to przewidział, i oprócz funkcji read() jest jeszcze read_no_block(), czyli taki teoretyczny fragment kodu mógłby wyglądać tak:
 

id, text = reader.read_no_block()
while not id:
	if przycisk_wcisniety():
		break
	id, text = reader.read_no_block()

Możesz jakiegoś sleepa wsadzić do pętli, żeby malinka bez potrzeby nie ogrzewała pokoju. A funkcję przycisk_wcisniety() powinieneś umieć napisać sam...

 

  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.