PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servosignal schaltet nicht ab



Andree-HB
28.01.2005, 19:06
..nachdem dieser Code durchgelaufen ist :


Config Servos = 1 , Servo1 = Portd.7 , Reload = 10
Enable Interrupts
Dim I As Byte
For I = 50 To 100 Step 5
Cls
Lcd "Servoposition = " ; I;
Servo(1) = I
Waitms 100
Next
Servo(1) = 50

Portd.7 = 0
Portd = &B00000000



...schaltet sich das Signal für das Servo nicht mehr ab - WARUM ???
Ich schalte doch zuerst den Pin, dann sogar den ganzen Port auf Null.

recycle
28.01.2005, 20:10
...schaltet sich das Signal für das Servo nicht mehr ab - WARUM ???
Ich schalte doch zuerst den Pin, dann sogar den ganzen Port auf Null.

Ein Servo wird mit einem Rechtecksignal angesteuert, d.h. die Servoroutine schaltet den Pin die ganze Zeit x mal pro Sekunde zwischen 0 und 1 um.
Wenn du den Pin dann noch einmal zusätzlich auf 0 schaltest stört das wohl nicht besonders. (falls der Befehl überhaupt ausgeführt wird)

In deiner Schleife wird bei jedem Durchgang nur die Position des Servos geändert, bei einem gehackten Servo ändert sich dadurch nur die Geschwindigkeit. Nur weil du diese Schleife verlässt, wird aber die Servoroutine nicht beendet.

Ich vermute mal der Servo ist gehackt. Wenn du den dann anhalten willst musst du ihn mit einer Pulslänge von 1,5ms ansteuern sprich Servo(1) = 150 setzen.

Andree-HB
28.01.2005, 20:15
nein, es muss definitiv das Signal am Pin auf 0 gesetzt werden, hat ja den gleichen Effekt, als wenn ich die Leitung abziehe - dann schaltet das Servo ab.

recycle
28.01.2005, 20:40
nein, es muss definitiv das Signal am Pin auf 0 gesetzt werden, hat ja den gleichen Effekt, als wenn ich die Leitung abziehe - dann schaltet das Servo ab.

OK, wenn er dann abschaltet ist dein Problem ja gelöst ;-)

Dass die Modelbauer immer erst die Stromversorung ihres Modells abschalten, bevor sie die Fernsteuerung ausschalten ist sicher nur ein alter Ritus. Damit dass die Servos sich an an den Endanschlag drehen sobald sie kein Signal mehgr bekommen hat das vermutlich nichts zu tun ;-)

Andree-HB
28.01.2005, 21:04
...da das Signal immer noch anliegt, steuert das Servo natürlich sofort wieder an, sobald ich es anschliesse. :-k

recycle
28.01.2005, 21:12
...da das Signal immer noch anliegt, steuert das Servo natürlich sofort wieder an, sobald ich es anschliesse.

Wenn das Signal immer noch anliegt, kann aber mit deiner Aussage, dass es definitiv abgeschaltet wird, wenn man den Pin auf 0 schaltet wohl irgendwas nicht stimmen ;-)

Was passiert eigentlich wenn dein Auto den Berg runterrollt und du trittst einmal kurz auf die Bremse? Bleibt es dann nur kurz stehen oder für immer?
Die Servoroutine schaltet den Pin Interrupt gesteuert ständig ein und aus. Warum sollte damit aufhören, nur weil du den Pin einmal manuell auf Aus schaltest?

Andree-HB
28.01.2005, 21:38
...ähmm, ich meinte damit natürlich, den Pin irgendwie DAUERHAFT auf 0 zu setzen. Der Hinweis auf das Beenden der INTERRUPTROUTINE ist golden ! :-)