Raspberry Pi Pico: Temperaturregler / Temperaturregelung

Auf der Platine des Raspberry Pi Pico ist ein Temperatursensor drauf, der sich für Temperatur-Messungen und dementsprechend für Temperaturregelungen verwenden lässt. Die Temperatur lässt sich quasi messen, auslesen, auswerten und für die Steuerung und Regelung nutzen.

Eine Temperaturregelung besteht im Prinzip aus einem Temperatursensor, einer Heizung zum Heizen oder einem Lüfter zum Kühlen, einem Stellglied zum Ein- und Ausschalten und einem Regler. Der Regler und dessen Logik wird in diesem Fall als Software realisiert. Auf diese Weise kann man ein Relais, einen Lüfter oder eine Heizung steuern. Genau genommen ein- und auszuschalten.

Das einfachste Regelsystem ist ein Zweipunktregler, der einen Sollwert kennt und über einen Größer- und Kleiner-Vergleich etwas ein- und ausschaltet. In Abhängigkeit von der Solltemperatur und der gemessenen Temperatur wird dann eine Heizung oder ein Lüfter ein- oder ausgeschaltet. Die Idee ist, die Heizung oder den Lüfter so zu steuern, dass die Temperatur bei dem gewünschten Sollwert liegt.

Hinweis: Die Logik im Programmcode (Vergleich auf größer oder kleiner) hängt davon ab, ob man die Regelung fürs Heizen oder fürs Kühlen braucht. In den folgenden Programmcodes wird die Regelung fürs Kühlen angewendet.

Regelung beim Heizen

  • Wenn die gemessene Temperatur unter dem Sollwert liegt, dann wird die Heizung eingeschaltet.
  • Wenn die gemessene Temperatur über dem Sollwert liegt, dann wird die Heizung ausgeschaltet.

Regelung beim Kühlen

  • Wenn die gemessene Temperatur über dem Sollwert liegt, dann wird der Lüfter eingeschaltet.
  • Wenn die gemessene Temperatur unter dem Sollwert liegt, dann wird der Lüfter ausgeschaltet.

Ein Nachteil der sehr einfachen EIN/AUS-Temperaturregelung ist, dass immer beim Überschreiten bzw. Unterschreiten des Sollwerts Ein- und Ausgeschaltet wird. Das kann zur Folge haben, dass ein Lüfter oder eine Heizung ständig ein- und ausgeschaltet wird, wenn die Temperatur um den Sollwert herum schwankt.
Manche Kühl- oder Heizsysteme sind allerdings sehr träge, weshalb mal zum Einschalten und Ausschalten mit separaten Schwellwerten arbeitet.

Deshalb macht eine Schwellwert-Temperaturregelung Sinn, bei der bei unterschiedlichen Temperaturen ein- und ausgeschaltet wird.

Aufbau und Bauteile

Raspberry Pi Pico: Externe LED blinken lassen

Der Vorteil dieses Aufbaus ist, dass außer dem Raspberry Pi Pico nichts weiter erforderlich ist.

Programmcode für eine EIN/AUS-Temperaturregelung (Zweipunktregelung)

Innerhalb einer Schleife wird der Temperatursensor des Raspberry Pi Pico abgefragt. Anschließend wird der binäre Wert in zwei Stufen in die Temperatur in Grad Celsius umgerechnet. Danach wird die Temperatur mit dem Sollwert verglichen. Liegt die Temperatur darüber, wird die LED auf dem Pico eingeschaltet. Liegt sie darunter, wird die LED ausgeschaltet.

# Bibliotheken laden
from machine import Pin, ADC
from time import sleep

# Sollwert der Temperatur
soll_temp = 23.5

# Wartezeit bis zur nächsten Messung (Sekunden)
zeit = 3

# Initialisierung des ADC4
sensor_temp = ADC(4)
conversion_factor = 3.3 / (65535)

# Initialiseren des GPIO
led = Pin(25, Pin.OUT, value=0)

# Wiederholung (Endlos-Schleife)
while True:
    # Temparatur-Sensor als Dezimalzahl lesen
    read = sensor_temp.read_u16()
    # Dezimalzahl in eine reele Zahl umrechnen
    spannung = read * conversion_factor
    # Spannung in Temperatur umrechnen
    temperatur = 27 - (spannung - 0.706) / 0.001721
    # Ausgabe in der Kommandozeile/Shell
    print("Temperatur (°C): ", temperatur)
    # EIN und AUS
    if temperatur > soll_temp:
        led.on()
    else:
        led.off()
    # Warten
    sleep(zeit)

Um das Programm sinnvoll testen zu können, muss man zuerst die aktuelle Temperatur wissen. Welcher Sollwert zum Testen sinnvoll ist, hängt von der Umgebungstemperatur ab. Es kann gut sein, dass man das Programm mehrmals starten, stoppen, ändern und speichern muss, bis man ungefähr im Temperaturbereich liegt, mit dem man das Programm sinnvoll testen kann. Und dann muss man noch irgendwie die Temperatur erhöhen und senken können.

  • Temperatur erhöhen: Lege einen Finger auf den Mikrocontroller (großer Chip). Der Temperatursensor befindet sich in der Nähe.
  • Temperatur senken: Puste den Pico mehrmals an.

Programmcode: Schwellwert-Temperaturregelung

Der Programmcode der Schwellwert-Temperaturregelung sieht zwei unterschiedliche Temperaturen zum Einschalten und Ausschalten vor.

# Bibliotheken laden
from machine import Pin, ADC
from time import sleep

# Schwellwerte (Temperatur)
ein_temp = 26.0
aus_temp = 25.5

# Wartezeit bis zur nächsten Messung (Sekunden)
zeit = 3

# Initialisierung des ADC4
sensor_temp = ADC(4)
conversion_factor = 3.3 / (65535)

# Initialiseren des GPIO
led = Pin(25, Pin.OUT, value=0)

# Wiederholung einleiten (Schleife)
while True:
    # Temparatur-Sensor als Dezimalzahl lesen
    read = sensor_temp.read_u16()
    # Dezimalzahl in eine reele Zahl umrechnen
    spannung = read * conversion_factor
    # Spannung in Temperatur umrechnen
    temperatur = 27 - (spannung - 0.706) / 0.001721
    # Ausgabe in der Kommandozeile/Shell
    print("Temperatur (°C): ", temperatur)
    print()
    # EIN und AUS
    if led.value() == 0 and temperatur > ein_temp:
        led.on()
    if led.value() == 1 and temperatur < aus_temp:
        led.off()
    # Warten
    sleep(zeit)

Die Wahl der richtigen Temperaturen der Schwellwerte sind entscheidend für die korrekte Funktion des Programms. Wenn man die Werte für EIN und AUS zu eng wählt, dann kommt das einer einfachen EIN/AUS-Temperaturregelung gleich. Dann hätte man nichts gewonnen.

Außerdem ergeben sich Schwierigkeiten den Programmcode zu testen. Welche Schwellwerte zum Testen sinnvoll sind, hängt von der Umgebungstemperatur ab. Es kann gut sein, dass man das Programm mehrmals starten, stoppen, ändern und speichern muss, bis man ungefähr im Temperaturbereich liegt, mit dem man das Programm sinnvoll testen kann. Und dann muss man noch irgendwie die Temperatur erhöhen und senken können.

  • Temperatur erhöhen: Lege einen Finger auf den Mikrocontroller (großer Chip). Der Temperatursensor befindet sich in der Nähe.
  • Temperatur senken: Puste den Pico mehrmals an.

Darf es etwas mehr sein?

Vorteil bei der Temperaturmessung mit dem Raspberry Pi Pico ist der integrierte Temperatursensor. Nach dem selben Prinzip kann man aber auch eine Helligkeit- oder Widerstandsmessung machen. Herauskommt immer ein 16-Bit-Wert in dezimaler Schreibweise, der verarbeitet werden muss.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren