プロジェクト12 サーボ
1. 説明
このサーボは高性能かつ高精度で、最大回転角度は180°です。わずか9gの軽量設計で、さまざまなミニデバイスに最適です。さらに、起動時間が短く、低騒音で安定性が高い特徴があります。
2. 動作原理
角度範囲: 180°(360°、180°、90°)
駆動電圧: 3.3V または 5V
ピン: 3本線

GND: グラウンド(茶色)
VCC: +5V(3.3V)電源に接続する赤いピン
S: PWM信号で制御されるオレンジ色の信号ピン

制御原理: 回転角度はPWMのデューティサイクルで制御されます。理論上、標準PWM周期は20ms(50Hz)で、パルス幅は1ms~2msの範囲に分布します。しかし実際のパルス幅は0.5ms~2.5msで、これが0°~180°に対応します。同じ信号でも、サーボのブランドによって回転角度が異なる場合があるので注意してください。
3. 配線図

USB電源だけでなく、外部電源を追加してください。

4. テストコード
int servoPin = 4;//servo PIN
void setup()
{
pinMode(servoPin, OUTPUT);//servo pin is set to output
}
void loop()
{
for(int i = 0 ; i <= 180 ; i++)
{
servopulse(servoPin, i);//Set the servo to rotate from 0° to 180°
delay(10);//delay 10ms
}
for(int i = 180 ; i >= 0 ; i--)
{
servopulse(servoPin, i);//Set the servo to rotate from 180° to 0°
delay(10);//delay 10ms
}
}
void servopulse(int pin, int myangle)
{ //Impulse function
int pulsewidth = map(myangle, 0, 180, 500, 2500); //Map Angle to pulse width
for (int i = 0; i < 10; i++)
{ //Output a few more pulses
digitalWrite(pin, HIGH);//Set the servo interface level to high
delayMicroseconds(pulsewidth);//The number of microseconds of delayed pulse width value
digitalWrite(pin, LOW);//Lower the level of servo interface
}
}
5. テスト結果
配線を接続しコードをアップロードすると、サーボは0°から180°まで回転し、その後逆方向に回転を開始します。