Hallo, versuche nun verzweifelt den Durchschnitt zu ermitteln aber es will nicht so recht klappen.
Ich habe nun den Code abgeändert und ich bekomme einfach kein vernünftiges Ergebnis.Wenn ich mir den ldrSensor über Serial anzeigen lasse, bekomme ich einen genauen Wert (konstant) aber wenn ich lichtsum mir anzeigen lassen kommen positive und negative Zahlen. Die Funktion soll nur alle paar sekunden aufgerufen werden und dann eine Messung machen und nach x durchläufen den Durchschnitt ermitteln.
void aussenlicht() // 20 Messungen duchschnitt bilden und dann Licht AN oder AUS schalten
{
/*for (int i = 0; i < 20; i++)
{
lichtWert += analogRead(ldrSensor);
}
lichtWert = lichtWert/ 20;
*/
static int count, lichtsum;
lichtsum += analogRead(ldrSensor);
count++;
if (count >= 5)
{ count = 0;
lichtWert = lichtsum/ 5;
}
Serial.println(lichtsum);
lcd.setCursor(0,2);
lcd.print(" ");
lcd.print(lichtWert);
Die Version mit der for Schleife hat funktioniert.
Habe es geändert aber ohne Erfolg. Jetzt gibt der Serialmonitor das aus : 0 , 253, 503, 759, 1014, 0, usw. bei lichtsum;
lichtWert ist jetzt 253 aber der LDR liefert nur 15 . Ich hatte angenommen das es einen Durchschnitt von ~ 15 geben sollte?!
Und wenn deine Serielle Ausgabe 0 , 253, 503, 759, 1014 ist, dann scheint der Mittelwert 253 auch korrekt zu sein. (der letzte Wert fehlt ja, da vorher zu Null gesetzt wird.)
Wie kommst du auf den Wert 15, den der LDR liefern sollte?
edit:
Probiers doch mal mit ein paar mehr Seriellen Ausgaben: