Tropfensensor am Arduino auslesen

FunduinoZuletzt aktualisiert am

Flüssigkeit erkennen und bei Regen Alarm schlagen

Der Tropfensensor ist so einfach gebaut, wie ein Sensor nur sein kann: zwei ineinandergreifende Leiterbahnen, zwischen denen Wasser eine Brücke bildet. Schon ein einzelner Tropfen genügt für einen eindeutigen Messwert.

In dieser Anleitung liest du den Sensor aus und baust daraus einen Regenmelder, der bei den ersten Tropfen ein Signal gibt – die Grundlage für eine Markise, die sich von selbst einrollt.

Schmale Platine mit kammförmig ineinandergreifenden Leiterbahnen
Der Tropfensensor mit seinen langen Kontaktbahnen
Tropfensensor mit drei Leitungen am Mikrocontroller
Aufbau: Plus an 5V, Minus an GND, S an A0
1 / 2

Material

Für dieses Projekt brauchst du:

  • 1× Mikrocontroller mit passendem USB-Kabel
  • 1× Tropfensensor
  • 1× Steckbrett
  • Steckkabel männlich/männlich und männlich/weiblich

Für die Erweiterung im letzten Schritt kommt dazu:

  • 1× Piezo-Summer

Wie der Sensor arbeitet

Auf dem Sensor liegen zwei lange, kammförmig ineinandergreifende Leiterbahnen. An der einen liegt Plus an, an der anderen Minus. Solange sie trocken sind, fließt kein Strom – sobald ein Tropfen beide Bahnen verbindet, fließt ein kleiner Strom von der einen zur anderen.

Diesen Strom bereitet das Modul auf und gibt ihn als Spannung an einen analogen Eingang weiter. Der Arduino kann Spannung nicht direkt messen, sondern wandelt sie in einen Zahlenwert um: 0 bis 5 Volt ergeben Werte von 0 bis 1023.

Im Trockenen liegt der Wert nahe 0. Ein einzelner Wassertropfen bringt ihn auf ungefähr 480, mit mehr Wasser steigt er weiter.

Als Regensensor lässt sich damit einiges anstellen: eine Markise einrollen, Jalousien schließen, einen Alarm auslösen oder einen Scheibenwischer starten.

Schmale Platine mit kammförmig ineinandergreifenden Leiterbahnen
Der Tropfensensor mit seinen langen Kontaktbahnen

Aufbau

Der Sensor hat drei Anschlüsse:

  • + → 5V
  • − → GND
  • S → analoger Eingang A0

Wichtig für den Dauerbetrieb: Liegt an den Kontaktbahnen ständig Spannung an, während sie feucht sind, zersetzt die Elektrolyse den Sensor. In unseren Tests im Wasser entstanden so schon nach rund 24 Stunden Schäden.

Miss deshalb nicht im Sekundentakt, sondern höchstens alle 15 Minuten. Noch besser: Versorge den Sensor über einen digitalen Pin statt über 5V und schalte ihn nur für die Messung ein.

Tropfensensor mit drei Leitungen am Mikrocontroller
Aufbau: Plus an 5V, Minus an GND, S an A0

Messwert auslesen

Die Programmierung ist denkbar einfach und funktioniert genauso wie das Auslesen eines Potentiometers: Es wird nur ein analoger Wert eingelesen und ausgegeben.

Lade den Sketch hoch und öffne den Seriellen Monitor mit 9600 Baud. Tupfe etwas Wasser auf den Sensor und beobachte, wie der Wert steigt.

Zum Ausprobieren kannst du die Pause im Sketch kurz auf 500 Millisekunden stellen. Denk aber daran, sie für den Dauerbetrieb wieder zu verlängern – sonst ist der Sensor nach einem Tag hinüber.

Sketch 1: Messwert im Seriellen Monitor anzeigen
int messwert = 0;  // Unter "messwert" wird der Messwert des Sensors gespeichert.

void setup()
{
  // Die Kommunikation mit dem seriellen Port wird gestartet.
  // Das braucht man, um den ausgelesenen Wert im Seriellen Monitor zu sehen.
  Serial.begin(9600);
}

void loop()
{
  // Die Spannung am Sensor wird ausgelesen und gespeichert.
  messwert = analogRead(A0);

  Serial.print("Feuchtigkeits-Messwert: ");
  Serial.println(messwert);

  // Lange Pause bis zur naechsten Messung.
  // 15 Minuten = 15 * 60 * 1000 Millisekunden.
  // Zum schnellen Ausprobieren kannst du hier voruebergehend 500 einsetzen -
  // fuer den Dauerbetrieb sollte die Pause aber lang bleiben.
  delay(900000);
}

Erweiterung: Alarm bei Regentropfen

Jetzt soll ein Signal ertönen, sobald ein Tropfen auf den Sensor trifft. Schließe dazu den Piezo-Summer an: Plus an Pin 6, der andere Anschluss an GND.

Als Grenzwert nehmen wir 400, weil ein einzelner Tropfen etwa 480 ergibt. Liegt der Messwert darüber, ertönt der Summer; fällt er darunter, wird es wieder still.

Ein aktiver Summer gibt schon bei einem einfachen digitalWrite einen Ton aus. Ein passiver Piezo braucht dagegen ein Wechselsignal und bleibt bei digitalWrite stumm – deshalb nutzt dieser Sketch tone(). Damit funktionieren beide Bauformen.

Tropfensensor und Piezo-Summer am Mikrocontroller
Erweiterter Aufbau mit Piezo-Summer an Pin 6
Sketch 2: Alarm bei Regentropfen
int messwert = 0;
int PIEPS = 6;   // Mit dem Namen "PIEPS" wird jetzt Pin 6 bezeichnet, an dem der Summer haengt.

void setup()
{
  Serial.begin(9600);
  pinMode(PIEPS, OUTPUT);  // Pin 6 wird als Ausgang festgelegt.
}

void loop()
{
  messwert = analogRead(A0);
  Serial.print("Feuchtigkeits-Messwert: ");
  Serial.println(messwert);

  // Abfrage: Wenn der Sensorwert groesser als 400 ist ...
  if (messwert > 400)
  {
    tone(PIEPS, 1000);  // ... soll der Summer einen Ton ausgeben.
  }
  else                  // ... ansonsten ...
  {
    noTone(PIEPS);      // ... bleibt es still.
  }

  // Auch hier gilt: im Dauerbetrieb lange Pausen setzen, sonst
  // zerstoert die Elektrolyse den Sensor innerhalb eines Tages.
  delay(900000);
}
Anleitung bewerten

Kommentare

Frage stellen oder Erfahrung teilen

Schreib uns, wenn etwas nicht funktioniert. Nenne dabei dein Board und die Fehlermeldung.

Wir prüfen jeden Kommentar vor der Veröffentlichung. Deine E-Mail-Adresse bleibt bei uns.