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 utime 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 utime 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:

Teilen:

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Programmieren mit dem Raspberry Pi Pico

Online-Workshop mit einer Einführung ins Physical Computing mit Leuchtdioden, Taster und Temperatursensor.

  • Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython ohne Vorkenntnisse
  • Optimaler Einstieg, um eigene Ideen zu verwirklichen und Steuerungen zu programmieren
  • Inklusive Elektronik-Set mit einem Raspberry Pi Pico, Zubehör und elektronischen Bauteilen

Mehr Informationen Am Online-Workshop teilnehmen

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Programmieren mit dem Raspberry Pi Pico

Online-Workshop mit einer Einführung ins Physical Computing mit Leuchtdioden, Taster und Temperatursensor.

  • Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython ohne Vorkenntnisse
  • Optimaler Einstieg, um eigene Ideen zu verwirklichen und Steuerungen zu programmieren
  • Inklusive Elektronik-Set mit einem Raspberry Pi Pico, Zubehör und elektronischen Bauteilen

Mehr Informationen Am Online-Workshop teilnehmen

Elektronik-Fibel

Elektronik einfach und leicht verständlich

Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.

Das will ich haben!