so ich habe jetzt alles hoffentlich vernünftig eingerückt.
Tempauslesen.py :
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM) #Verwendung der GPIO-Zahlen anstelle der
#Pin-Nummer
HIGH = True #High-Pegel
LOW = False #Low-Pegel
def readAnalogData(adcChannel, SCLKPin, MOSIPin, MISOPin, CSPin):
# Pegel vorbereiten
GPIO.output (CSPin, HIGH)
GPIO.output (CSPin, LOW)
GPIO.output(SCLKPin, LOW)
sendcmd = adcChannel
sendcmd |= 0b00011000
# Senden der Bitkombination (Es finden nur 5 Bit Beruecksichtigung)
for i in range(5):
if (sendcmd & 0x10): # Bit an Pos 4 pruefen. Zaehlung bei 0
GPIO.output(MOSIPin, HIGH)
else:
GPIO.output(MOSIPin, LOW)
# Negative Flanke des Clocksignals generieren
GPIO.output(SCLKPin, HIGH)
GPIO.output(SCLKPin, LOW)
sendcmd <<= 1 # Bitfolge eine Position nach links schieben
#Empfangen der Daten des ADC
adcvalue = 0 #Ruecksetzen des gelesenen Wertes
for i in range(11):
GPIO.output(SCLKPin, HIGH)
GPIO.output(SCLKPin, LOW)
adcvalue <<=1 #1 Position nach links schieben
if (GPIO.input(MISOPin)):
adcvalue |= 0x01
time.sleep(2)
return adcvalue
# Variablendefinition
ADC_Channel0 = 0 # Analog/Digital-Channel
#ADC_Channel1 = 1
#ADC_Channel2 = 2
#ADC_Channel3 = 3
#ADC_Channel4 = 4
#ADC_Channel5 = 5
#ADC_Channel6 = 6
#ADC_Channel7 = 7
SCLK = 11 # Serial-Clock
MOSI = 10 # Master-Out-Slave-In
MISO = 9 # Master-In-Slave-Out
CS = 8 # Chip-Select
# Pin-Programmierung
GPIO.setwarnings(False)
GPIO.setup(SCLK, GPIO.OUT)
GPIO.setwarnings(False)
GPIO.setup(MOSI, GPIO.OUT)
GPIO.setwarnings(False)
GPIO.setup(MISO, GPIO.IN)
GPIO.setwarnings(False)
GPIO.setup(CS, GPIO.OUT)
Temp0_Umrechnen0 = readAnalogData(ADC_Channel0, SCLK, MOSI, MISO, CS)
Temp0_R_AmPT100_0 = ((Temp0_Umrechnen0*0.0032)*330)/(3.3*(1-((Temp0_Umrechnen0*0.0032)/3.3)))
Temp0= (Temp0_R_AmPT100_0-100)/0.39
class Temperatur1():
def Temperatur0(self):
Temperatur0 = Temp0
#Temp0_Umrechnen0 = readAnalogData(ADC_Channel0, SCLK, MOSI, MISO, CS)
#Temp0_R_AmPT100_0 = ((Temp0_Umrechnen0*0.0032)*330)/(3.3*(1-((Temp0_Umrechnen0*0.0032)/3.3)))
#Temp0= (Temp0_R_AmPT100_0-100)/0.39
#Temp1_Umrechnen1 = readAnalogData(ADC_Channel1, SCLK, MOSI, MISO, CS)
#Temp1_R_AmPT100_1 = ((Temp1_Umrechnen1*0.0032)*330)/(3.3*(1-((Temp1_Umrechnen1*0.0032)/3.3)))
#Temp1= (Temp1_R_AmPT100_1-100)/0.39
#Temp2_Umrechnen2 = readAnalogData(ADC_Channel2, SCLK, MOSI, MISO, CS)
#Temp2_R_AmPT100_2 = ((Temp2_Umrechnen2*0.0032)*330)/(3.3*(1-((Temp2_Umrechnen2*0.0032)/3.3)))
#Temp2= (Temp2_R_AmPT100_2-100)/0.39
#Temp3_Umrechnen3 = readAnalogData(ADC_Channel3, SCLK, MOSI, MISO, CS)
#Temp3_R_AmPT100_3 = ((Temp3_Umrechnen3*0.0032)*330)/(3.3*(1-((Temp3_Umrechnen3*0.0032)/3.3)))
#Temp3= (Temp3_R_AmPT100_3-100)/0.39
#Temp4_Umrechnen4 = readAnalogData(ADC_Channel4, SCLK, MOSI, MISO, CS)
#Temp4_R_AmPT100_4 = ((Temp4_Umrechnen4*0.0032)*330)/(3.3*(1-((Temp4_Umrechnen4*0.0032)/3.3)))
#Temp4= (Temp4_R_AmPT100_4-100)/0.39
#Temp5_Umrechnen5 = readAnalogData(ADC_Channel5, SCLK, MOSI, MISO, CS)
#Temp5_R_AmPT100_5 = ((Temp5_Umrechnen5*0.0032)*330)/(3.3*(1-((Temp5_Umrechnen5*0.0032)/3.3)))
#Temp5= (Temp5_R_AmPT100_5-100)/0.39
#Temp6_Umrechnen6 = readAnalogData(ADC_Channel6, SCLK, MOSI, MISO, CS)
#Temp6_R_AmPT100_6 = ((Temp6_Umrechnen6*0.0032)*330)/(3.3*(1-((Temp6_Umrechnen6*0.0032)/3.3)))
#Temp6= (Temp6_R_AmPT100_6-100)/0.39
#Temp7_Umrechnen7 = readAnalogData(ADC_Channel7, SCLK, MOSI, MISO, CS)
#Temp7_R_AmPT100_7 = ((Temp7_Umrechnen7*0.0032)*330)/(3.3*(1-((Temp7_Umrechnen7*0.0032)/3.3)))
#Temp7= (Temp7_R_AmPT100_7-100)/0.39'''
#print (Temp0),('C Channel0')
#print (Temp1),('C Channel1')
#print (Temp2),('C Channel2')
#print (Temp3),('C Channel3')
#print (Temp4),('C Channel4')
#print (Temp5),('C Channel5')
#print (Temp6),('C Channel6')
#print (Temp7),('C Channel7')'''
und das hier meine Statusbar:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import QApplication, QMainWindow, QProgressBar
from Tempauslesen import Temperatur1
class Example(QMainWindow):
def __init__(self):
super(Example,self).__init__()
self.progress_bar = QProgressBar(self)
self.progress_bar.setGeometry(30, 40, 200, 25)
self.setWindowTitle("QT Progressbar Example")
self.setGeometry(32, 32, 320, 200)
self.timer = QTimer()
self.timer.timeout.connect(self.update_temperature)
self.timer.start(1000)
def update_temperature(self):
temperature = Tempauslesen.Temperatur1()
if temperature < 500:
self.progress_bar.setValue(temperature)
else:
self.timer.stop()
def main():
app = QApplication(sys.argv)
example = Example()
example.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
Als Error beim ausführen von meiner Statusbar:
qt5ct: using qt5ct plugin
Traceback (most recent call last):
File "Übung.py", line 25, in update_temperature
temperature = Tempauslesen.Temperatur1()
NameError: global name 'Tempauslesen' is not defined
Aborted
Ich vermute, dass ich in Tempauslesen.py die Klasse Temperatur1 oder def Temperatur0 eine falsche, oder keine Temperatur speichere.
Oder in der Statusbar falsch importiere ggf. den Temperaturwert nicht in "temperature" geladen bekomme.
Vielleicht weiss ja jemand weiter...
Gruß aus NRW