899
31.2
Anzeige der Temperatur
Schließlich wird mit der Funktion int() daraus eine Zahl gemacht. Diese Zahl wird zurück-
gegeben.
#9: Wenn die Datei direkt ausgeführt wird, hat die Variable __name__ den Wert '__main__'.
Nur in diesem Fall werden die eingerückten Anweisungen ausgeführt. Damit ist es möglich,
diese Datei als Modul zu importieren. Beim Import werden die Anweisungen ausgeführt,
aber nicht die Druckanweisungen in der
if-Klausel am Ende, denn dann hat __name__
einen anderen Wert als '__main__'.
#10: In einer Endlosschleife werden die Ziffern aus dem Messgerät ausgelesen und als vier-
stellige ganze Zahl auf dem Bildschirm ausgegeben. Der Aufruf der Funktion
get_digits()
ist in einer try-Klausel. Denn manchmal bricht die Funktion mit einer Fehlermeldung ab.
Das passiert zum Beispiel dann, wenn auf dem Display keine Zahl zu sehen ist, sondern
0.L
bei einer Überschreitung des Messbereichs.
Die folgenden Abschnitte beschreiben einige Beispiele, wie Sie dieses Modul verwenden
können.
31.2 Anzeige der Temperatur
Moderne Thermometer benutzen elektrische Sensoren zur Temperaturmessung. Beson-
ders verbreitete Sensoren sind so genannte Widerstandsthermometer mit Heißleitern. Ein
Heißleiter ist ein Metall, das schlechter den Strom leitet, wenn es heiß wird. Je höher die
Temperatur, desto höher ist der elektrische Widerstand. Bei Platin nimmt der Widerstand
um etwa 0,39% zu, wenn die Temperatur um 1°C erhöht wird. (Das gilt mit einer maximalen
Abweichung von 0,4°C im Bereich von -20°C bis +120°C.) Sehr populär ist ein Thermosen-
sor mit einem dünnen Platindraht, der bei 0°C einen Widerstand von genau 100
hat. Die-
sen Typ nennt man Pt-100. Einen solchen Sensor gibt es für wenige Euro in unterschied-
lichsten Ausführungen. Im Prinzip können Sie mit einem Pt-100 Temperaturen bis etwa
850°C messen.
In diesem Projekt entwickeln Sie ein Programm, das in einer grafischen Oberfläche die
aktuell gemessene Temperatur anzeigt. Abbildung 31.6 zeigt den Hardware-Aufbau.
Abb. 31.6: Anzeige der aktuellen Temperatur auf dem Bildschirm
Kapitel 31
Messdaten verarbeiten
900
Das DMM ist über ein USB-Kabel an den Computer angeschlossen. Unten rechts im Bild
sehen Sie einen Pt-100-Temperatursensor in einem Edelstahl-Gehäuse. An seine Kabelen-
den sind Krokodilklemmen geschraubt. Sie werden an die beiden Messelektroden des
DMM geklemmt. Das Messgerät wird auf Widerstandmessungen (
) eingestellt.
Aufgabe des Programms ist, aus den vier Ziffern der DMM-Anzeige die Temperatur zu
berechnen. Nun ist auf der Anzeige des Messgerätes vor der letzten Ziffer ein Punkt. Das
heißt, Sie müssen die vierstellige Zahl durch 10 teilen, um den tatsächlich angezeigten
Widerstand R zu erhalten. Daraus berechnen Sie nach folgender Gleichung die Temperatur
in Grad Celsius:
Temperatur = (R -100)/0,39 °C
Skript:
Erläuterung:
#1: Das Widget label wird in dieser Funktion verändert, also muss es als global deklariert
werden.
#2: Die Variable n erhält die vier Ziffern des Displays als ganze Zahl.
#3: Aus dem Rohwert n für den Widerstand wird die Temperatur berechnet.
#4: Hier wird der Text des Labels neu konfiguriert. Der String enthält einen Platzhalter
%.1f, der dafür sorgt, dass an dieser Stelle die Temperatur (Inhalt der Variablen temp) als
Dezimalbruch mit einer Stelle hinter dem Punkt eingefügt wird.
#5: Nach 1000 Millisekunden (also einer Sekunde) wird die Funktion show() wieder aufge-
rufen.
#6: Hier wird ein Label-Objekt mit riesiger Schriftgröße erzeugt und anschließend in das
Applikationsfenster gepackt.
from tkinter import Tk, Label
from dmm import get_digits
from _thread import start_new_thread
def show():
global label #1
n = get_digits() #2
temp = (n/10 - 100)/0.39 #3
label.config(text='%.1f°C' % temp) #4
label.after(1000, show) #5
window = Tk()
label = Label(master=window, width = 8,
font=('Courier', 150)) #6
label.pack()
start_new_thread(show, ()) #7
window.mainloop()

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.