PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmotor Umdrehungen pro min



timo1105
14.05.2007, 17:57
Hallo,

Mein Code:



$regfile = "m8def.dat"
$crystal = 16000000


Ddrd = &B11111111

Portd = &B00000101

On Timer1 Ontimer1
Tccr1a = &B00000000
Tccr1b = &B00000010
Timsk.toie1 = 1

Sreg.7 = 1

Do
Loop

Ontimer1:

Timer1 = 62000
Portd.3 = Not Portd.3
Return


Ich steuere damit einen Schrittmotor an. Die Freuqenz ist dabei ca. 180HZ.

Bei schnelleren Frequenzen kommt der Motor nicht mehr mit. Mein Problem ist nun, das sich der Motor nur sehr langsam dreht. Es ist ein kleines Ritzel drauf (5mm Durchmesser) dabei macht der Motor ca. eine Umdrehung pro 2. sek. und hat nicht sonderlich viel Kraft.

Ich weiß nicht ob es am Motor liegt, aber ist das normal?

Daten auf dem Motor:

Synta DW1323009
Model: 42BYJ08
StepAngle: 3.75°/7.5°
Voltage: 12VDC Ratio: 1:131.876

Timo

Klingon77
15.05.2007, 09:08
hi,

irgendwo ist ein "Klops" eingebaut.

Dein Motor sollte bei 180 Hz:

360 Grad / 7,5 Grad pro Schritt = 48 Schritte pro Umdrehung benötigen.

Das wären dann: 180 Impulse/sek / 48 Schritte/Umdrehung = 3,75 Umdrehungen pro Sekunde

oder: 3,75 Umdrehungen/ Sek * 60 Sek = 225 Umdrehungen/Minute.

Selbst bei einem möglichen "Halbschrittverfahren" wäre er noch zu langsam.

Ich kann mich erinnern, daß ich vor Jahren mal mit Schrittmotoren gebastelt habe. Da hatte ich ein ähnliches Problem. Der Motor brummte, lief zu langsam und auch nicht gleichmäßig.

Es stellt sich dann nach vielem messen heraus, daß ich die Anschlüsse des Motors nicht richtig verbaut hab. Es wurden also immer die falschen Spulen angesprochen.

Zu Deinem Code kann ich leider nichts sagen, da ich früher mit C-Control gebastelt habe.

Versuch doch mal die einzelnen Stränge durchzumessen. Sie sollten den gleichen Wiederstand haben.

Stimmt denn die Reihenfolge, in denen die einzelnen Stränge angesprochen werden?

Werden auch wirklich alle Stränge angesprochen? Mit einer Zeitschleife in deiner Schleife von ca. 2.3 Sek. kannst Du das während eines Probedurchlaufs auch mit dem Voltmeter überprüfen.

Des weiteren siehst Du bei einem sehr langsamen Durchlauf, ob sich bei jedem Schaltvorgang auch der Motor bewegt.

So, mehr fällt mir im Moment nicht ein.

Gruß, Klingon77

timo1105
15.05.2007, 11:15
`Hallo!

Dankeschön für die Antwort! Ich werde das nachher mal ausprobieren. Es muss dann wohl an der Verkabelung liegen. Schreibe dann nochmal.
bis dahin

Timo

Klingon77
15.05.2007, 11:50
hi,

es muß nicht zwangsläufig an der Verkabelung liegen. Es ist auch möglich, daß Du die einzelnen Stränge softwäremäßig nicht alle oder nicht in der richtigen Reihenfolge ansprichst.

Gruß, Klingon77

timo1105
15.05.2007, 14:28
hi!

ich habe jetzt mal genau nachgerechnet: der Motor macht knapp über 2 Umdrehungen/sek. bei 180HZ.

Aufgefallen ist mir folgendes: wenn ich ca. 1HZ habe sprich jede sekunde ein Schritt sind die ersten 3 schritte gleichmäßig. Der vierte ist jedoch kraftvoller und weiter?!

Wie kann ich jetzt bei meinen vier Anschlüssen (Gelb,Blau,Braun,Rot) erkennen, welcher von denen an den jeweiligen Output1-4 kommt?

mfg
timo

Klingon77
15.05.2007, 14:53
hi,

am leichtesten wäre es, wenn Du ein Datenblatt von Deinem Motor hättest.

Musst Du mal Google´n.

Wenn Du keines findest, schau mal hier ins Wiki.
Die Farben scheinen mir Standard. Ich kann Sie aber nicht zuordnen.

So wie Du das Problem beschreibst, scheinen wirklich die Anschlüsse nicht in der richtigen Reihenfolge zu sein.

Du könntest auch mal die Forumssuche bemühen. Schrittmotorprobleme gibt es wie Sand am Meer.

Es ist aber immer noch möglich, daß die Reihenfolge der Ausgabe nicht stimmt (Software). Oder beides.

Du kannst mal am Ausgang Deiner Schaltung testen ob hier die Reihenfolge stimmt.

Mit vier Anschlüssen hättest Du 2hoch4 Kombinationsmöglichkeiten.
Mit Hilfe einer Tabelle könntest Du sie auch durhprobieren.

Gruß, Klingon77

timo1105
15.05.2007, 20:53
Hallo,

Ich werde morgen mit der Sache weitermachen.

Nur was ich nicht verstehe: Wie kann ich bei der Software einen Fehler machen?

Es muss doch auf die Clock-Leitung ein Takt gegeben werden. Ein Takt besteht doch nur aus High und Low Befehlen/sek. o.ä. ?!

Wie kann ich da was falsch machen?

mfg
timo

Klingon77
16.05.2007, 08:08
hi,

wie gesagt, ich kenne den AVR nicht.
Damals arbeitete ich mit dem C-Control M-Unit vom Big C.

Ich habe damals meine Schrittmotoren nicht mit einem speziellen IC angesteuert sondern schön konventionell. Das bedeutet daß ich jede einzelne Leitung ein- bzw. ausgeschaltet hab. Dazu mußte ich mir ein kurzes Abfolge-Unterprogramm schreiben.

Mit speziellen IC´s geht es dann wohl einfach über Drehrichtung und Impuls- Eingang.

Dann wird es wahrscheinlich doch an den Kabeln liegen!

Du hast bei vier Kabeln 16 Möglichkeiten. Ist ja nicht so viel. Kann man noch durchprobieren.

Bin gespannt auf die Ergebnisse!

Gruß, Klingon77

timo1105
17.05.2007, 15:24
Hallo,

Ich habe jetzt mal ein bisschen experimentiert:

Es waren 24 Möglichkeiten (4*3*2*1), dabei fiel auf, dass Blau und Rot genauso wie Gelb und Blau immer nebeneinander sein müssen.
Insgesamt funktionieren also 8 Möglichkeiten.

Es funktioniert jedoch nicht richtig: bei allen 8 Möglichkeiten ist ein Schritt von 4 immer "weiter" als der andere. Dabei verliert der Motor bei diesem weiten Schritt sein Haltemoment, welches er bei den anderen 3 Schritten wieder voll hat.
Ich bin ein wenig verzweifelt, woran es liegen könnte, nachdem ich 96mal die Schraubklemmen gelöst habe:-)

@Klingon77: was meintest du in den Antworten zuvor mit ca.2.3 sek Schleife? Waum gerade 2.3sek?

mfg
Timo

Klingon77
17.05.2007, 22:34
hi,

war wohl ein Tippfehler.

Ich meinte 2 bis 3 Sekunden, damit Du genug Zeit hast das Signal auch mit einem langsamen Multimeter zu erkennen.
Hast natürlich Recht mit Deiner Berechnung.

Geh mal von hinten nach vorne. Zuerst muß sichergestellt sein, daß Dein Treiberbaustein die Signale zur richtigen Zeit in der richtigen Reihenfolge abgibt.

Kann sein, daß Dein Problem schon dort liegt.

Hat sonst jemand noch eine Idee - oder besser einen Anschlußplan des Motors?

Gruß, Klingon77

Yossarian
17.05.2007, 22:41
Hallo
die Informationen sind etwas dürftig.
Mit freundlichen Grüßen
Benno

BASTIUniversal
18.05.2007, 15:41
Hi!
Da du 4 Drähte hast, gehören je 2 zu einer Spule. Welche zwei das sind, kannst du mit einem Multimeter testen (je 2 Drähte haben einen kleinen Widerstand)...aber die hast du ja anscheinend schon gefunden.

Bleibt noch die Frage nach deinem Schaltplan und den verwendeten Bauteilen. Ohne die Info's gibt's leider nur grobe Auskünfte.

Generell kann man sagen das so ein Schrittmotor im Prinzip einen bestimmten Strom benötigt. Wird der Motor mit einer konstanten Spannung betrieben, so nimmt der Strom durch die Spulen mit steigender Geschwindigkeit ab. Durch diese Tatsache nimmt auch die Kraft des Motors ab und er "verliert Schritte", läuft also unrund und mit weniger Leistung (deshalb macht deiner wahrscheinlich nur 2 Umdr./sek).

MfG

P.S.: Wenn ich nachrechne komme ich auf eine Frequenz von 283Hz (16MHz / Prescaler 8 / (65536 - 62000) / 2)!?

timo1105
29.05.2007, 13:04
Hallo!
ich habe die Schaltung nochmal neu aufgebaut.dieses Mal ein wenig ordentlicher:-)

Es muss daran gelegen haben ,jetzt dreht der Motor so wie er soll.

Danke für eure hilfe!

Timo

Klingon77
29.05.2007, 14:43
hi timo1105,

schön, daß es nun funktioniert! \:D/

Hatte ich auch schon. Schaltungsfehler auf dem Steckbrett, den ich ewig nicht gefunden hatte!

Gruß, Klingon77 :mrgreen:

timo1105
11.06.2007, 17:17
Hallo,

um das Thema mal wieder aufzugreifen:

Mich würde mal interessieren, was für Geschwindigkeiten in Abhängigkeit von der Voltzahl bei einem Schrittmotor erreicht werden können?
Ich habe jetzt mitlerweile einen Sanyo Denki Schrittmotor, von Robotikhardware.de das 1640er modell.

Ich finde 250 U/min recht langsam?, dass ist ungefähr das, was mein jetziger Motor bei 12V mitmacht.

Sind Geschwindkeiten von 1000 U/min drin?


Mfg


Timo

Manf
11.06.2007, 17:57
Was für eine Treiberschaltung hast Du denn? Wenn Du einen Stromtreiber hast dann kannst Du in dem Bereich ganz grob geschätzt mit der doppelten Spannung etwas mehr als die doppelte Drehzahl erreichen. Ein Bisschen mehr Spannung verträgt er leicht noch.
Du solltest Dir allerdings klar sein bei welchem Lastmoment Du das mißt.
Manfred

timo1105
12.06.2007, 08:11
Hallo,

Ich habe die Schaltung mit dem L297 und L298 also eine Stromtreiberschaltung.
Ich habe die Umdrehung ohne jegliche Lasten gemessen. Wollte halt nur mal nach eurer Erfahrung fragen, was mit so einem Schrittmotor wie meinem drin ist. Schließlich wird so ein Teil auch für drehmaschinen benutzt und da denke ich müsssen auch höhrere Geschwindigkeiten drin sein.

Mfg

Timo

Manf
12.06.2007, 08:52
Wie gesagt in dem Mass geht noch etwas, er sollte leicht mit 24V und sicher auch mit noch höherer Spannung zu betreiben sein.
Es ist aber dann doch nicht nicht jeder Schrittmotor für jede Drehmaschine gemacht.
Einen großen Überblick über Leistungsdaten von Schrittmotoren gibt es in den Datenblättern von Nanotec.
http://www.nanotec.de/page_group__Schrittmotoren__de.html
Manfred

vajk
12.06.2007, 08:53
Es kommt auf den Motor und die Last an und auf Dein Programm .. wenn Du die Geschwindigkeit des Motors langsam erhöhst, sind höhere Geschw. drin (Anfahrrampe)! Das Gleich gilt fürs Abbremsen. Schau mal hier: http://www.mikrocontroller.net/articles/Schrittmotoren