Forum: Mikrocontroller und Digitale Elektronik PIC18 Schrittmotor Rampe berechenen


von Osscon (Gast)


Lesenswert?

Hallo,
ich bin gerade dabei eine Schrittmotor Steuerung zu Programmieren, 
jedoch ist das auf dem PIC18F46K80 nicht so einfach, da ich keine 
Division geschweige denn Fließkommazahlen zur Verfügung habe 
(Selbstverständlich kann man das auch per Software implementieren, dass 
ist aber nicht so einfach und nicht gerade schnell).
Ich überlege nun gerade wie ich eine Routine implementieren kann, die 
folgende Informationen zur Verfügung hat:
1. Komplette Distanz die zurückgelegt werden soll
2. Bisher zurückgelegte Distanz
Aus diesen beiden Informationen will ich jetzt eine Routine schreiben 
die die zu wartende Zeit errechnet mit Berücksichtigung von 
Beschleunigung und Entschleunigung.
Bisher habe ich sowas mit Tabellen realisiert, jedoch war da auch 
festgelegt wie viele Schritte für die Beschleunigung und Entschleunigung 
gemacht werden.
Jetzt kann das von einem bis 64000 Schritte variieren und die 
Beschleunigung soll nicht linear sondern in etwa aussehen wie ein 
Abschnitt der Cosinus Kurve bzw. eine langsame Beschleunigung und 
Entschleunigung.
Weiß jemand wie ich das in Assembler auf dem PIC realisieren kann?

von Wolfgang (Gast)


Lesenswert?

Osscon schrieb:
> ... die Beschleunigung soll nicht linear sondern in etwa aussehen wie
> ein Abschnitt der Cosinus Kurve bzw. eine langsame Beschleunigung und
> Entschleunigung.

Sag doch einfach ruckfrei.
https://de.wikipedia.org/wiki/Ruck

Die genaue Form des Beschleunigungsanstieges soll man IMHO nicht 
überbewerten.

> jedoch ist das auf dem PIC18F46K80 nicht so einfach, da ich keine
> Division geschweige denn Fließkommazahlen zur Verfügung habe

Das ging 1978 schon auf einem 6502 von Rockwell. In einen PIC18F46K80 
mit seinen 64k Flash wird das doch irgendwie rein zu kriegen sein. Man 
muss die Rechnung nur so anlegen, dass er nicht für jeden Schritt wilde 
Matrizen invertieren muss ;-)

Den Artikel "Generate stepper-motor speed profiles in real time" von 
David Austin kennst du.
http://www.embedded.com/design/mcus-processors-and-socs/4006438/Generate-stepper-motor-speed-profiles-in-real-time

von Osscon (Gast)


Lesenswert?

Nein den kannte ich noch nicht.
Ich finde das aber nicht gerade einfach zu verstehen abgesehen, davon 
dass dort doch noch eine Division stattfindet oder nicht?

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.