はじめてのサーボ・モータ (1) Arduino UNOで動かす-利用できるピン

 サーボ・モータには産業用とラジコン用(RCサーボ・モータ)があります。位置決めができるのが特徴です。ラジコン用は、二足走行ロボットなど向けにトルクを強力にしたモデルが市販されています。

Arduino のサーボ・ライブラリ

 特徴です。

  • 0~180度の範囲でシャフトの位置(角度)を指定
  • 最大12個のサーボ・モータをつなげられる

 ボードによって、PWM機能が無効になるピンがあるので、Arduino UNOで実際に動かして確認します。

 利用したのは、アマゾンで購入した安価なサーボ・モータです。

接続

 サーボ・モータのピンは3本です。よく見る色は次の配色が多いようです。

ケーブルの色 信号
茶色 GND
オレンジに近い赤色 +5V
オレンジに近い黄色 信号(PWM)

 ピンを指定しているのはattach(pin)関数です。回転角度はwrite(angle)関数です。下記のスケッチで信号ピンを変更して動作するかどうかを確認しました。
 write(angle)関数が一つだけだと、一瞬で動いて気が付かないことがあったので、0度、90度、180度の命令を0.5秒ごとに実行しました。

#include <Servo.h>

Servo myservo;

void setup() {
myservo.attach(9);
myservo.write(0);
delay(500);
myservo.write(90);
delay(500);
myservo.write(180);
}

void loop() {}

 動作結果です。すべてのピンで動きました。アナログ・ポートはmyservo.attach(A0)のように指定しました。

ピン番号 動作 ピン番号 動作
0  OK A0  OK
1  OK A1  OK
2  OK A2  OK
3  OK A3  OK
4  OK A4  OK
5  OK A5  OK
6  OK  -  
7  OK  -  
8  OK  -  
9  OK  -  
10  OK  -  
11  OK  -  
12  OK  -  
13  OK  -  

コラム PWMの信号を見る

 角度を指定すると、ずっと同じ幅のパルスが出力されます。ホーンは、サーボ・モータの回転軸に取り付けられた平たい板です。穴が開いていて、ラジコンではラダーなどから伸びたワイヤをひっかけます。ラダーは、ラジコン機が動いていると空気や水の影響を受けますが、一度角度を設定すると、サーボ・モータは、その角度を維持してくれます。

 0度の波形です。

90度の波形です。

180度の波形です。いずれの波形も20msの繰り返しで、角度の指定によりHighレベルのパルス幅が変化しています。

前へ

回すだけ IQ2306 (3) コマンドを使う-2 位置決め

次へ

Linduinoで計測 (1) 準備