DarkDragon hat geschrieben:Aber ist es nicht so, dass so ein ARM meistens mit 3,3V oder 5V arbeitet und diese Schrittmotoren aber 12V oder gar 24V Signale erwarten (hab ich auf einem Datenblatt gelesen)? Werden die praktisch so angesteuert wie ein Modellbauservo auch oder wie muss ich mir das vorstellen? Ist die Periodenlänge dort auch 20ms? Das wäre doch für die Industrie zu ungenau, oder nicht? Und wie liest man den Encoder dann aus?
Der ARM wird mit 3,3V betrieben (der Kern über einen eingebauten LowDrop-Linearregler mit sogar nur ca. 1,8V). Der Motor braucht freilich wesentlich mehr Spannung, da sonst zu wenig Strom gezogen würde und damit kein nennenswertes Drehmoment aufgebaut werden könnte.
Die Grundfrequenz der Pulsweitensteuerung kann ziemlich frei gewählt werden. Möglichst hoch, damit schnelle Reaktionen möglich sind und keine Störung im akustisch relevanten Bereich stattfindet, aber niedrig genug, damit Umschaltverluste in der Endstufe minimiert werden. Damit landen wir bei 25-100kHz, meist um 30-60kHz. Dabei glättet bereits die unvermeidliche Leitungsinduktivität etwas den Strom (ist aber marginal), die Massenträgheit des Motorankers aber kann freilich den Kilohertzen nicht folgen. Je länger dabei der Strom in einer Richtung fließt, desto stärker überwiegt diese Richtung gegenüber der anderen und der Motor dreht entsprechend.
Der Enkoder liefert entweder "single-ended" oder differentielle Digitalsignale. Liegt letztere Version vor, was eher normal ist, nutzt man einen simplen RS485-Empfänger, um daraus "single-ended" für den µC zu machen. Differentielle Übertragung ist weit störsicherer, weswegen die Enkoder im industriellen Umfeld (EM-Verseuchung) nur so vorkommen. Es gibt 2- und 3kanalige Typen von Enkodern. Der dritte Kanal, I oder Z genannt, ist der Index (Zero) und kommt nur einmal pro Umdrehung vor. Er wird hier nicht gebraucht. Die beiden anderen Signale sehen etwa so aus:
A=0, B=0
warte 10ms
A=1, B=0
warte 10ms
A=1, B=1
warte 10ms
A=0, B=1
warte 10ms, dann von vorn.
Ist leider etwas umständlich, da ich noch kein Bild dafür gezeichnet habe für meinen Elektronikkurs und das Forum hier kein [ tt ] unterstützt. Damit ist die Vorwärtsdrehung um einen Strich gezeigt. Der Enkoder hat z.B. 100, 400, 1000, 4096 oder noch mehr Striche. Bei 300 Strichen und 40ms/Strich, wie hier gezeigt, haben wir 1/12 Umdr. pro Sekunde. Diese Signale werden auf die 3,3V-Domäne des µC gebracht von diesem ausgewertet. Damit also läßt sich die Drehrichtung, der Drehumfang und die Geschwindigkeit ermitteln, durch Differenzieren auch Beschleunigung, Ruck usw..
DarkDragon hat geschrieben:Egal, sowas kann ich laut meinem Studium gar nicht, also dürfen die das nicht erwarten
. Etwas fertiges muss her, bevor ich mich hier verkünstel mit den Einzelheiten eines Ansteuerungsmoduls.
Schade, aber einen Versuch war's wert.
DarkDragon hat geschrieben:Ach egal, ich glaube ich verzichte auf Servomotoren und geh über zu Schrittmotoren. Da hab ich mehr Ahnung davon und man braucht viele Sachen nicht beachten, weils dafür eh nur 2-3 Arten von Ansteuerungsmodulen gibt. Es werden zwar Servomotoren bevorzugt, doch da muss ich passen, was die angeht.
Oder ich finde noch was gescheites im Netz, was ich auf jeden Fall kapier, bevor es gekauft ist.
Vorsicht bei Schrittmotoren! Man kanns Dir kaum verübeln, aber ein solcher ist nicht der Weisheit letzter Schluß! Was ist, wenn Du an die Bewegungsgrenze fährst oder schlicht die Last zu groß wird? Dein Schrittmotor wird sich um drei Schritte nach hinten statt einen nach vorn bewegen - und aus ist es mit der Positionierung. Also auch hier brauchst Du Enkoder. Letztlich mußt Du damit klarkommen. Ich würde immer erst zu Linearmotoren greifen, weil die viel billiger sind und obendrein leichter in Hardware anzusteuern. Die Firmware dafür ist zumindest nicht komplizierter als bei Schrittmotoren.
Du stehst also vor dem Problem, Dir richtig Gedanken um die Entwicklung eines Servosystems machen zu müssen, das sinnvollerweise mikrokontrollergesteuert ist. Die oberste Ebene der Steuerung (Positionsvorgabe, max. Drehmoment usw.) kommt dann per Purebasic über USB.
Gruß - WPö