Hallo,
die Potis sind relativ hochohmig. Das Datenblatt eines Atmega32 verrät zu den analogen Eingängen:
Also 10kOhm oder niedriger wären ideal für die Potis. Ansonsten musst du dem AD-Wandler mehr Zeit geben, den internen Kondensator aufzuladen. Hat der nicht genug Zeit, werden die Werte beeinflusst von den vorherigen Messungen. Das dürfte der Effekt sein, den du beobachtest.The ADC is optimized for analog signals with an output impedance of approximately
10 kΩ or less. If such a source is used, the sampling time will be negligible. If a source
with higher impedance is used, the sampling time will depend on how long time the
source needs to charge the S/H capacitor, with can vary widely. The user is recommended
to only use low impedant sources with slowly varying signals, since this
minimizes the required charge transfer to the S/H capacitor.
Also ich sehe da prinzipiell 3 Möglichkeiten:
- das Poti niederohmiger wählen, z.B. die genannten 10kOhm oder weniger
- dem ADC mehr Zeit geben, d.h. nach dem internen multiplexen mehr Zeit einplanen bevor dann endgültig gemessen wird, oder mehrere Messungen an ein und demselben Eingang durchführen und dann entweder nur den letzten Wert verarbeiten oder einen Durchschnitt ausrechnen
- die Potis im Joystick lassen sich vielleicht nicht auswechseln, damit das Signal für den ADC dennoch niederohmiger wird, könnte man einen Operationsverstärker dazwischen schalten (als Spannungsfolger bzw. Impedanzwandler)
Grüße,
Bernhard
Lesezeichen