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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.