Hallo zusammen,
ich komme leider bei meinem Projekt nicht weiter und bitte euch mir zu helfen.
In dem Projekt habe ich diverse Klassen erstellt um nur die Funktionen von den Standard-Libs zu nutzen, welche ich auch tatsächlich benötige und um es einfacher bzw. übersichtlicher zu gestalten.
Ich habe nun Probleme bei der Erstellung meiner GPIO Klasse genauer bei der GPIO_Input Klasse. Hier mein Code:
import pigpio
On = 1
Off = 0
class GPIO_Output():
def __init__(self, Pin):
self.__Pin = Pin
self.__Pi = pigpio.pi()
self.__Pi.set_mode(self.__Pin, pigpio.OUTPUT)
self.__Pi.write(self.__Pin, Off)
self.__Status = False
def setGPIO_High(self):
self.__Pi.write(self.__Pin, On)
self.__Status = True
def setGPIO_Low(self):
self.__Pi.write(self.__Pin, Off)
self.__Status = False
def getGPIO_Status(self):
return self.__Status
class GPIO_Input():
def __init__(self, Pin):
self.__Pin = Pin
self.__Pi = pigpio.pi()
self.__Pi.set_mode(self.__Pin, pigpio.INPUT)
self.__Pi.set_pull_up_down(self.__Pin, pigpio.PUD_DOWN)
# self.__Status = self.__Pi.read(self.__Pin)
# self.__Status = self.__Pi.callback(self.__Pin, pigpio.FALLING_EDGE)
def getGPIO_Status(self):
# self.__Status = self.__Pi.read(self.__Pin)
self.__Status = self.__Pi.wait_for_edge(self.__Pin, pigpio.RISING_EDGE, 5.0) # Problem??
return self.__Status
Alles anzeigen
Mein Problem:
Ich starte nun mein Programm, welches diverse Loops ausführt. Während einer Loop kann dann ein Taster gedrückt werden, der mit der Klasse GPIO_Input initialisiert wurde. Jetzt habe ich das Problem, dass ich nicht mitbekomme, wenn der Taster gedrückt wurde.
Ich habe eigentlich gedacht und gehofft, dass wenn der Taster gedrückt wurde intern die Flanke detektiert wird und das ins Register geschrieben wird. Ich lese dann das Register aus und erhalte ein "TRUE" als Return-Wert. Das klappt aber nicht
Ich habe das auch schon mit diesen callback Funktionen gesehen, allerdings weiß ich nicht, wie ich das in diese Klasse implementieren kann.
Könnt Ihr mir hier bitte weiterhelfen?
Vielen lieben Dank!
LG
Bastian