Raspberry Pi

czwartek, 8 października 2015

Przycisk start/stop - czyli o prostych danych wejściowych

Teraz troszkę wstępu w temacie obsługi wejść.
Zacznę skromnie od 1 przycisku i w miarę bezpiecznie - ze względu na brak buforów wejściowych.
W dzisiejszym zadaniu wykonałem przycisk start stop uruchamiający program migotania diody, do tego celu użyłem metody event_detected, która wykrywa zmianę stanu logicznego danego pinu. Ta metoda idealnie nadaje się do obsługi funkcji start/stop.
Przycisk połączony jest z jednej strony z masą a z drugiej z pine GPIO.12, który jest ustawiony w tryb INPUT i stan natywny wysoki (3,3V).
Wciśniecie przycisku powoduje zwarcie pinu 12 z masą i zmianę stanu z wysokiego na niski.
Inne metody dotyczące obsługi wejść opiszę na końcu tego postu.
Szczegóły działania programu opisane w kodzie.


  • kod programu startstopdiody.py:
#!/usr/bin/python
#program start-stop diody
#steruje steruje startem i zatrzymaniem pulsowania diody
#biblioteka time
import time 
#biblioteka random
import random
#biblioteka GPIO
import RPi.GPIO as GPIO 
#wyłączenie ostrzeżeń GPIO
GPIO.setwarnings(False)
#ustawienie typu interpretacji pinów GPIO
GPIO.setmode(GPIO.BCM)
#czyszczenie rejestrów GPIO
GPIO.cleanup()
#ustawienie wybranych pinów w trym OUT
GPIO.setup(21,GPIO.OUT)
#ustawienie wybranych pinów w tryb IN i ustawienie domyślnego stanu wejścia 
#na stan#wysoki 3,3V
GPIO.setup(12,GPIO.IN, pull_up_down=GPIO.PUD_UP)
#dodanie obslugi zdazenia na pinie 12 GPIO
GPIO.add_event_detect(12, GPIO.RISING)
#główna pętla programu
while True:
#jesli zostanie wykryte przyciśnięcie klawisza (zwarcie do masy) 
     #wyświetlonyzostanie komunikat i uruchomiona kolejna pętla 
if GPIO.event_detected(12):
print "start"
#wykonuje pętle do kolejnego wykrycia przyciśnięcia klawisza
while not GPIO.event_detected(12):
#stan wysoki na pinie diody 1
GPIO.output(21,GPIO.HIGH)
#wstrzymanie programu na 1s
time.sleep(0.5)
#stan niski na pinie diody 1
GPIO.output(21,GPIO.LOW)
time.sleep(0.5)

  • schemat:

schemat ukladu




  • płytka prototypowa:
Płytka układu


  • efekt działania:



Brak komentarzy:

Prześlij komentarz