Schrittmotoren ansteuern

OP #7007241
Lesenswert?
• ▲
▼
Guten Tag.
Meine Aufgabe ist es ein Technikerprojekt weiterzuentwickeln.
Eine Selbstentworfene Schrittmotorkarte steuert zwei Schrittmotoren an. 
Dies funktioniert auch mit dem Programm des Vorgängers. Ich möchte ein 
eigenes Programm schreiben und nutze den Accelstepper.

Mirkocontroller:  ATMega 328P-PU
Schrittmotortreiber: DRV8825PWP

Pinbelegung:

Schrittmotorteiber1: Step_Pin = 11, Dir_Pin = 6
Schrittmotortreiber2: Step_Pin = 12, Dir_Pin = 13


Mit diesem Testprogramm laufen beide Motoren. Sobald ich nicht mehr mit 
Portmanipulation arbeite laufen beide nicht mehr und wenn ich z.B die 
Accelstepper LIB benutze läuft nur der Motor von Schrittmotortreiber 1.
Angehängte Dateien:
Gast #7007247
Lesenswert?
• ▲
▼
Jan S. schrieb:
> Mit diesem Testprogramm laufen beide Motoren. Sobald ich nicht mehr mit
> Portmanipulation arbeite laufen beide nicht mehr und wenn ich z.B die
> Accelstepper LIB benutze läuft nur der Motor von Schrittmotortreiber 1.

Wenn Du etwas änderst und es läuft nicht mehr, liegt es an deiner 
Änderung.
Das ist doch schon mal gut.
Also was genau änderst du?
OP #7007260
Lesenswert?
• ▲
▼
Mein Vorgänger nutzt in seinem Programm die Portmanipulation wie in 
meinem Testprogramm. Damit funktioniert es. Mir fehlen in dem Programm 
allerdings Funktionen wie Beschleunigen und deshalb möchte ich den 
Accelstepper nutzen. Mit dem Accelstepper läuft allerdings nur 
Schrittmotortreiber1 und Schrittmotortreiber2 nicht.
Moderator (Firma: Titel) Persönliche Seite #7007338
Lesenswert?
• ▲
▼
Jan S. schrieb:
> Angehängte Dateien:
> Testprogramm.jpg
Editierst du deine Software mit Paint?

Jan S. schrieb:
> Das Testprogramm so wie es auf dem Foto ist läuft.
Ja, dann ist der eigentlich uninteressant. Denn der Code, der nicht 
läuft, macht Probleme...

Jan S. schrieb:
> Mit dem Accelstepper läuft allerdings nur Schrittmotortreiber1 und
> Schrittmotortreiber2 nicht.
Ja, dann ist da wohl noch ein Fehler drin. Wie wäre es, wenn du einfach 
die Sourcedatei hier anhängst?

BTW: besorg dir mal schon ein Oszilloskop für später...
Gast #7007371
Lesenswert?
• ▲
▼
Dann wäre der nächste Schritt jeweils ein run() auszukommentieren um zu 
prüfen ob die Motoren für sich laufen.
Wenn das so ist, dann können die Instanzen noch falsch parametriert sein 
und ein run zuviele Schritte generieren muss und damit der andere nicht 
drankommt. Also erstmal versuchen langsam laufen zu lassen.

Oder MultiStepper verwenden wenn gleichzeitige Bewegungen nötig sind.
http://www.airspayce.com/mikem/arduino/AccelStepper/MultiStepper_8pde-example.html
OP #7007482
Lesenswert?
• ▲
▼
So hier mal meine Sourcedatei mit dem Accelstepper. Mit dem Code läuft 
nur Schrittmotortreiber 1. Außerdem habe ich noch Schaltpläne von der 
Platine hinzugefügt.

Ich habe auch schon jeweils einen Schrittmotortreiber auskommentiert und 
versucht nur einen laufen zu lassen. Funktioniert leider auch nicht.
Angehängte Dateien:
Gast #7007564
Lesenswert?
• ▲
▼
> Ich möchte ein eigenes Programm schreiben und nutze den Accelstepper.

Das musst du in einer anderen Reihenfolge anpacken.

Zuerst verstehen, was dein Vorgänger gemacht hat. Dann verstehen, warum 
er es so gemacht hat. Danach überlegenen, wie es besser geht.

Erst wenn dir klar ist, wo die Probleme liegen und warum dein Vorgänger 
es so gemacht hatte, die Software neu schreiben.
Gast #7011007
Lesenswert?
• ▲
▼
Das Problem dürften falsche Pinnummern sein. Im Code werden virtuelle, 
targetabhängige Nummern verwendet, die haben aber nichts mit den 
Pinnummern des MCU Gehäuses zu tun. Stepper2 programmiert damit evtl. 
'verbotene' Pins um.

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.