Forum: Mikrocontroller und Digitale Elektronik Encoder Geschwindichkeit bestimmen


von The F. (frotzzi)


Lesenswert?

Hallo zusammen,

ich habe einen Drehregler der 3000 Impulse hoch und runterzählen muss. 
Es funktioniert auch soweit alles super. Aber man muss ziemlich viel 
drehen, um den Wert 3000 zu erreichen.


Somit würde ich es gerne so haben, dass wenn ich schnell drehe so soll 
auch der Wert schneller an die 3000 kommt und wenn ich wieder langsam 
drehe soll es möglich sein einen genauen Wert einzustellen.

Was ich bis jetzt versucht habe war einfacher Timer der jede 200mS 
vergleicht wie viele Schritte gemacht worden sind. Wenn z.b in 200mS 15 
Impulse gezählt worden sind (also schnelle Drehung) addiere ich + 100 
Impulse drauf usw.


Es funktioniert auch aber mich stören die Sprünge, ich würde gerne ein 
exponentielles Wachstum haben. Gibt es da bessere Lösungen?

Beitrag #5591259 wurde von einem Moderator gelöscht.
von m.n. (Gast)


Lesenswert?

The F. schrieb:
> Gibt es da bessere Lösungen?

Ein Schrittmotor als Drehgeber löst sehr fein auf: 
Beitrag "Schrittmotor als Drehgeber mit Dynamik, AVR"

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Es geht speziell um eine automatische Umschaltung der 
Zählgeschwindigkeit, die hat der Schrittmotor auch nicht. Das muss schon 
die Software erledigen.

In einem alten Amateurfunkgerät (IC211 Icom) war am recht großen 
Drehknopf ein Schwungrad angebracht, und eine magnetisch betätigte 
Bremse. Beim Unterschreiten einer Geschwindigkeitsstufe wurde 
abgebremst.

von Guido Körber (Gast)


Lesenswert?

Was Du da machen willst ist eine ballistische Beschleunigungskurve. Die 
wird auch bei Mäusen eingesetzt, mehr oder weniger gut…

Der Trick dabei ist nicht nur einen Sprung zu machen, den merkt man dann 
natürlich. Sauberer wird es, wenn es 8 oder mehr Stufen sind, die 
exponentiell hoch gehen. Und dann auch keinen fixen Wert aufaddieren, 
sondern die tatsächlichen Impulse mit einem langsam ansteigenden Wert 
multiplizieren.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

The F. schrieb:
> Es funktioniert auch aber mich stören die Sprünge, ich würde gerne ein
> exponentielles Wachstum haben. Gibt es da bessere Lösungen?
Das hier funktioniert bei mir super:
http://www.lothar-miller.de/s9y/archives/71-Drehgeberauswertung-mit-Beschleunigung.html

The F. schrieb:
> Was ich bis jetzt versucht habe war einfacher Timer der jede 200mS
> vergleicht wie viele Schritte gemacht worden sind. Wenn z.b in 200mS 15
> Impulse gezählt worden sind (also schnelle Drehung) addiere ich + 100
> Impulse drauf usw.
>
> Es funktioniert auch aber mich stören die Sprünge
Dann mach die Stufen feiner und zähle nicht einfach die Schritte hoch, 
sondern zähle z.B. pro Schritt 5 auf einen internen Zähler. Und wenn 
schneller gedreht wird, dann zählst du pro Schritt einen höheren Wert 
(z.B. wie viele Takte pro 200ms aufgelaufen sind) auf deisen Zähler. Und 
vor der Verwendung teilst du den Zähler auf einen handlichen Wert und 
bist fertig.

von Falk B. (falk)


Lesenswert?


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.