#include <EEPROM.h>
#define licht A0
#define pumpe 2
#define ADCMAX 1023.0
#define LMAX 5000.0
#define UMAX 2.0
uint8_t Feucht_sensor[4] = {A1, A2, A3, A4, A5};
uint8_t humidity[4];
float lichtgrenze = 750;
float feuchtgrenze = 1.2;
float pumpzeit = 20000;
float x;
void setup() {
Serial.begin(9600);
pinMode(pumpe, OUTPUT);
Serial.println("");
EEPROM.get(0, pumpzeit);
if(pumpzeit < 10000 || pumpzeit > 60000)
{
pumpzeit = 20000;
}
analogReference(2); // 2V
}
void loop() {
if(Serial.available() > 0)
{
float x;
x = Serial.parseFloat();
if(x>= 10 && x <= 60)
{
pumpzeit = x * 1000;
EEPROM.put(0, pumpzeit);
Serial.print("Die neue Pumpzeit ist");
Serial.println(x);
}
else
{
Serial.println("Ungültige eingabe");
}
}
for(int i = 0; i < 5; i++)
{
humidity[i] = 5 / adcMax * analogRead(Feucht_sensor[i]); // adc -> Volt
if(humidity[i] => feuchtgrenze)
{
x++;
}
}
if((x => 3) && LMAX / ADCMAX * analogRead(licht) > lichtgrenze && UMAX / ADCMAX * analogRead(feucht) > feuchtgrenze)
{
digitalWrite(pumpe, HIGH);
delay(pumpzeit);
digitalWrite(pumpe, LOW);
}
else
{
delay(2000);
}
}