GPIO-Test

Heute habe ich im Elektronikladen um die Ecke ein paar Elektronikbauteile gekauft, um die Auslösung des Fotos mit einem Hardwaretaster zu testen.

Ich habe jetzt erstmal ein Script geschrieben, mit dem ich einen Eingang abfragen kann und das mich bei Änderungen auf der Konsole benachrichtigt. Hier erstmal das Script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/python
 
import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
 
input_old = ""
cnt = 0
while 1:
    input_new = GPIO.input(17)
    if input_new == input_old:
        cnt += 1
    else:
        cnt += 1
        print str(input_new) + "  #" + str(cnt)
    input_old = input_new
    time.sleep(0.1)

Ich hatte zuerst in Zeile 17 diesen Eintrag

17
GPIO.setup(17, GPIO.IN)

Das Problem war, dass sich der Status dann ca. alle 10 Sekunden von True auf False bzw. False auf True geändert hat. Durch die Option pull_up_down=GPIO.PUD_DOWN wird der Pin mit False belegt und zeigt bei einem Tasterdruck True an.

Die Ausgabe sieht dann so aus, bei jeder Änderung des Wertes wird eine Ausgabe erzeugt:

pi@srv-cacti /var/www/raspbooth/python $ sudo ./gpio-test-2.py
False  #1
True  #58
False  #60
True  #9708
False  #9710
True  #9773
False  #9781