仕様
動作電圧:3.3 ~ 6 V
動作速度:0.12 秒 / 60 度
回転範囲:約 -90 ~ 90 度
温度範囲:0 ºC – 55 ºC
回路接続
SG-90 | Raspberry Pi Pico |
---|---|
オレンジ色線 | GP0 (コードによって) |
赤い色線 | VBUS(5V) |
茶色線 | GND |
PWM制御
角度 | パルス幅 | デューティー比(パルス幅 / 周期) |
---|---|---|
-90°(左) | 0.5ms | 0.5ms / 20ms |
0°(中央) | 1.45ms | 1.45ms / 20ms |
90°(右) | 2.4ms | 2.4ms / 20ms |
コード
from machine import Pin, PWM
import time
duty_max = 65025
deg_min = 0.025 # -90
deg_middle = 0.0725 # 0
deg_max = 0.12 # 90
# init
def init(pin_pwm = 0, freq = 50):
global servo
servo = PWM(Pin(pin_pwm))
servo.freq(freq)
# example function
def example(interval = 3):
servo.duty_u16(round(duty_max * deg_min))
time.sleep(interval)
servo.duty_u16(round(duty_max * deg_middle))
time.sleep(interval)
servo.duty_u16(round(duty_max * deg_max))
time.sleep(interval)
パラメータ
duty_max
最大のデューティ値(100%)です。
最大値 65025 についてここを参考してください。
deg_min
-90° ときのデューティー比です。
deg_middle
0° ときのデューティー比です。
deg_max
90° ときのデューティー比です。
関数
init(pin_pwm = 0, freq = 50)
ピンと周波数を配置するための初期化関数です。
pin_pwm:PWM信号線と繋がっているのピンです。
freq:周波数、ここにはデータシートによって50Hzに設定します。
example(interval = 3)
テスト関数です。-90° -> 0° -> 90° の間にループ制御します。
interval:回転間隔。