最終更新:2012-11-30 (金) 04:27:21 (4165d)
Arduino/Servo
このライブラリはサーボモータ?をコントロールします。標準的なサーボでは0から180度の範囲でシャフトの位置(角度)を指定します。連続回転(continuous rotation)タイプの場合は、回転スピードを設定します。
Arduino-0017から、ServoライブラリはほとんどのArduinoボードで最大12個のサーボをサポートします。Arduino Megaにおいては最大48個です。 Mega以外のボードでは、ピン9と10のPWM機能が無効になります。Megaでは、12個までならPWM機能に影響せず、それ以上のサーボを使う場合はピン11と12のPWMが無効になります。
Arduino 0016以前のServoライブラリはハードウエアに依存していて、ピン9と10にだけサーボを接続することができました(Arduino Megaでは機能しませんでした)。サーボを1つしか使用しない場合でも、空いているほうのピンをanalogWriteでPWM出力に使うことはできず、ピン9をサーボ、ピン10をPWM出力といった組み合わせには対応していませんでした。
例
#include <Servo.h> Servo servo;//サーボのインスタンス void setup(){ //サーボの信号線を3番ピンに接続 //(PWMピン以外のピンにも接続可) servo.attach(3); } void loop(){ //センサの読み取り値 int val=analogRead(0); //map()を使って0~1023のセンサ読取り値を0~180の角度に変換 int deg=map(val,0,1023,0,180); //サーボ出力 servo.write(deg);//0~180まで }