Hallo liebes Forum,
Ich bin ein kompletter Neuling auf dem Thema Programmierung und rasp. Nun stehe ich aber 2 Tage vor meiner Abschlussprüfung für meinen Maschienenbautechniker. Ich hätte mir ein anderes Thema gewählt, doch liebe ich Herausforderungen. Nun zu meinem Problem (Ich hoffe ihr könnt mir helfen):
Ich habe mit Pqt5 Designer eine Gui erstellt, welche im Programm meine Relais über GPIO schalten soll. Nun ist es aber so, dass sobald ich das Programm schalte alle Relais angezogen werden und mit betätigen des PUSHBOTTONS diese weder aus noch eingeschaltet werden können. Ein LED Streifen sollte dazu geschaltet werden, wobei ich bei dem Vorhaben schon verzweifel.
Ich habe schon viel in Büchern gelesen aber finde ich den Fehler nicht?! Vllt gehe ich auch komplett falsch an die Sache ran.
Bitte helft mir dabei!!!!
Liebe Grüße
Pqt5 Designer einbindung und steuerung GPIO
-
- User
- Beiträge: 3
- Registriert: Sonntag 24. Januar 2021, 03:37
import sys
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QApplication,QDialog,QPushButton
from PyQt5.uic import loadUi
import RPi.GPIO as gpio
KB=26
MW=19
OA=13
OW=21
gpio.setmode(gpio.BCM)
gpio.setwarnings(False)
gpio.setup(26,gpio.OUT)
gpio.setup(19,gpio.OUT)
gpio.setup(13,gpio.OUT)
gpio.setup(21,gpio.OUT)
class design(QDialog):
def __init__(self):
super(design,self).__init__()
loadUi('design.ui',self)
self.setWindowTitle('Saftbar')
self.KB.clicked.connect(self.KB)
self.MW.clicked.connect(self.MW)
self.OA.clicked.connect(self.OA)
self.OW.clicked.connect(self.OW)
@pyqtSlot()
def KB(self):
if gpio.input(KB):
gpio.output(KB,gpio.LOW)
self.KB.setText('KB in progress')
else:
gpio.output(KB,gpio.HIGH)
self.KB.setText('KB')
def MW(self):
if gpio.input(MW):
gpio.output(MW,gpio.LOW)
self.MW.setText('MW in progress')
else:
gpio.output(MW,gpio.HIGH)
self.MW.setText('MW')
def OA(self):
if gpio.input(OA):
gpio.output(OA,gpio.LOW)
self.OA.setText('OA in progress')
else:
gpio.output(OA,gpio.HIGH)
self.OA.setText('OA')
def OW(self):
if gpio.input(OW):
gpio.output(OW,gpio.LOW)
self.OW.setText('OW in progress')
else:
gpio.output(OW,gpio.HIGH)
self.OW.setText('OW')
app=QApplication(sys.argv)
widget=loadUi('design.ui')
widget.show()
sys.exit(app.exec_())
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QApplication,QDialog,QPushButton
from PyQt5.uic import loadUi
import RPi.GPIO as gpio
KB=26
MW=19
OA=13
OW=21
gpio.setmode(gpio.BCM)
gpio.setwarnings(False)
gpio.setup(26,gpio.OUT)
gpio.setup(19,gpio.OUT)
gpio.setup(13,gpio.OUT)
gpio.setup(21,gpio.OUT)
class design(QDialog):
def __init__(self):
super(design,self).__init__()
loadUi('design.ui',self)
self.setWindowTitle('Saftbar')
self.KB.clicked.connect(self.KB)
self.MW.clicked.connect(self.MW)
self.OA.clicked.connect(self.OA)
self.OW.clicked.connect(self.OW)
@pyqtSlot()
def KB(self):
if gpio.input(KB):
gpio.output(KB,gpio.LOW)
self.KB.setText('KB in progress')
else:
gpio.output(KB,gpio.HIGH)
self.KB.setText('KB')
def MW(self):
if gpio.input(MW):
gpio.output(MW,gpio.LOW)
self.MW.setText('MW in progress')
else:
gpio.output(MW,gpio.HIGH)
self.MW.setText('MW')
def OA(self):
if gpio.input(OA):
gpio.output(OA,gpio.LOW)
self.OA.setText('OA in progress')
else:
gpio.output(OA,gpio.HIGH)
self.OA.setText('OA')
def OW(self):
if gpio.input(OW):
gpio.output(OW,gpio.LOW)
self.OW.setText('OW in progress')
else:
gpio.output(OW,gpio.HIGH)
self.OW.setText('OW')
app=QApplication(sys.argv)
widget=loadUi('design.ui')
widget.show()
sys.exit(app.exec_())
Benutze sprechende Variablennamen. Sowohl eine Methode als auch einen Button KW zu nennen, klappt nicht. Der Pin heißt auch KW ist aber zum Glück in einem anderen Namensraum.
Gute Namen verhindern schon mal solche Kollisionen.
Gute Namen verhindern schon mal solche Kollisionen.
-
- User
- Beiträge: 3
- Registriert: Sonntag 24. Januar 2021, 03:37
Danke für die Antwort: Also verstehe ich das richtig, wenn ich die Variablen ab a hochzähle ich auf der sicheren Seite wäre? Habe das jetzt geändert, habe aber immernoch das gleiche Problem.
Sprechende Variablen sind etwas anderes als hochzählen. wodka_pin, wodka_button, wodka_callback sind sprechende Variablen.
Und “ich habe etwas geändert, aber es geht nicht” - was genau soll man damit anfangen? Zeige konkreten Code, in Code Tags, und konkrete Fehlermeldung und beschreibe, was passiert und nicht passiert.
Und “ich habe etwas geändert, aber es geht nicht” - was genau soll man damit anfangen? Zeige konkreten Code, in Code Tags, und konkrete Fehlermeldung und beschreibe, was passiert und nicht passiert.