www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SCHRITTMOTOR ALS ROTARY ENCODER


Autor: Atter See (attersee)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich baue gerade einen Signalgenerator, bei dem ich die 
Frequenzeinstellung mit einem Rotary Encoder machen will. Als 
Sparmeister fand ich etliche Schaltungsvorschläge (auch in diesem 
Forum), wo ein alter Schrittmotor als Geber verwendet wird. Die Idee 
gefiel mir, doch bei genauerer Betrachtung der Schaltungen erkannte ich, 
dass die ja nur beschränkt einen Gray-Code liefern, denn die arbeiten – 
bedingt durch das Generatorprinzip - allesamt nur ‚monostabil’. 
Unterschreitet die Winkelgeschwindigkeit der Drehung einen bestimmten 
Wert, so stellt sich unabhängig vom zuletzt gültigen Wert ein 
‚Ruhezustand’ (z.B. binär ‚11’) ein. Das führt wohl zu einer 
Verfälschung der Sequenz. Da wird etwas angefügt, das (in den meisten 
Fällen) nicht gilt. Genauso ergibt sich ein Problem, wenn ich aus dem 
Ruhezustand wieder losdrehe, denn da ist alles möglich, auch eine 
vorgetäuschte Drehrichtungsumkehr (beim 1. Schritt).

Ich erwarte mir bei der Bedienung eine korrekte Reaktion bis hin zum 
letzten ‚Polsprung’. Habe ich eine Stufe zu weit gedreht, will ich durch 
Zurückdrehen (um eine Stufe) auf dem Sollwert landen.

Mir ist auf die Schnelle weder eine gute Lösung für eine Hardware, noch 
für eine SW eingefallen. Ich nehme an, dass ich nicht der Erste bin, der 
über diesen Punkt stolpert. Vielleicht hat jemand einen Lösungsansatz 
oder gar eine Lösung. Bei der SW habe ich die Rotary Encoder Routinen 
von Sprut übernommen (PIC16F876A, Assembler), den ich gelegentlich als 
verlässliche Quelle nutze.

Wenn der Aufwand zu groß werden sollte, steige ich allerdings auf eine 
optische Lösung um.

Danke für Eure Hilfestellung.

Johann

Autor: Frank N. (arm-fan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube in der ELRAD(?) war mal so eine Schaltung, die
ich auch mal nachgebaut habe. Wenn ich mich nicht irre, hieß
das Projekt "Backstep". Funktionierte ganz gut, auch bei
einzelnen Schritten. Aber ich glaube das find ich nicht mehr wieder.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, war in der Elrad, habe ich auch noch irgendwo, funktionierte gut.
Der Trick war, die 2. Wicklung zu bestromen. Dadurch gab es einerseits 
ein fühlbare Rastung und zweitens gut auswertbare Mindestspannungen.
Ich habe es damals nur aus Interesse nachgebaut - inzwischen sind ja 
ordentliche Geber gut erhältlich und bezahlbar.

Autor: Atter See (attersee)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Herzlichen Dank für die Hinweise. Klingt interessant. Wenn mir jemand 
den Artikel scannen / kopieren könnte, wäre das natürlich perfekt. Wenn 
das zu aufwendig ist, würde ich mir die Elrad Jahrgänge 1977 bis 1997 
auf CD nachkaufen (hatte ich nie). Da müßte es wohl enthalten sein.

Grüße, Johann

Autor: Frank N. (arm-fan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muß so ca. zwischen 94-96 gewesen sein.
Kann mal kramen, ob ich das Heft noch finde. Aber versprechen
kann ich nichts ;-)

An was ich mich ansonsten noch erinnern kann ist der OP.
Den mußte ich bestellen weil er nicht in der Bastelkiste lag.
TLC272, glaube ich...

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hilft dies weiter:

Shaft Encoder von Dhananjay Gadre, Arjun Sarwal, & Anish Mangal
http://www.projects-lab.com/?p=401

Autor: Jankey (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OP mit 0-Komperator 2 Dioden gegen zu hohe Spannung sichern -> Fertig

Autor: Reinhard R. (reirawb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo "Sparmeister",

Entschuldigung, das ich mich hier mal so unqualifiziert einmische,
aber soooo teuer sind doch die fertigen Drehencoder nun auch wieder
nicht, z.B.

Reichelt ALPS STEC12E08 für unter 3 Euro.

brauchste maximal noch 2 Pull-Up-Widerstände und fertich biste :-)
Mit der entsprechenden Software verpasst du keinen Tick mehr.

Reinhard

Autor: Alter Mann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Atter See (attersee)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin ganz überrascht ob der regen Unterstützung. Herzlichen Dank an 
alle vorweg.

@ crazy horse: Hast Du mit ‚ordentliche Geber’ rein mechanische 
‚Kontakt-Encoder’ gemeint? Optische oder elektrodynamische liegen ja 
deutlich jenseits 70 EUR. Ich bräuchte halt eher einen feinstufigeren 
Geber (s.u.).

@ arm-fan: Diese Elrad Schaltung dürfte also darauf ausgerichtet sein, 
aus Einzelschritten des ‚Generators’ noch immer saubere Signale zu 
erzeugen. Das ist auf jeden Fall interessant.

Was aber macht die Schaltung nach dem (sauberen) Einzelschritt. Wenn man 
zu drehen aufhört, müsste  – auf irgendeine raffinierte Art – eine 
Zwischenspeicherung der zuletzt gültigen Zustände erfolgen. Es gilt ja 
zu verhindern, dass die Schaltung (monostabil) in einen ihr eigenen 
Ruhezustand kippt, der nichts mit den zuletzt (induktiv) generierten 
Impulsen zu tun hat. Wird das schaltungstechnisch vermieden?

Frank, danke, dass Du wegen des Artikels (ohne ein Versprechen) kramen 
willst. Die Schaltung interessiert mich auf jeden Fall.

@ stefan: Schaue ich mir noch genauer an. Auf den ersten Blick sehe ich 
das eigentliche Problem nicht behandelt.

@ Jankey: Das ist schon klar, aber damit ist ja der Übergang zum 
Stillstand (und von dort weg) nicht gelöst. Nach dem Drehvorgang (wenn 
die induzierten Impulse weg sind) gehen die Verstärker / Trigger in eine 
Ecke, je nach Art der Schaltung.

@ reirawb: Das ist ja keinesfalls unqualifiziert. Das Stillstands- und 
Umkehrproblem gibt es da natürlich nicht und das Kontaktprellen wird man 
mit RC-Gliedern schon in den Griff bekommen. Ich habe an solche 
mechanischen Encoder wohl gedacht, habe sie aber dann verworfen, weil 
ich etwa 10.000 Stufen durchschreiten muss und die Winkelauflösung von 
diesen Dingern halt sehr grob ist, sodass ich dafür sehr viele (über 
400) volle Umdrehungen brauchen würde. Aber vielleicht geht es mit einem 
guten Schwungrad. Das muss ich mir nochmals überlegen. Ich habe auch 
schon daran gedacht, in die Software einen ‚Beschleuniger’ einzubauen.

@ Alter Mann: Diesen Artikel kenne ich. Auch der löst den Grenzübergang 
(Winkelgeschwindigkeit gegen Null, wenn also die Induktion ausbleibt) 
nicht. Aber vielleicht gibt es gar keine einfache Hardwarelösung (bei 
Verwendung eines Schrittmotors) und man muss sich der Problematik per 
Software nähern. Ich werde mir die möglichen Stillstands- und 
Umkehr-Bitmuster genau ansehen und versuchen, eine Systematik 
hineinzubringen.

Nochmals danke.

Grüße, Johann

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Ich mach mal Eigenwerbung:
http://www.elektrik-trick.de/sminterf.htm

Der letzte Zustand wird analog gehalten, wei die Komparatoren eine 
Hysterese besitzen. Das funktioniert ganz gut. Ggf. kann man mit den 
Vor- und Ballastwiderständen etwas variieren.

Einziger "schräger" Nebeneffekt: Nicht jeder Stepper macht bei jeder 
mechanischen Rastung genau einen Schritt.

Grüße
Michael

Autor: Atter See (attersee)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Michael: Herzlichen Dank für den Beitrag. Dein Artikel geht natürlich 
genau auf das (noch rechtzeitig erkannte) Problem ein. Schön, dass Du 
nicht nur eine theoretische Lösung, sondern gleich eine erprobte 
Schaltung parat hast. Das werde ich so übernehmen. Grüße aus dem 
Wienerwald, Johann

Autor: Ralf R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe auch nach einer robusten Impulsgeberlösung gesucht und nutze seit 
einer Woche einen Schrittmotor mit dementsprechender Schaltung. Alles 
bestens bis auf das Problem, dass wenn der Schrittmotor eine 
Erschütterung erfährt (z.B. Klopfen mit Schraubenzieher) es ebenso zu 
Schritten kommt ohne dass die Welle gedreht wurde.

Hat dieses Problem auch jemand von euch und kann ich es umgehen??

Benutze einen bipolar Motor mit 4 Leitungen.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe eventuell etwas ähnliches vor.
Möchte meine Drehbank mittels Steppern `automatisieren`.
Allerdings möchte ich weiterhin die Möglichkeit haben, die Drehe ganz 
normal zu benutzen, also selber kurbeln.
Meine Frage ist jetzt, ob ich es hinbekommen kann, daß die Elektronik 
meine manuellen Drehungen mitlesen kann, um ggf. beim nächsten Teil 
diese Positionen selbst anfahren zu können.
Schadet auch nicht, wenn die Elektronik weiß, wo welcher Schlitten 
steht.

Auch müsste ich wohl die induzierte Spannung im Stepper (glaube 
3,2V-Motor) auf ein gesundes Maß begrenzen aber trotzdem die Spannung 
der Treiberstufe, sollte der Stepper angesteuert werden, nicht mit 
dieser Schutzbeschaltung abfangen.

Habt Ihr da `know how` für mich oder gar Jemand, der das so gelöst hat?

Danke für`s Lesen

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Atter See (attersee)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Ralf,

Ich benutze einen Schrittmotor (2 getrennte Wicklungen) aus einem 5 ¼ 
Zoll Floppy Disk Laufwerk, zusammen mit der Schaltung von 
www.elektrik-trick (s.o.). Bei meinem Motor kann man mit Klopfen keinen 
Impuls auslösen.

Hinweisen möchte ich aber auf den Umstand, dass es bei der Verwendung 
eines Steppermotors als Rotary Encoder zu undefinierten Zuständen bei 
Umkehr der Drehrichtung kommen kann. Ich habe aber schließlich einen 
Algorithmus gefunden, der in der Umgebung des Umkehrpunktes eine gute 
Feineinstellung zulässt. Das Prinzip (nicht den Code) habe ich damals in 
irgendeinem Forum kurz beschrieben.

@ Gast (vorletzter Beitrag)

Aus meiner Sicht ist ein inkrementaler Geber für die Positionierung bei 
einer Werkzeugmaschine ungeeignet, - ein 'umgewidmeter' Schrttmotor, mit 
all den Unsicherheiten am Umkehrpunkt, erst recht. Ich erinnere mich an 
ein Produkt (aus der Meßtechnik) mit einem Servosystem, das lineare 
Glasmaßstäbe verwendete und bei dem es immer wieder zu massiven 
Störungen kam, die es theoretisch nicht hätte geben dürfen, - wie 
betont, theoretisch.

mfg, attersee

Autor: hownottobeseen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der hier darf IMO auch nicht fehlen, wenns um Stepper als Rotary Encoder 
geht:

http://www.webx.dk/oz2cpu/20m/encoder.htm

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wir haben bei uns einen Netzwerkanalysator rumstehen. Der verwendet 
anscheinend einen Gleichstrommotor als Rotationsenkoder. Da gehen 
wirklich nur 2 Drähte weg. Ich denke, dass es Gleichstrommotoren mit 
mechanischen Kommutator gibt, welche beim Drehen eine pulsierende 
Gleichspannung ausgeben. Zählt man die Pulse, so hat man den Drehwinkel. 
Die Polarität gibt den Drehwinkel aus. Mit 2 Komparatoren hat man 
einfache Up-Down Signale.
Ach ja die Schaltschwellen probiert man entweder aus, oder man berechnet 
die Rauschspannung und geht dann um einen Faktor n nach oben. Sicherlich 
ist am Ausgang des Motors auch ein einfacher Tiefpassfilter sinnvoll.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Danke für die vielen Antworten / Links
IMHO ist es mir nur schwer möglich, die Stepper ganz rauszunehmen - die 
sollen ja die Maschine mal antreiben ;)
Mir kam halt nur der Gedanke, daß man die händische Verstellung 
mithalten könnte der Stepper dreht sich dabei ja mit.
Eine optische Erfassung halte ich, Späne bedingt, für kontraproduktiv.
Wenns nicht geht, muß es halt so gehen - muß ja eh erst die Stepper 
irgendwie angeflanscht bekommen.

Wird wohl noch dauern, bis die Drehe von Alleine dreht :)

Autor: MaWin (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
> http://www.webx.dk/oz2cpu/20m/encoder.htm

Keine Hysterese, vergiss die Schaltung, typischer audiophiler 
high-ender, Hauptsache 330g Kupfer als Knopf und den verchromt, da darf 
die Elektronik schon mal zweitklassig sein.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.