2017-06-01 4 views
1

πカメラでサーボ(Doman s0306d)を使用しようとしていますが、このスクリプトを実行してモーターをテストしようとしましたが、手動で実行しない限り停止しませんブレッドボードからプラグを抜きます。ラズベリーパイサーボが止まらない

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() 

ありがとうございました。

答えて

1

[EDIT]は、使用しているサーボは、「連続」サーボある - ので、あなたはそれを(ウェブサイトhttp://www.domanrchobby.com/content/?150.htmlによる)1500usのパルス幅を設定速度ゼロまたは「STOP」を与える必要があります。私はpiでPWMを使用していませんが、パーセンテージが50Hzパルスレート(20ms間隔)であれば、その値は7.5%の中心値になります。コードが終了する前にサーボがそのパルスを受け取るようにする必要があります。

[オリジナル]終了時にデューティサイクルを0に設定しています。これは、おそらくサーボがパルスを発生しないことを意味します。一部のサーボはパルスが得られなくなってからいつか停止しますが、一部のサーボ(特にデジタルサーボは、すべてではありません)は、最後に受信したパルスから設定を引き続き試みます。あなたは、サーボが達成できることを知っている中間範囲7.5に設定を残しておき、掃除する前に少し遅らせておくことをお勧めします。

+0

ありがとう、それを試してみましょう! – Dawzer

+0

編集を参照し、製造元のデータシートを確認してください。http://www.domanrchobby.com/content/?150.html – barny

関連する問題