Tropfen- und Feuchtigkeitssensor

  • Inhalte: Tropfensensor , Feuchtigkeitssensor
  • Niveau: Basis , Fortgeschritten

Mit einem Tropfensensor lässt sich die Feuchtigkeit auf dem Sensorblatt messen. Solche Sensoren werden zum Beispiel in Windschutzscheiben von Autos eingesetzt, um die Scheibenwischer und ihre Geschwindigkeit zu steuern. Feuchtigkeitssensoren funktionieren im Wesentlichen genauso, allerdings sind die Kontakte dabei so weit auseinander, dass durch Tropfen noch kein Stromfluss entsteht, sondern erst durch zum Beispiel die feuchte Erde eines Blumentopfes, der automatisch bewässert werden soll.

Tropfensensor.
Tropfensensor.
Feuchtigkeitssensor.
Feuchtigkeitssensor.

Die Feuchtigkeit kann leider nicht als absoluter Wert gemessen werden. Mit Hilfe des Sensors bekommt man einen Analogwert zwischen 0 und 1023 (in der Realität bis maximal 700), der sich grob einordnen lässt:

Analogwert Bedeutung
0 bis 300 trocken
300 bis 600 feucht
größer 600 sehr feucht

Verbindung mit Grove

Schaltung

calliope-feuchtigkeitssensor-grove
Verbindung des Feuchtigkeitssensors mit dem Calliope über den Grove-Verbinder. Man kann nur den rechten Anschluss A1 verwenden, nicht den linken Anschluss A0.

Programmierung

Zum Auslesen des Feuchtigkeitssensors per Grove lädt man zuerst die Grove-Erweiterung. Dort findet sich der abgebildete Block.

makecode-erweiterung-grove

mc-grove-feuchtigkeitssensor-auslesen

Zum Auslesen des Feuchtigkeitssensors muss man zunächst in der Konfiguration den Feuchtigkeitssensor ergänzen. Die Verbindung mit dem Calliope wird falsch dargestellt, aber der Pin richtig angegeben (A1).

Nach der Konfiguration kann man sich die Werte auf dem Display des Calliope anzeigen lassen. Die Werte werden in Prozent von 0% bis 100% angegeben.

orl-conf-grove-feuchtigkeitssensor

orl-grove-feuchtigkeitssensor-auslesen

Das gelbe Signalkabel des Feuchtigkeitssensors ist bei dem Grove-Anschluss mit dem Pin A1_RX (C16) verbunden. Von diesem werden die Analogwerte abgerufen und auf dem Display angezeigt.

# Imports go at the top
from calliopemini import *

# Code in a 'while True:' loop repeats forever
while True:
    feuchtigkeit = pin_A1_RX.read_analog() # Wert von 0–1023 
    display.scroll(feuchtigkeit)
    display.clear()
    sleep(500)

Verbindung mit der Pinleiste

Schaltung

calliope-feuchtigkeitssensor
Anschluss des Feuchtigkeitssensors an der Pinleiste des Calliope. Für den Tropfensensor erfolgt der Anschluss analog.

Das Signalkabel S (in der Schaltskizze blau eingezeichnet) muss mit einem Pin verbunden werden, der ein analoges Signal lesen kann. Dafür kommen folgende Pins in Frage: P0, P1, P2, C4, C10, C16, C18. Achtung: Die Pins können schon an anderer Stelle verwendet worden sein, z. B. über die Ringpads (P0, P1, P2) oder den Grove-Anschluss A1 (betrifft C16).

Programmierung

Zum Auslesen des Feuchtigkeitssensors lässt man sich aus der Kategorie "Pins" die analogen Werte des Signalpins anzeigen. Um eine prozentuale Anzeige zu erhalten, teilt man den Analogwert durch 1023.

mc-feuchtigkeitssensor-auslesen
Auslesen der Analogwerte des Feuchtigkeitssensors.

Zum Auslesen des Feuchtigkeitssensors muss man zunächst in der Konfiguration den Feuchtigkeitssensor ergänzen.

Nach der Konfiguration kann man sich die analogen Werte zwischen 0 und 1023 auf dem Display des Calliope anzeigen lassen. Um eine prozentuale Anzeige zu erhalten, teilt man den Analogwert durch 1023.

orl-conf-feuchtigkeitssensor

orl-conf-feuchtigkeitssensor-auslesen

Bei der Konfiguration als analoger Sensor stehen nicht alle oben aufgezählten Pins zur Auswahl. Dies ist ein Bug im Open Roberta Lab (Stand: 01.04.26). Insbesondere ist auch der Pin P0 nicht als analoger Sensor auswählbar, weshalb anders als in oben dargestellten Schaltskizze der Pin P1 als analoger Sensor ausgewählt wird. Wenn der Pin P1 als analoger Sensor konfiguriert wird, sollte er auch mit dem Signalpin des Feuchtigkeitssensors verbunden werden.

Das in der Schaltskizze blau eingezeichnete Signalkabel des Feuchtigkeitssensors ist mit dem Pin P0 verbunden. Von diesem werden die Analogwerte abgerufen und auf dem Display angezeigt. Um eine prozentuale Anzeige zu erhalten, teilt man den Analogwert durch 1023.

# Imports go at the top
from calliopemini import *

# Code in a 'while True:' loop repeats forever
while True:
    feuchtigkeit = pin0.read_analog() # Wert von 0–1023 
    display.scroll(feuchtigkeit)
    display.clear()
    sleep(500)

Aufgaben

Automatischer Scheibenwischer

Baue einen Scheibenwischer, der automatisch startet, wenn Feuchtigkeit registriert wird. Je nach Feuchtigkeitslevel soll eine von drei Geschwindigkeiten ausgewählt werden.