Veröffentlicht: 18.04.2019 Copyright by Joy-IT 9
Joy-Pi
In unseren Beispielen verwenden wir die Programmiersprache „Python“, um die GPIO-Pins zu steuern. In
Python gibt es eine Bibliothek namens "RPi.GPIO". Dies ist eine Bibliothek, die dabei hil, die Pins mit
Python zu steuern.
Das folgende Beispiel und die Kommentare im Code sollen Ihnen helfen das Programm zu verstehen.
Als Erstes müssen die benögten Bibliotheken mit Hilfe des „import“ Befehls imporert werden. Die
Variablen „TOUCH“ und „BUZZER“ verweisen auf die Pins des Touchsensors und des Buzzers. Im
Anschluss wird mit „GPIO.setmode(GPIO.BOARD)“ das verwendete GPIO Schema deniert. Als Nächstes
werden die zuvor festgelegten Variablen mit Hilfe des Befehls „GPIO.setup()“ als Ein– bzw. Ausgang
konguriert. Pin 11 (TOUCH) wird als Eingang und PIN 12 (BUZZER) wird als Ausgang festgelegt.
Die Funkon „main“ fragt ab ob es eine Berührung des Touchsensors gibt. Ist dies der Fall wird die
Funkon „do_smt“ ausgeführt.
Die Funkon „do_smt“ druckt den Text „Touch wurde erkannt“, setzt dann den Buzzer-Pin „HIGH“ und
eine Sekunde später wieder „LOW“ (der Buzzer summt eine Sekunde).
Um noch mehr über den Zweck und die Verwendung von GPIO zu erfahren, empfehlen wir Ihnen sich die
ozielle Dokumentaon der Raspberry Pi Foundaon zum Thema GPIO anzuschauen.
hps://www.raspberrypi.org/documentaon/usage/gpio/
import RPi.GPIO as GPIO
import time #importieren der Bibliotheken
import signal
TOUCH = 11 #Deklaration der Pinne
BUZZER = 12
def setup_gpio(): #Definition der Ein- und Ausgaenge
GPIO.setmode(GPIO.BOARD)
GPIO.setup(TOUCH, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(BUZZER, GPIO.OUT)
def do_smt(channel): #Funktion zur Ausgabe das Touch erkannt wurde
print("Touch wurde erkannt") #und Ausgabe ueber den Buzzer
GPIO.output(BUZZER, GPIO.HIGH) #Signal ausgabe
time.sleep (1) #1 Sekunde warten
GPIO.output(BUZZER, GPIO.LOW) #Signalausgabe stoppen
def main():
setup_gpio()
try: #Pruefung ob ein Touch erkannt wurde
GPIO.add_event_detect(TOUCH, GPIO.FALLING, callback=do_smt, bouncetime=200)
signal.pause()
except KeyboardInterrupt: #strg+c beendet das Programm
pass
finally:
GPIO.cleanup()
if __name__ == '__main__':
main()