Hallo zusammen,
Ich möchte über die GPIO's einen Taster so programmieren, dass er, egal wie lang er gedrückt wird, nur einmal ein Signal herausgibt.
momentan ist er so programmiert, dass er alle 0,4 sek "neu gedrückt" wird, wenn man ihn gedrückt lässt..
Hier mein aktueller Skript:
(3Taster, 3 LED's)
Python
import RPi.GPIO as GPIO
from time import sleep
GPIO.setwarnings(False) #Warnmeldungen ausschalten
GPIO.setmode(GPIO.BOARD) #Pinnummerierung benutzen
GPIO.setup(5, GPIO.IN) #Reset-Taster
GPIO.setup(7, GPIO.IN) #Taster 1 (Plus-Taste)
GPIO.setup(11, GPIO.IN) #Taster 2 (Minus-Taste)
GPIO.setup(19, GPIO.OUT) #erste LED
GPIO.setup(21, GPIO.OUT) #zweite LED
GPIO.setup(23, GPIO.OUT) #dritte LED
def blink(pin):
GPIO.output(pin,GPIO.LOW)
time.sleep (.1)
GPIO.output(pin,GPIO.HIGH)
def blink1(pin):
GPIO.output(pin,GPIO.HIGH)
time.sleep (.1)
GPIO.output(pin,GPIO.LOW)
status = 0
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
print "Zaehler"
while True:
if(GPIO.input(7)): #Addieren
if(status == 0):
GPIO.output(19, True)
status = 1
print "1"
elif(status == 1):
GPIO.output(21, True)
status = 2
print "2"
elif(status == 2):
GPIO.output(23, True)
status = 3
print "3"
elif(status == 3):
status = 3
print "Maximalwert erreicht"
for i in range(0,1):
blink(19)
blink(21)
blink(23)
elif(GPIO.input(11)): #Subtrahieren
if(status == 0):
status = 0
print "Minimalwert erreicht"
for i in range(0,1):
blink1(19)
blink1(21)
blink1(23)
elif(status == 3):
GPIO.output(23, False)
status = 2
print "2"
elif(status == 2):
GPIO.output(21, False)
status = 1
print "1"
elif(status == 1):
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
status = 0
print "0"
elif(GPIO.input(5)): #Resetten
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
status = 0
print "Auf 0 zurueckgesetzt"
sleep(.4)
Alles anzeigen
Drückt man die "Plus-Taste, geht eine LED mehr an.
Drückt man die Minus-Taste, geht eine LED aus ...
Beim Reset-Taster gehen alle wieder aus..
die Taster sollen pro Tastendruck (egal, wie lang) nur einmal einen Impuls an den RasPi geben.. ist das möglich? wenn ja, wie ?
Vielen Dank im Voraus !