In diesem Abschnitt wird mithilfe der Entwicklungsumgebung von Arduino (IDE) das Ein- und Ausschalten der Pumpe programmiert. Die Pumpe soll lediglich innerhalb der Bodenfeuchtigkeitsstufe "Trocken" laufen. Die Pumpe kann mithilfe des digitalen Eingangs des Relais eingeschaltet bzw. ausgeschaltet werden.

Es wird der Programmcode aus dem vorherigen Abschnitt benötigt:

int datenpin_LED = 5;

int bodenfeuchtigkeit;
int bodenfeuchtigkeit_einstufungswert = 1000;
String bodenfeuchtigkeit_stufe;
int datenpin_sensor = 34;

void setup() {
  Serial.begin(9600);
  pinMode(datenpin_LED, OUTPUT);
}
void loop() { bodenfeuchtigkeit = analogRead(datenpin_sensor); Serial.println(bodenfeuchtigkeit); if (bodenfeuchtigkeit < bodenfeuchtigkeit_einstufungswert) { bodenfeuchtigkeit_stufe = "Trocken";
digitalWrite(datenpin_LED, LOW); } else if (bodenfeuchtigkeit >= bodenfeuchtigkeit_einstufungswert) { bodenfeuchtigkeit_stufe = "Nass";
digitalWrite(datenpin_LED, HIGH); } delay(500); }

 

Der mit dem digitalen Pin des Relais verbundene Datenpin wird in der neuen Variable "datenpin_Motorsteuerung" gespeichert. Mithilfe der Funktion "pinMode()" wird der Datenpin als OUTPUT deklariert.

int datenpin_LED = 5;
int datenpin_Motorsteuerung = 21; int bodenfeuchtigkeit; int bodenfeuchtigkeit_einstufungswert = 1000; String bodenfeuchtigkeit_stufe; int datenpin_sensor = 34; void setup() { Serial.begin(9600); pinMode(datenpin_LED, OUTPUT);
pinMode(datenpin_Motorsteuerung, OUTPUT); }
void loop() { bodenfeuchtigkeit = analogRead(datenpin_sensor); Serial.println(bodenfeuchtigkeit); if (bodenfeuchtigkeit < bodenfeuchtigkeit_einstufungswert) { bodenfeuchtigkeit_stufe = "Trocken";
digitalWrite(datenpin_LED, LOW); } else if (bodenfeuchtigkeit >= bodenfeuchtigkeit_einstufungswert) { bodenfeuchtigkeit_stufe = "Nass";
digitalWrite(datenpin_LED, HIGH); } delay(500); }

 

Die Pumpe soll lediglich während der Bodenfeuchtigkeitsstufe "Trocken" laufen. Innerhalb des If-Statements kann mit der Funktion digitalWrite() der Motorsteuerungs-Datenpin auf LOW bzw. HIGH geändert werden.

Das Relais schaltet bei einem LOW-Wert des Datenpins.

int datenpin_LED = 5;
int datenpin_Motorsteuerung = 21; int bodenfeuchtigkeit; int bodenfeuchtigkeit_einstufungswert = 1000; String bodenfeuchtigkeit_stufe; int datenpin_sensor = 34; void setup() { Serial.begin(9600); pinMode(datenpin_LED, OUTPUT);
pinMode(datenpin_Motorsteuerung, OUTPUT); }
void loop() { bodenfeuchtigkeit = analogRead(datenpin_sensor); Serial.println(bodenfeuchtigkeit); if (bodenfeuchtigkeit < bodenfeuchtigkeit_einstufungswert) { bodenfeuchtigkeit_stufe = "Trocken";
digitalWrite(datenpin_LED, LOW);
digitalWrite(datenpin_Motorsteuerung, LOW); } else if (bodenfeuchtigkeit >= bodenfeuchtigkeit_einstufungswert) { bodenfeuchtigkeit_stufe = "Nass";
digitalWrite(datenpin_LED, HIGH);
digitalWrite(datenpin_Motorsteuerung, HIGH); } delay(500); }
Zuletzt geändert: Dienstag, 5. Januar 2021, 10:11