Hallo, wir müssen bei einem Schulprojekt eine selbstständige Bewässerungsanlage für eine Pflanze bauen und programmieren. Allerdings funktioniert unser Programm nicht und wir wissen nicht, warum.
int Status=0;
int ZeitBeginnGiessen;
int ZeitGiessenEnde;
int ZeitProgrammende;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <Servo.h>
Servo S1;
int messwertHelligkeit;
int messwertTemperatur;
int messwertFeuchtigkeit;
int t=5000;
void setup() {
S1.attach(9);
lcd.init();
lcd.backlight();
pinMode(13, OUTPUT);
S1.write(0);
}
void loop() {
messwertFeuchtigkeit=analogRead(A0);
messwertTemperatur=analogRead(A1);
messwertHelligkeit=analogRead(A2);
void AnzeigeMessswerte();
if(messwertFeuchtigkeit<400 && messwertTemperatur>0 && messwertHelligkeit>350){
void Giessen();
void Beleuchtung();
ZeitGiessenEnde=millis();
if(Status==1 && ZeitGiessenEnde>ZeitBeginnGiessen){
void Giessende();
void AnzeigeMesswerte();
void Beleuchtung();
ZeitProgrammende=millis();
if(Status==2 && ZeitProgrammende>ZeitGiessenEnde){
Status=0;
void AnzeigeMesswerte();
void Beleuchtung();
}}}
void Giessen(){
S1.write(90);
delay(20000);
Status=1;
ZeitBeginnGiessen=millis();
}
}
void Giessende(){
S1.write(0);
Status=2;
}
void AnzeigeMesswerte(){
lcd.setCursor(0, 0);
lcd.print("Feuchtigkeit liegt bei: ");
lcd.print(messwertFeuchtigkeit);
lcd.print("%.");
delay(t);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("aktuelle Temperatur: ");
lcd.print(messwertTemperatur);
lcd.print(" Grad Celsius.");
delay(t);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Helligkeit liegt bei: ");
lcd.print(messwertHelligkeit);
delay(t);
lcd.clear();
}
void Beleuchtung(){
messwertHelligkeit=analogRead(A2);
if(messwertHelligkeit<270){
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
}
if(messwertHelligkeit>350){
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
}
}
}