###環境
raspberry pi 3
python 3.7
サーボモーター S3103
https://servodatabase.com/servo/futaba/s3103
###状況
ラズパイでサーボモータ(S3103)を動かしたいのですが、動きません。
他のサーボモータ(S3001)では、動きました。サーボモータ(S3003)のデータシートは下のリンク
です。
http://www.es.co.th/Schemetic/PDF/ET-SERVO-S3003.PDF
S3103サーボについて調べてみても、情報は【環境】に載せたURLについてしか出てきませんでした。
S3003サーボと何が違のか、また何を直せば動くようになるのか、ご教授ください。
最近、電子工作関係に触れたばかりですので無知ですがよろしくお願いします。
テストコード
python
1import RPi.GPIO as GPIO #GPIO用のモジュールをインポート 2import time #時間制御用のモジュールをインポート 3import sys #sysモジュールをインポート 4 5#ポート番号の定義 6Servo_pin = 18 #変数"Servo_pin"に18を格納 7 8#GPIOの設定 9GPIO.setmode(GPIO.BCM) #GPIOのモードを"GPIO.BCM"に設定 10GPIO.setup(Servo_pin, GPIO.OUT) #GPIO18を出力モードに設定 11 12#PWMの設定 13#サーボモータS3003の周波数は50[Hz] 14Servo = GPIO.PWM(Servo_pin, 70) #GPIO.PWM(ポート番号, 周波数[Hz]) 15 16Servo.start(0) #Servo.start(デューティ比[0-100%]) 17 18#角度からデューティ比を求める関数 19def servo_angle(angle): 20 duty = 3.5 + (16.0 - 3.5) * (angle + 90) / 180 #角度からデューティ比を求める 21 Servo.ChangeDutyCycle(duty) #デューティ比を変更 22 time.sleep(0.3) #0.3秒間待つ 23 24#while文で無限ループ 25#サーボモータの角度をデューティ比で制御 26#Servo.ChangeDutyCycle(デューティ比[0-100%]) 27while True: 28 try: 29 servo_angle(20) #サーボモータ 20 30 print("20") 31 servo_angle(0) #サーボモータ 0 32 print("0") 33 servo_angle(20) #サーボモータ 20° 34 print("20") 35 servo_angle(0) #サーボモータ 0° 36 print("0") 37 servo_angle(20) #サーボモータ 20° 38 print("20") 39 servo_angle(0) #サーボモータ 0° 40 print("0") 41 except KeyboardInterrupt: #Ctrl+Cキーが押された 42 Servo.stop() #サーボモータをストップ 43 GPIO.cleanup() #GPIOをクリーンアップ 44 print("clean") 45 sys.exit() #プログラムを終了
どちらのサーボで実行しても、エラーは出ず、print()内の文字が出力されます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/30 03:26
2020/07/31 13:14