PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : schrittmotor als tachometer ??? HEELP!



annegret
12.05.2005, 19:42
hi,

ein klitzekleines projekt für die uni macht mir da was kopfrauchen.
es soll ein schrittmotor für die analoge darstellung der geschwindigkeit benutzt werden. hierzu erhält der mikroprozessor 80c517a ein signal (wohl hal-sensor..) und soll dieses als 4bit-wort an den schrittmotor weitergeben. dieser dann soll ein analoges tachometer simulieren, also mit der geschwindigkeit kontinuierlich folgen und im falle eines total-chrashs langsam zum anschlag zurück wandern. ; )
bislang weiss ich nur, dass der stepper wohl 4 unterschiedliche zustände unterscheidet, diese also per routine irgendwie rauf- und runterzählen muss.. ansonsten bin ich komplett ideenfrei...
naja, da wollt ich mal wissen, ob nicht einer/eine von euch schon mal so ein programm in c geschrieben hat, an dem ich mich orientieren kann. es geht mir hier bestimmt nicht drum, etwas abzukupfern. aber um selber eine vorstellung davon zu bekommen, wie ich als ziemlicher programmier-laie so ein programm aufbaue.. dafür wäre ein fertiges beispiel mehr als super..
also denne, schöne pfingstsonne an die rechner...

susanne

Sandro
13.05.2005, 11:50
Mit einem fertigen Programm kann ich nicht dienen.

Wie wird das Signal vom Hal-Sensor aufbereitet?
Ich gehe jetzt mal davon aus das dir der Sensor Impulse pro Umdrehung liefert. Das heißt die Geschwindigkeitsinformation ist im Pulsabstand enthalten.
Man könnte bei solch einem Signal die Zeit messen die von einem zum nächsten Impuls vergeht. Diese Methode ist recht kompliziert und benötigt viel Rechenzeit.

Besser ist es die Anzahl der Impulse in einer bestimmten Zeit zu messen. Dazu benutzt du am besten einen der Zähler deines Controllers. Um die Messzeit zu realisieren stellst du einen der Timer auf die gewünschte Zeit ein und lässt ihn einen Interupt auslösen. In der Interuptroutine liest du den Zähler aus und setzt ihn danach wieder auf 0. Den erhaltenen Wert legst du jetzt am besten im RAM ab und verlässt den Interupt. Zu viel sollte da nicht drin stehen.

Dein Hauptprogramm hat jetzt die Aufgabe die Zahl im RAM in eine Motorposition umzuwandeln. Die derzeitige Position des Motors musst du natürlich auch speichern. Jetzt vergleichst du die Soll mit der Istposition und bewegst den Motor so lange in die entsprechende Richtung bis sie übereinstimmen.

Ein total-chrash lässt sich recht leicht erkennen. Bleiben plötzlich die Impulse aus ist dieser Fall eingetreten.


Ach ja. Gute Informationen zu Schrittmotoren findest du hier (https://www.roboternetz.de/schrittmotoren.html)
Auch die benötigte Schrittfolge an den Motoranschlüssen.

Ich hoffe das hat etwas geholfen.

20.05.2005, 08:48
Mit einem fertigen Programm kann ich nicht dienen.

Wie wird das Signal vom Hal-Sensor aufbereitet?
Ich gehe jetzt mal davon aus das dir der Sensor Impulse pro Umdrehung liefert. Das heißt die Geschwindigkeitsinformation ist im Pulsabstand enthalten.
Man könnte bei solch einem Signal die Zeit messen die von einem zum nächsten Impuls vergeht. Diese Methode ist recht kompliziert und benötigt viel Rechenzeit.

Besser ist es die Anzahl der Impulse in einer bestimmten Zeit zu messen. Dazu benutzt du am besten einen der Zähler deines Controllers. Um die Messzeit zu realisieren stellst du einen der Timer auf die gewünschte Zeit ein und lässt ihn einen Interupt auslösen. In der Interuptroutine liest du den Zähler aus und setzt ihn danach wieder auf 0. Den erhaltenen Wert legst du jetzt am besten im RAM ab und verlässt den Interupt. Zu viel sollte da nicht drin stehen.

Dein Hauptprogramm hat jetzt die Aufgabe die Zahl im RAM in eine Motorposition umzuwandeln. Die derzeitige Position des Motors musst du natürlich auch speichern. Jetzt vergleichst du die Soll mit der Istposition und bewegst den Motor so lange in die entsprechende Richtung bis sie übereinstimmen.

Ein total-chrash lässt sich recht leicht erkennen. Bleiben plötzlich die Impulse aus ist dieser Fall eingetreten.


Ach ja. Gute Informationen zu Schrittmotoren findest du hier (https://www.roboternetz.de/schrittmotoren.html)
Auch die benötigte Schrittfolge an den Motoranschlüssen.

Ich hoffe das hat etwas geholfen.Jau, sehr fein. Vielen Dank für die ausführliche Antwort, damit kann ich auf jeden Fall mal die grobe Programmstruktur entwickeln...

Also, denn mal Sonnenschein,

Gruß, Susanne