Nr.18 Tropfensensor

Mit einem Tropfensensor oder auch Flüssigkeitssensor kann man wie es der Name schon sagt eine Flüssigkeit detektieren. Dazu muss sich die Flüssigkeit direkt auf dem Sensor befinden. Es reicht bereits ein kleiner Tropfen aus, um einen eindeutigen Messwert zu erhalten.

Tropfensensor

 

Man kann den Sensor zum Beispiel als Regensensor verwenden. Sobald ein Tropfen auf den Sensor trifft, kann das Arduino-Board eine Aktion ausführen wie z.B. eine Markise einrollen, Jalousien schließen, einen Alarm auslösen oder einen Scheibenwischer betätigen.

Die Funktionsweise ist einfach. An den langen Kontaktstellen die den Sensor durchziehen liegt eine Spannung an (entweder + oder -). Sobald eine Flüssigkeit bspw. durch einen Tropen zwei Kontakte verbindet, fließt ein kleiner Strom von einem Kontakt zum Anderen. Dieser Wert wird im Sensor elektronisch aufbereitet und in Form eines analogen Signals an einen analogen Eingang des Boards übermittelt. Da das Board, wie bereits in vorherigen Tutorials beschrieben, keine elektrische Spannung als solche messen kann, wandelt es die am analogen Pin anliegende Spannung in einen Zahlenwert um. 0 bis 5 Volt entspricht einem Zahlenwert von 0 bis 1023 (Das sind 1024 Zahlen, da die Null als erster Zahlenwert gezählt wird).

Bei dem Flüssigkeitssensor liegt der Wert im trockenen bei null „0“. Sobald ein Tropfen Wasser auf die Kontakte des Sensors trifft, liegt der Wer bei ca „480“. Je mehr Tropfen sich auf dem Sensor befinden, desto höher ist der Wert.

Im ersten Code geht es nur darum, den Sonsorwert mit dem Arduino-Board auszulesen und mit dem „serial monitor“ darzustellen.

Aufbau und Material

Material: Arduino Mikrocontrollerboard, Feuchtigkeitssensor, Jumperkabel  (Materialbeschaffung: www.funduinoshop.com)

 

Hinweis zu Messungen:
Wir empfehlen, aufgrund der Elektrolyse durch das Wasser bzw. die Feuchtigkeit an den Sensoren, die Messungen nicht in einem Sekundenabstand durchzuführen. Aus Erfahrungen durch Tests direkt im Wasser, empfehlen wir einen Abstand von 15 Minuten zwischen jeder Messung. Bei Messungen im Sekundenbereich, bei direktem und durchgängigen Wasserkontakt, entstehen durch die Elektrolyse nach ca. 24 Stunden Schäden am Sensor.

Die Programmierung ist sehr einfach und ähnelt sehr stark dem Auslesen von Potentiometern oder dem Auslesen des Feuchtigkeitssensors, da einfach nur ein analoger Wert ausgelesen wird.

Code:


int messwert=0; //Unter der Variablen "messwert" wird später der Messwert des Sensors gespeichert.

void setup() //Hier beginnt das Setup.

{

  Serial.begin(9600); //Die Kommunikation mit dem seriellen Port wird gestartet. Das benötigt man, um sich den ausgelesenen Wert im "serial monitor" anzeigen zu lassen.

}

void loop() // Hier beginnt der Hauptteil

{

 messwert=analogRead(A0); //Die Spannung an dem Sensor wird ausgelesen und unter der Variable „messwert“ gespeichert.

  Serial.print("Feuchtigkeits-Messwert:"); //Ausgabe am Serial-Monitor: Das Wort „Feuchtigkeits-Messwert:" 

  Serial.println(messwert); //und im Anschluss der eigentliche Messwert.

  delay(500); // Zum Schluss noch eine kleine Pause, damit nicht zu viele Zahlenwerte über den Serial-Monitor rauschen.

}

Erweiterung des Programms:

Nun soll ein Alarmsignal mit Hilfe eines Piezo-Speakers ertönen, sobald ein Regentropfen auf den Sensor trifft. Als Grenzwert wird in diesem Fall der Messwert 400 festgelegt, da bei einem Tropfen auf dem Sensor ein Messwert von ca. 480 zu erwarten ist.

Aufbau:

 

Programm:

int messwert=0;

int PIEPS=6; //Mit dem Namen "PIEPS" wird jetzt der Pin6 bezeichnet, an dem ein Piezo-Speaker angeschlossen wird.

void setup()

{
Serial.begin(9600);

pinMode (6,OUTPUT); //Im Setup wird der Pin6 als Ausgang festgelegt.

}

void loop()

{

 messwert=analogRead(A0);

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

 Serial.println(messwert);

 delay(500);

 if (messwert>400 ) //Hier beginnt die Abfrage: Wenn der Sensorwert größer als "400" ist, dann...

{

digitalWrite(PIEPS, HIGH); //...soll der Piezo-Speaker piepsen.

}

else //...ansonsten...

{

digitalWrite(PIEPS, LOW); //...soll er leise sein.

}

}