PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hall Sensoren einlesen



Bepo
08.06.2009, 17:03
Hallo,
moechte so einfach wie möglich einen Hall Sensor mit Bascom einlesen. Der Sensor ist in einem Hubmotor untergebracht, arbeitet zwischen 14 und 26 Hz, und dreht pro Puls 0,49556mm. Es gibt ein A Signal und 90 Grad versetzt ein B Signal.
Habe es noch nie gemacht daher waere ich ueber Starthilfe dankbar.
Der Hub wird ueber ein Relais in Bewegung gesetzt und wenn die Position x erreicht ist soll er einfach stoppen.
Grüsse Bepo O:)

021aet04
08.06.2009, 17:35
Das was du hast ist ein normaler Drehencoder. Du kannst mit einem Interrupt das ganz einfach lösen
Als Beispiel löst A den Interrupt aus

Wenn Interrupt auslöst
B überprüfen
Wenn B=1
Zähler +1
Wenn B=0
Zähler -1

Zu beginn muss man immer eine Referenzfahrt machen.

Bepo
08.06.2009, 17:43
Vielen Dank. Klingt ja wirklich einfach

Richard
08.06.2009, 18:56
Moin moin

Hmm, wenn der Zähler bei steigender Flanke hoch und bei fallender
heruntergezählt wird bleibt der Zähler = 0! Wie soll jetzt festgestellt
werden wie weit der Motor gedreht hat?

IRQ ist schon mal gut, den IRQ in Baskomm aber dann so
einstellen das nur bei Fallender ODRsteigender Flanke der
IRQ ausgelößt wird und dann eine Variable hoch oder herunterzählen.

Diese Variable wird dann im Hauptprogramm abgefragt und wenn der
gewünschte motorstand erreicht ist der Motor gestoppt. Danach wird die
Variable auf 0 gesetzt.

Soll das ganze auch in die Andere Richtung klappen, muß man den
A und B Ausgang verknüpfen. So kann man die Drehrichtung bestimmen
und je nach Drehrichtung eine ISR für herauf/herunterzählen aufrufen.
Dann sollte die Zählvariable aber nicht auf 0 gesetzt werden denn dise
wird von den beiden ISR`s auf der "momentanen" motorpositio
gehalten.

Ein tip welcher sensor verwendet wird (datenblatt) würde sicher
hilfreich sein.

Gruß Richard