Forum: Mikrocontroller und Digitale Elektronik DC Motor: Drehrichtung erkennen in C-Programm und MikroContr


von Macki (Gast)


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.

von Roland P. (pram)


Lesenswert?

Das geht genau so wie bei den Drehgebern, such mal nach drehgeber,
drehencoder, Gray-Code usw.

Evtl hilft das:
http://www.mikrocontroller.net/forum/read-4-37992.html#new

Gruß
Roland

von Apple B. (applebyte)


Lesenswert?

Casus Cnacktus: "The
two signals are shift(ed) allowing a detection of the rotation
direction".
a) Ref.-Punkt suchen/auswählen
b) vergleichen welches zuerst kommt
-> damit ist die Drehrichtung bestimmt!

von Macki (Gast)


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 ... :(

von Hauke Radtki (Gast)


Lesenswert?

Nunja das eine Signal kommt früher als das andere bei z.b.
rechtsdrehung. bei linksdrehung ist es genau umgekehrt.
So hab ich das auf jeden fall verstanden.

von Heinz Schenk (Gast)


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

von Rahul (Gast)


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).

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.