DC Motor: Drehrichtung erkennen in C-Programm und MikroContr

Gast #338335
Lesenswert?

Hi Zusammen!
Vielleicht könnt Ihr mir helfen.
Ich soll hier in der Uni mit einem Mikrocontroller (ATMega16) einen
DC-Motor steueren (rauf,runter (schnell/langsam)) und die Richtung bzw.
Drehgeschwindigkeit auf einem angeschlossenen LCD-Display ausgeben.
In meinem Programm benutze ich zur Messung der Geschwindigkeit den ext.
INT2 des µC und einen Zähler in der zugehörigen Routine. Nun fehlt noch
die Erkennung der Drehrichtung. Diese soll auch erfolgen, wenn man den
Motor per Hand andreht... Dazu besitzt der Motor zwei Sensor-Pins.
Einen davon habe ich mit dem INT2 Pin des µC verbunden (für die
Messung).
Nun komme ich nicht weiter ... Wie kann ich nun erkennen, in welche
Richtung der MOtor dreht. Mir fehlt jegliches Konzept. In der Anleitung
steht nur: "Implement a C program which measures the rotation speed of
the Motor on basis of the two sensor signals provided by the motor. The
two signals are shift allowing a detection of the rotation direction".

Bitte helft mir .... :'((((

Danke,
ciao
Alex.
Gast #338338
Lesenswert?

Hi!
Danke für die schnelle Antwort.
Aber was bedeutet "the signals are shifted" im Hinblick auf den
Zeitpunkt vorher? Werden die Signale erst verschoben, wenn ich die
Richtung ändere oder werden sie mit jeder Richtungsänderung jeweils
verschoben?! Ich bin hier echt durcheinander ... :(
Gast #338340
Lesenswert?

Hi,

die Sensoren werden im 90 Grad-Winkel angebracht sein, und ein an der
Welle befestigtes Teil löst die Sensoren aus.

Beispiel:

Sensor 1 sitzt auf 12:00 Uhr
Sensor 2 sitt auf  03:00 Uhr
Die Betätigung steht gerade unten auf 6:00 Uhr.

Rechtsdrehung betätigt dann zuerst den Sensor 1 bei 12:00 Uhr, und
etwas später den auf 3:00 Uhr.  Rechtdrehung erkannt!


Linksdrehung betätigt zuerst Sensor 2, und später erst den Sensor 1.

Hoffe das hilft!


ts
Gast #338341
Lesenswert?

Und noch einer:
Bei einem 2bit-Graycode-Encoder haben die beiden Signale die gleiche
Frequenz und den gleichen Tastgrad, unterscheiden sich nur durch eine
Phasenverschiebung von 90°.
Wenn man einen Interrupt-Eingang auf eine Flanke reagieren lässt, kann
man anhand des Pegels auf dem anderen Pin feststellen, in welche
Richtung gedreht wird.

_____|-----|_____|-----|_____
__|-----|_____|-----|_____|--

Übrigens gibt es zu dem Thema auch den Lösungsansatz, einen
Schrittmotor zu verwenden (www.b-kainka.de,
http://www.elektrik-trick.de/sminterf.htm).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren