Hallo, ich muss zwei inkremental Encoder auslesen. Aus verschiedenen Gründen, kann ich keine Sensoren mit analog Ausgang verwenden. Wie kann ich ein inkrementelles Signal auslesen? Und an welche Pins schließe ich die beiden Sensoren an? Ich verwende einen ATmega32. Hat jemand vielleicht ein Bsp. Programm? Danke
Hans Peter schrieb: > Hallo, > > ich muss zwei inkremental Encoder auslesen. > Aus verschiedenen Gründen, kann ich keine Sensoren mit analog Ausgang > verwenden. > Wie kann ich ein inkrementelles Signal auslesen? Es gibt dort verschiedene Signalarten. Verbreitet sind zwei um 90° phasenversetze Digitalausgänge (TTL-Pegel o.ä.), meist mit A und B bezeichnet. Im Prinzip erhältst Du in Drehrichtung so etwas (AB): 00, 01, 11, 10, 00 ... usw. und entgegengesetzt: 10, 11, 01, 00, 10 ... usw. Nach jeweils vier Werten hast Du also wieder den Anfangszustand. > Und an welche Pins schließe ich die beiden Sensoren an? Da sollte sich jeder Eingangspin eignen - aber Du musst natürlich darauf achten, dass die Spannung bei High-Pegel passt. > Ich verwende einen ATmega32. > > Hat jemand vielleicht ein Bsp. Programm? Das solltest Du jetzt alleine schaffen :-) Übrigens gibt es auch Absolutwertgeber. Dort wird der absolute Wert ausgegeben, so dass man auch ohne Referenzfahrt immer exakt die Stellung des Encoders erhält. Chris D.
Hier steht eine ganze Menge zu dem Thema http://www.mikrocontroller.net/articles/Drehgeber Wenn danach noch etwas unklar sein sollte, kannst du dich ja wieder melden.
Hallo, danke dann schaue ich da mal. Den Sensor gibt es in verschiedenen Ausführungen. Einmal mit A und B als Ausgang, und dan noch mal mit A,B und Z (Referenzpuls) Welche Ausführung ist den einfacher zu verarbeiten oder genauer? LG & DANKE
Kann man so nicht sagen. Die Typen mit dem Referenzpuls haben noch einen zusätzlichen Ausgang, der dir mitteilt, wann der Encoder eine ganz bestimmte Lage einnimmt (Z = Zero) Aber abgesehen davon sind beide gleich auszuwerten.
Also wenn ich die Asuführung mit A,B und Z nehme, brauche ich dann noch die Refernzmarke, die ich bei Spannungsausfall anfahren muss, um wieder neu zu zählen? LG
Hans Peter schrieb: > Also wenn ich die Asuführung mit A,B und Z nehme, brauche ich dann noch > die Refernzmarke, die ich bei Spannungsausfall anfahren muss, um wieder > neu zu zählen? Das kommt auf deine Anwendung an. Die Frage ist, ob dir diese Referenzmarke überhaupt irgendetwas hilft. Denn wenn deine Anwendung so ist, dass der Encoder mehere Umdrehungen machen muss, kannst du zwar die Z-Referenzmarke wieder anfahren aber du kannst dann immer noch um n volle Umdrehungen des Encoders daneben sein. Stell dir ein Lautstärke-'Poti' an deiner Stereoanlage vor, welches rundum gedreht werden kann. Drehst da im Uhrzeiger, wirds lauter. Drehst du gegen den Uhrzeiger wirds leiser. Jetzt kannst du diesen Knopf, sagen wir 5 mal komplett im Uhrzeiger drehen um von minimaler zu maximaler Lautstärke zu kommen. Dann nehmen wir noch eine Z-Markierung dazu: Ein weißer Strich auf dem Knopf und ein Lämpchen, das immer dann aufleuchtet, wenn der Strich genau senkrecht steht. Hilft dir das in der Audio-Anwendung etwas? Wohl eher nicht. Du kannst zwar den Knopf wieder so drehen, dass der Strich senkrecht steht, aber über die dadurch eingestellte Lautstärke sagt dir das herzlich wenig.
Erzähl doch mal was über die Anwendung. Denn "Inkrementalgeber auslesen" kann je nach Anforderung mit einem AVR sehr einfach, aber auch völlig unlösbar sein, weil die direkte Auswertung per Software doch relativ langsam ist. Oliver
Es geht um eine Nachführung, und durch den Sensor will ich wissen, wo (welcher Winkel) die Achse gerade hat. Und bei Sturm soll er in die senkrechte fahren, das könnte ja dann meine Referenzmarke sein. Im datenblatt steht noch 184320 Impulse/Umdrehung. Ich brauche nur die Winkel von 0° - 180°.
Hans Peter schrieb: > Es geht um eine Nachführung, und durch den Sensor will ich wissen, wo > (welcher Winkel) die Achse gerade hat. Und der Encoder ist wie mit der Achse verbunden? Getriebe/Kein Getriebe Kann der Encoder mehrere Umdrehungen machen, wenn die Achse verfährt? > Und bei Sturm soll er in die > senkrechte fahren, das könnte ja dann meine Referenzmarke sein. Ist völlig wurscht. Bei der Referenzmarke geht es darum, 1 bestimmte Ausrichtung zu kennen. Ob die in deinem Fall bedeutet: Antenne ist waagrecht oder Antenne ist senkrecht, spielt kaum eine Rolle. Impulse mitzählen musst du so und so. Und ob du bei Sturm dann in die Position "Z schlägt an" oder in die Position "Impulszähler steht auf 6547" fährst, spielt auch keine Rolle mehr.
>Ich brauche nur die Winkel von 0° - 180°.
Dann nimm doch endlich ein Poti!
Und Du mußt auch keine Angst haben, dass dadurch der Stromverbrauch
Deiner Atmega32-Schaltung mehr als 160mA verbraucht; oder waren es
200mA?
Das hatten wir doch alles unter "Hans Peter" in den letzten Tagen schon
geklärt, hoffe ich.
Tauwetter schrieb: >>Ich brauche nur die Winkel von 0° - 180°. > > Dann nimm doch endlich ein Poti! :-) Viel zu banal. Da würde mann dann ja auch nach einem Stromausfall die absolute Winkellage der Achse wissen. Wo bleibt denn da die Herausforderung?
Zum Poti wäre lediglich noch anzumerken, dass man da nach Möglichkeit welche nehmen sollte, die für diesen Zweck gedacht sind (z.B. Servopoti). Normale Billig-Potis haben ein ziemlich großes Spiel(mehrere Grade) zwischen Achse und Schleifer,für genaue Winkelmessungen sind die daher nicht geeignet.
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.