Das war der passende Kick der mir gefehlt hat. Ein einfacher Rechenfehler... Vielen Dank ! Jetzt bekomme ich die richtigen Werte =)
Das war der passende Kick der mir gefehlt hat. Ein einfacher Rechenfehler... Vielen Dank ! Jetzt bekomme ich die richtigen Werte =)
Wenn Du trotzdem noch den Mittelwertüber mehrere Messungen nehmen willst, mach Dir ein Array mit der entsprechenden Anzahl Zellen und inkrementier bei jeder Messung den Pointer so schreibt es den Messwert immer in die nächste Zelle. Bei Überlauf (pointer > maxpointerwert) setze den Pointer auf Startwert. Dann hast Du einen Ringpuffer, der bei jeder Messung den ältesten Wert überschreibt.
Das Array wird beim Start mit 1023 in jeder Zelle initialisiert, dann kann Dir auch nicht eine Unterspannug detektiert werden. Bis alle Initalwerte überschrieben wurden ist dier Mittelwert halt höher als die tatsächlich gemessene Spannung.
Bie der Mittelwertbildung empfiiehlt sich eine Anzahl von Messwerten von 2 hoch n, also 2, 4, 8, etc. Damit ist die Division eine einfache Folge von Shift right. Wenn der Compiler gut ist, (habe ich bei Arduino noch nicht getestet) ersetzt er also eine Division durch 4, durch zwei mal Shift right und spart so deutlich Rechenzeit.
Lesezeichen