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.
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
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!
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 ... :(
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.