Zitat Zitat von xxrider Beitrag anzeigen
Hallo,
ich bin ein Neuling in Sachen Arduino und habe eine Frage:
Wie kann ich einen Spannungswert mehrfach abfragen (z. B. innherhalb von 10 Sekunden) und erst, wenn der Wert jedesmal innerhalb dieses 10-Sekundenintervalles einen definierten Schwellenwert unterschreitet eine Aktion durchführen?
Es geht um einen Akku, der wenn er entladen ist, abgeschalten werden soll, aber nicht wenn der Schwellwert nur kurzzeitig unterschritten wird.
Danke!
wie Ceos schon schrieb, arithmetische Mittel gehen und finde ich auch ausreichend.

Direkt am Analogpin misst du einen Rohwert zwischen 0...1024, das ist dein Messbereich (Achtung! darf direkt am Arduino Pin hächstens 5V sein, bei manchen Arduinos sogar nur 3.3V!);

Du musst ihn dann in float umwandeln und nimmst einfach das Mittel zwischen dem bisherigen Durchschnittswert und deinem aktuellen:

float Durchschnitt;

Durchschnitt = (Durchschnitt + (float)analogRead(MessPin) ) /2;

kurze kleine Ausreißer werden nicht viel ausmachen, mit der Zeit wird dann bei dauerhaft niedrigem Messwert auch deine Schwelle unterschritten.
Ansonsten ist bei häufigen starken Ausreißern ein anderes Verfahren nötig (z.B. Median) - das ist aber deutlich komplizierter.
Das ganze packst du in deine Arduino-Funktion loop().

Zwischen die einzelnen Messungen kommen dann am einfachsten delay(ms-Anzahl), bei 10 s also delay(10000);
es reicht aus zum testen, auch dafür gibt es elegantere Methoden.

Für absolute Anfänger empfehle ich allerdings: mach erst mal ein Arduino Tutorial!