projects:4e4th:4e4th:start:msp430g2553_experimente:servotester
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
projects:4e4th:4e4th:start:msp430g2553_experimente:servotester [2014-07-16 01:01] – [Wie lange dauert das dann?] mka | projects:4e4th:4e4th:start:msp430g2553_experimente:servotester [2018-05-02 17:58] (aktuell) – [Servotester für analoge Servos im Modellbau] mka | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
- | So ein [[http:// | + | So ein [[http:// |
===== Aufbau ===== | ===== Aufbau ===== | ||
- | Die Schaltung ist ganz unkompliziert. Der Portpin kann direkt an den Steuereingang eines Servos angeschlossen werden. Die Servos benötigen jedoch ihre eigene Stromversorgung, | + | Die Schaltung ist ganz unkompliziert. Der Portpin kann direkt an den Steuereingang eines Servos angeschlossen werden. Die Servos benötigen jedoch ihre eigene Stromversorgung, |
{{: | {{: | ||
Zeile 12: | Zeile 12: | ||
===== Testprogramm für 8 Servos ===== | ===== Testprogramm für 8 Servos ===== | ||
- | Am Steuereingang werden [[http:// | + | Am Steuereingang werden [[http:// |
Im Testprogramm erhalten die Servos ihren Puls einfach nacheinander. Auf diese Weise passen bis zu 9 Servo-Pulse in die 50Hz Wiederholrate, | Im Testprogramm erhalten die Servos ihren Puls einfach nacheinander. Auf diese Weise passen bis zu 9 Servo-Pulse in die 50Hz Wiederholrate, | ||
Zeile 59: | Zeile 59: | ||
DECIMAL | DECIMAL | ||
VARIABLE RESTDAUER | VARIABLE RESTDAUER | ||
- | : REST restdauer @ 0 DO LOOP key? ; | + | : REST restdauer @ 0 DO LOOP ; |
: P2SET true p2dir c! zero p2 c! zero p2sel c! ; | : P2SET true p2dir c! zero p2 c! zero p2sel c! ; | ||
- | : NEU | + | : NEU |
| | ||
\ erzeuge Puls der Breite x an Pin p vom Port adr. | \ erzeuge Puls der Breite x an Pin p vom Port adr. | ||
: SUBREST | : SUBREST | ||
- | : PULS ( x p adr -- ) | + | : PULS |
2dup >r >r cset \ H-Pegel | 2dup >r >r cset \ H-Pegel | ||
dup subrest | dup subrest | ||
Zeile 81: | Zeile 81: | ||
2000 us p2.6 puls | 2000 us p2.6 puls | ||
2000 us p2.7 puls | 2000 us p2.7 puls | ||
- | rest UNTIL key drop ; | + | rest |
: TEST1 | : TEST1 | ||
BEGIN neu | BEGIN neu | ||
Zeile 92: | Zeile 92: | ||
1000 us p2.6 puls | 1000 us p2.6 puls | ||
1000 us p2.7 puls | 1000 us p2.7 puls | ||
- | rest UNTIL key drop ; | + | rest |
| | ||
: RUN ( -- ) 5 0 do test1 test2 loop ; \ druecke mehrmals eine Taste wenns lauft. | : RUN ( -- ) 5 0 do test1 test2 loop ; \ druecke mehrmals eine Taste wenns lauft. | ||
Zeile 121: | Zeile 121: | ||
key? UNTIL key drop ; | key? UNTIL key drop ; | ||
- | {{ : | + | {{ : |
Anhand der kleinen Puls-Pausen kann man identifizieren welche Pulsserie gerade abgelaufen war. Der kürzeren Pause gingen die 1 ms Pulse voraus (rechts im Bild), und der längeren die 2 ms Pulse, (links im Bild). Mit jeder Pulsserie fuhr der Motor in die andere Richtung. Man erkennt wie die Spannung einbrach, wenn der Motor startete, und sich dann einpendelte wenn er lief. Nach **20 bis 21 Pulsen** bleib der Motor stehen, aber es gab auch danach noch kurze Regelpulse der Servoelektronik. Bei den 1ms Steuer-Pulsen waren es immer nur wenige nachlaufende Regelpulse, im Bild waren es 7 Stück. Bei den 2ms-Pulsen waren es immer viele, über die ganze Steuerpulsserie hinweg. Ich deute das so, dass der Motor auf dieser Seite noch nicht am mechanischen Anschlag war, sondern in einer Position davor gehalten wurde. Der Servo brummte dabei auch leise, was er in der anderen Endstellung nicht tat. So kann man abzählen das dieser Servo nach 20 Pulsen, die alle 20ms kamen, einen vollen Fahrweg machte, also **400 ms** benötigte, ungefähr eine 1/2 Sekunde. | Anhand der kleinen Puls-Pausen kann man identifizieren welche Pulsserie gerade abgelaufen war. Der kürzeren Pause gingen die 1 ms Pulse voraus (rechts im Bild), und der längeren die 2 ms Pulse, (links im Bild). Mit jeder Pulsserie fuhr der Motor in die andere Richtung. Man erkennt wie die Spannung einbrach, wenn der Motor startete, und sich dann einpendelte wenn er lief. Nach **20 bis 21 Pulsen** bleib der Motor stehen, aber es gab auch danach noch kurze Regelpulse der Servoelektronik. Bei den 1ms Steuer-Pulsen waren es immer nur wenige nachlaufende Regelpulse, im Bild waren es 7 Stück. Bei den 2ms-Pulsen waren es immer viele, über die ganze Steuerpulsserie hinweg. Ich deute das so, dass der Motor auf dieser Seite noch nicht am mechanischen Anschlag war, sondern in einer Position davor gehalten wurde. Der Servo brummte dabei auch leise, was er in der anderen Endstellung nicht tat. So kann man abzählen das dieser Servo nach 20 Pulsen, die alle 20ms kamen, einen vollen Fahrweg machte, also **400 ms** benötigte, ungefähr eine 1/2 Sekunde. | ||
- | + | ==== Anmerkung ==== | |
+ | Ein anderer Ansatz, die Servos praktisch gleichzeitig anzusteuern, | ||
+ | Im Rahmen der grundlegenden Experimente wurde darauf verzichtet hier assemblierten, | ||
- | |
projects/4e4th/4e4th/start/msp430g2553_experimente/servotester.1405465319.txt.gz · Zuletzt geändert: 2014-07-16 01:01 von mka