Dieser Bauvorschlag enthält ein Schema, wie der Arduino mit dem Bodenfeuchtigkeitssensor 0193, einer RGB-LED und einer Stromquelle betrieben werden kann. Statt einen Arduino UNO, kann man natürlich auch einen günstigeren und kleineren Nano, Micro oder Mini verwenden.
Mit der RGB-LED können diverse Farbmischungen generiert werden. Im Programmcode sind die Farben Rot, Orange und Grün, wie bei einer Ampel verwendet und der Blauanteil wird eigentlich gar nicht verwendet.
Als Stromversorgung bietet sich die Stromversorgung über die USB-Buchse, per Batterie oder mit Hilfe eines 9V Netzteils an.
///////////////////////////////////*DEFINITIONEN*/////////////////////////////////// /*SENO193*/ const int Luftwert = 580; //Trage hier deinen Messwert ein, wenn der Sensor frei herumliegt const int Wasserwert = 290; //Trage hier deinen Messwert ein, wenn der Sensor ganz in Wasser steht int Drittel = (Luftwert - Wasserwert)/3; int Messwert = 0; //Mit dieser Variabel werden die Messwerte gespeichert /*RGB*/ /*Die blaue LED wird eigentlich nicht benutzt aber sie wurde trotzdem im Code hinterlegt*/ #define LED_BLUE 3 //Die blaue RGB-LED wird am Pin3 angesteuert #define LED_GREEN 5 //Die grüne RGB-LED wird am Pin5 angesteuert #define LED_RED 6 //Die rote RGB-LED wird am Pin6 angesteuert ///////////////////////////////////*SETUP*/////////////////////////////////// void setup() { /*RGB*/ pinMode(LED_BLUE, OUTPUT); //Definerte den PIN der blauen RGB-LED als Ausgang pinMode(LED_GREEN, OUTPUT); //Definerte den PIN der grünen RGB-LED als Ausgang pinMode(LED_RED, OUTPUT); //Definiert den PIN der roten RGB-LED als Ausgang Serial.begin(9600); //Startet die serielle Kommunikation } ///////////////////////////////////*LOOP*/////////////////////////////////// void loop() { Messwert = analogRead(A0); //Misst die Umgebungsfeuchte beim Sensor 0193 /*Kontrolle der Funktion*/ SerialMonitor(); /*RGB*/ RGB(); delay(1000); //1 Sekunde Pause } ///////////////////////////////////*WEITERE FUNKTIONEN*/////////////////////////////////// void SerialMonitor (){ /*Gibt "Sehr feucht" über den seriellen Monitor aus, wenn der Messwert im untersten Drittel liegt*/ if(Messwert > Wasserwert && Messwert < (Wasserwert + Drittel)) { Serial.println("Sehr feucht"); } /*Gibt "Feucht" über den seriellen Monitor aus, wenn der Messwert im mittleren Drittel liegt*/ else if(Messwert > (Wasserwert + Drittel) && Messwert < (Luftwert - Drittel)) { Serial.println("Feucht"); } /*Gibt "Trocken" über den seriellen Monitor aus, wenn der Messwert im obersten Drittel liegt*/ else if(Messwert < Luftwert && Messwert > (Luftwert - Drittel)) { Serial.println("Trocken"); } } void RGB (){ if(Messwert > Wasserwert && Messwert < (Wasserwert + Drittel)) { //An der RGB-LED wird grün angezeigt analogWrite(LED_BLUE, 0); analogWrite(LED_GREEN, 255); analogWrite(LED_RED, 0); } else if(Messwert > (Wasserwert + Drittel) && Messwert < (Luftwert - Drittel)) { //An der RGB-LED wird orange angezeigt analogWrite(LED_BLUE, 0); analogWrite(LED_GREEN, 40); analogWrite(LED_RED, 250); } else if(Messwert < Luftwert && Messwert > (Luftwert - Drittel)) { //An der RGB-LED wird rot angezeigt analogWrite(LED_BLUE, 0); analogWrite(LED_GREEN, 0); analogWrite(LED_RED, 255); } }