www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Winkelsensor


Autor: Hans Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Chris D. (myfairtux) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hans Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hans Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hans Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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°.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Tauwetter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Billy der Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

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.