Aktuell habe ich am MPC3008 einen 10KOhm Poti angeschlossen und es einfacher zu testen.
ich kann im reinen Tempauslesen programm , die Temp auf 100 bis 200 stellen und dann die Statusbar öffnen.
Aber alles über 100 wird nicht angezeigt.
0-100 funktioniert 1a
Tempauslesen_Test.py :
Code: Alles auswählen
#!/usr/bin/env python
import time
import RPi.GPIO as GPIO
import sys
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(0.5)
return adcvalue
# Variablendefinition
ADC_Channel = 0 # Analog/Digital-Channel
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)
def Temperatur1():
Umrechnen1 = readAnalogData(ADC_Channel, SCLK, MOSI, MISO, CS)
Umrechnen2 = ((Umrechnen1*0.0032)*330)/(3.3*(1-((Umrechnen1*0.0032)/3.3)))
Temp1= (Umrechnen2-100)/0.39
return Temp1
if __name__ == "__main__":
while True:
Temperatur = Temperatur1()
print(Temperatur)