Hallo Allerseits !
Zu allererst : ich bin blutiger Anfänger, also erwartet nicht zu viel !
Zu meinem Problem: Bin gerade dabei mir eine Gießanlage für ein paar Pflanzen zu bauen. Das Gehirn bildet ein Arduino Nano. Alle fünf Sekunden wird aus 5 Messwerten ein Mittelwert errechnet und dann auf eine SD-Karte geschrieben. Ist die Feuchtigkeit kleiner als 60% soll an Pin 2 ein Relais geschaltet werden, welches wiederrum eine Wasserpumpe in gang bringt.
Das ganze habe ich auch schon soweit verkabelt und geschrieben. Nur will das irgendwie nicht richtig.. Die eingestellten Zeiten stimmen auf einmal überhaupt nicht mehr und die Pumpe fängt an im Dauerbetrieb zu laufen.
Könntet ihr evtl mal über den Sketch drüberschauen ob euch Probleme auffallen ?
Vielen Dank sschonmal !
#define Data A0
#include <SD.h>
int analogPin = 1;
int var;
int vari;
float SensorValue = 0;
float feuchtigkeit = 0;
float feucht[5];
const int chipSelect = 9;
void setup()
{
Serial.begin(9600);
pinMode(A0, INPUT);
Serial.print("Initializing SD card...");
pinMode(2,OUTPUT);
pinMode(10, OUTPUT);
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
return;
}
Serial.println("card initialized.");
}
void loop()
{
SensorValue = analogRead(Data);
feucht[1] = analogRead(Data);
delay(1000);
feucht[2] = analogRead(Data);
delay(1000);
feucht[3] = analogRead(Data);
delay(1000);
feucht[4] = analogRead(Data);
delay(1000);
feucht[5] = analogRead(Data);
feuchtigkeit = (feucht[1] + feucht[2] + feucht[3] + feucht[4] + feucht[5])/5;
var = feuchtigkeit;
vari = (100-((100/1023.0)*feuchtigkeit));
Serial.print("Bodenfeuchte: ");
Serial.print(vari);
Serial.println(" %");
Serial.println(var);
if(vari < 60)
{digitalWrite(2,HIGH);
delay(5000);
digitalWrite(2, LOW);
}
{ var = analogRead(Data);
vari = (100-((100/1023.0)*var));
File dataFile = SD.open("datalog.txt", FILE_WRITE);
if (dataFile) {
dataFile.println(var);
dataFile.close();
}
}
delay(1000);
}