Forum: Mikrocontroller und Digitale Elektronik Poti "entprellen"


von tubbu (Gast)


Lesenswert?

Hallo, ich habe ein paar Potis an meinen 90S2313 Angeschlossen.
Und zwar mit folgender Methode:

Der Poti hängt an +5V, dann gehts zu einem 100nF-C gegen Masse, von
dort aus über einen kleinen Widerstand ( glaube so um die 500Ohm).
Durch laden unt entladen über den Portpin lässt sich so ganz gut der
Potiwert bestimmen. Ich erhalte bei einem 100K Poti z.B. Integer-Werte
Werte zwischen 300 und 1400, diese Teile ich mit einem Algorithmus so
herunter, dass ich auf Werte zwischen 0 und 127 komme.
Jetzt habe ich das Problem, dass die Methode nicht besonders konstanz
zu arbeiten scheint, bei manchen Potistellungen bewegt sich der Wert
ständig zwischen zwei Werten hin und her, z.B. 54 und 55.

Hat jemand eine Idee das zu kompensieren, ohne, dass das poti sehr viel
träger wird?
Ich habe schon probiert eine Variable hochzuzählen, wenn der Wert
konstant bleibt und nur dann, wenn diese inen bestimmten Wert erreicht
hat auszuwerten, aber dadurch reagiert der Poti zu langsam und manchmal
überhaupt nicht.

Hat jemand eine andere Idee?

Danke schonmal...

von Benedikt (Gast)


Lesenswert?

Bau eine Hysterese ein:
Nur wenn der Wert um 2 abweicht wird er übernommen.

von tubbu (Gast)


Lesenswert?

Hm, halbiert mir das nicht die Auflösung?

von Dave (Gast)


Lesenswert?

auflösung bringt einem ja nur dann was, wenn sie auch richtig ausgenutzt
werden kann, und das scheint ja nicht der fall sein

dave

von tubbu (Gast)


Lesenswert?

hm, das hört sich ja schlecht an.
Die Auflösung von 7 Bit bräuchte ich schon.

Geben die internen A/D wandler eigendlich bessere Werte aus?
Wenn ja, würde ich mir einen Mega8 holen und damit arbeiten.

Aber das eigendlich nur ungern.

von Thomas Burkhardt (Gast)


Lesenswert?

Hi Tubbu,

bei deiner Division verlierst du schon Faktor Zehn an Auflösung :)
Da macht die Zwei nun auch nix mehr.

von tubbu (Gast)


Lesenswert?

ich brauche ja eine Auflösung von 7 Bit, deshalb.

von Thomas Burkhardt (Gast)


Lesenswert?

Durch Mittelwertbildung kannst du das Rauschen etwas unterdrücken - geht
dann halt auf Kosten der Geschwindigkeit.
So Pi mal Daumen sollte die Mittelung über vier Werte eine Verbesserung
um Faktor zwei bringen. Wenn das noch schnell genug für dich bleibt,
musst du dich nicht mal mit nem gleitenden Mittelwert rumschlagen.

Achja, es ist dann natürlich sinnvoll die ungeteilten Werte zur
Mittelwertbildung heranzuziehen, sonst verringerst du schon vorher
sinnloserweise die Dynamik.

von Ratber (Gast)


Lesenswert?

Also wenne unbedingt schnelle 7 Bit haben willst dann gibt es ja nur 2
Möglichkeiten.


1. Du schaltest einen Genaueren AD-Wandler davor und sorgst auch für
entsprechende Beschaltung.


Da das Platz und Geld kostet kannste auch gleich Variante 2 nehmen.


2. Nimm nen M8 und mach es entsprechend wie benedikt es schon
vorgeschlagen hat.


Ich mach das auch so mit nem M16 (Is AD-mÄßIG gleiche Hardware) bei 8
Bit auflösung.

Die letzten 4 Bit werden einfach weggelassen und schon isser
superstabil "und" schnell ;)

Preismäßig tut sich da auch kaum was wesentliches und du bekommst noch
einige Extras neben dem Speicher und dem Takt dazu (Siehe Datenblatt)


Is das nen Vorschlag ?

von Markus_8051 (Gast)


Lesenswert?

Hi Tubbu,

die Vorschläge dir hier kamen, mit der Hysterese oder der
Mittelwertbildung sind nicht schlecht, habe ich auch schon so gemacht:
Mittelwert über vier Werte. Wenn Du das ganze vor dem Runterteilen
machst, sinkt auch die Auflösung nicht unter 7 bit.

Viel Erfolg,
Markus_8051

von tubbu (Gast)


Lesenswert?

danke an alle.
Ich habe mittlerweile festgestellt, dass wenn ich vier potis abfrage
das ganze auch ohne mittelwertbildung einfach zu langsam geht.

Ich werde deshalb wohl doch auf einen Mega8 umsteigen (müssen)

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
Noch kein Account? Hier anmelden.