2017-06-01 2 views
1

Also ich versuche, ein Servo (Doman s0306d) mit der Pi-Kamera zu verwenden, versuchte dieses Skript ausgeführt habe ich den Motor zu testen, es beginnt zu laufen, aber nicht aufhören, wenn ich manuell Trennen Sie es vom Steckbrett.Raspberry Pi Servo stoppt nicht

import RPi.GPIO as IO  # calling for header file for GPIO’s of PI 
import time       # calling for time to provide delays in program 
IO.setwarnings(False)   # do not show any warnings 
IO.setmode (IO.BCM)   # programming the GPIO by BCM pin numbers. (like PIN29 as‘GPIO5’) 
IO.setup(19,IO.OUT)    # initialize GPIO19 as an output 
p = IO.PWM(19,50)    # GPIO19 as PWM output, with 50Hz frequency 
p.start(7.5)        # generate PWM signal with 7.5% duty cycle 
time.sleep(4) 
for x in range(0,5):              # execute loop forever          
     p.ChangeDutyCycle(7.5)     # change duty cycle for getting the servo position to 90º 
     time.sleep(1)          # sleep for 1 second 
     p.ChangeDutyCycle(12.5)     # change duty cycle for getting the servo position to 180º 
     time.sleep(1)          # sleep for 1 second 
     p.ChangeDutyCycle(2.5)     # change duty cycle for getting the servo position to 0º 
     time.sleep(1)         # sleep for 1 second 
p.ChangeDutyCycle(0) 
p.stop() 
IO.cleanup() 

Irgendwelche Ideen? Vielen Dank.

Antwort

1

[EDIT] Die Servo Sie verwenden eine „kontinuierliche“ Servo - so müssen Sie es die Null-Geschwindigkeit oder „STOP“ -Einstellung Impulsbreite von 1500US (laut der Webseite http://www.domanrchobby.com/content/?150.html) geben. Ich habe PWM auf dem Pi nicht verwendet, aber wenn die Prozentsätze von der 50 Hz-Pulsrate (20 ms-Intervall) sind, dann sollte dies der 7,5% -Zentralwert sein. Sie müssen sicherstellen, dass der Servo diesen Impuls erhält, bevor der Code beendet wird.

[Original] Sie setzen das Tastverhältnis beim Beenden auf 0, was wahrscheinlich bedeutet, dass das Servo keine Impulse erhält. Einige Servos stoppen irgendwann, nachdem sie keine Impulse erhalten haben, aber einige Servos (insbesondere digitale Servos, aber nicht alle) versuchen weiterhin, die Einstellung ab dem letzten empfangenen Impuls zu erreichen. Schlagen Sie vor, dass Sie die Einstellung im mittleren Bereich 7,5 belassen, von dem Sie wissen, dass das Servo dies erreichen kann, und warten Sie eine Weile, bevor Sie aufräumen.

+0

Ok danke, werde das versuchen! – Dawzer

+0

Siehe Änderungen, siehe Herstellerdatenblatt http://www.domanrchobby.com/content/?150.html – barny