Hallo, ich gebe mir auf ein Display etwa 4x pro Sekunde eingelesene ADC Werte aus. Es handelt sich um eine Spannung die in mV ausgegeben wird. Das klappt soweit nur gibt es einen optischen Schönheitsfehler. Die Anzeige springt zwischen 5014 5000 4986 OK 14mV ist wohl meine Auflösung pro ADC Schritt. Gibt es eine Möglichkeit das die Anzeige sich selber in 1mV Schritten "nachzieht"? 5000, 5001, 5002, 5003, 5004, 5005 usw. Beste Hohoho Grüße, AVRli...
for i = alter messwert to neuermesswert print i next i
@ AVRli (Gast) >Gibt es eine Möglichkeit das die Anzeige sich selber in 1mV Schritten >"nachzieht"? Ja, nennt sich Filter, hier einfach der Mittelwert. Das macht aber deine Anzeige langsamer. MFG Falk
AVRli schrieb: > Gibt es eine Möglichkeit das die Anzeige sich selber in 1mV Schritten > "nachzieht"? Sicher Mach eine Variable, die enthält den Wert der anzuzeigen ist (die Var ist neu), nennen wir sie displayValue Und dann gibt es noch eine Variable, die den neuen Wert enthält (die Var hast du schon), nennen wir sie mal measuredValue und anstelle dass du wie bisher measuredValue einfach aufs Display klatscht ...
1 | showValue( measuredValue ); |
... machst du
1 | if( measuredValue > displayValue ) |
2 | displayValue++; |
3 | |
4 | else if( measuredValue < displayValue ) |
5 | displayValue--; |
6 | |
7 | showValue( displayValue ); |
und schon führst du den angezeigten Wert schön langsam dem Messwert hinterher. Bei groben Sprüngen im Messwert wird es allerdings ratsam sein, displayValue gleich in 1 Sprung auf den Messwert zu setzen, sonst dauert das Nachführen sehr lange.
1 | if( measuredValue > displayValue ) { |
2 | if( measuredValue - displayValue > 100 ) |
3 | displayValue = measuredValue; |
4 | else
|
5 | displayValue++; |
6 | }
|
7 | |
8 | else if( measuredValue < displayValue ) { |
9 | if( displayValue - measuredValue > 100 ) |
10 | displayValue = measuredValue; |
11 | else
|
12 | displayValue--; |
13 | }
|
14 | |
15 | showValue( displayValue ); |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.