サーボモーター(Servoクラス)

サーボモーターを制御するライブラリです。最大20個のチャネルを割り当てられます。
使用する場合は、ライブラリとしてインポートして、#include <servo.h>を記述してください。
Servo servo0;といったようにインスタンスを生成する必要があります。(サンプルプログラムを参照)

attach

概要 初期化して、出力を任意のピンに割り当てます。
文法 servo.attach(int pin)
servo.attach(int pin, int min, int max)
パラメータ pin: ピン番号
min: サーボの角度が0度のときのパルス幅[us]。デフォルトは544。
max: サーボの角度が180度のときのパルス幅[us]。デフォルトは2400。
戻り値 なし

write

概要 サーボの角度をセットして、シャフトをその方向に向けます。指定された回転角にするためのパルスがattachで指定したピンから出力されます。
文法 servo.write(int angle)
パラメータ analog: 静止させたい角度(0~180)
戻り値 なし

writeMicroseconds

概要 サーボモータに与える出力をマイクロ秒単位で角度指定します。サーボモータに与えられるパルスは20ms周期で、1周期中のHigh時間を直接しています。
文法 servo.writeMicroseconds(int us)
パラメータ us: 出力したいパルス幅[us]。範囲は1~19999。0を指定すると出力OFF。
戻り値 なし

read

概要 最後に設定された角度(パルス幅)を読み出す。ただしwriteMicrosecondsで与えた値は読み出せません。
文法 int servo.read()
パラメータ なし
戻り値 パルス幅[us]

attached

概要 ピンにサーボが割り当てられているかを確認する
文法 bool servo.attached()
パラメータ なし
戻り値 割り当てられているときtrue、割り当てられていないときfalse。

detach

概要 サーボモータの動作を止めます。指定ピンからのパルス出力を止めます。
文法 servo.detach()
パラメータ なし
戻り値 なし


サンプルプログラム

サーボモータを操作するピンを9にして、SAKURAボード上のスイッチを押すとモータが回転するサンプルです。

#include <rxduino.h>
#include <servo.h> 

#define INTERVAL 50
char g_inc = 10;
unsigned char g_pos = 0;
Servo servo0;

void setup() 
{ 
    pinMode(PIN_SW, INPUT);
    servo0.attach(9);
    servo0.write(g_pos);
} 

void loop() {
    if(digitalRead(PIN_SW) == LOW){
        g_pos = g_pos + g_inc;
        servo0.write(g_pos);
        if(g_pos == 180 | g_pos == 0){
            g_inc = g_inc * -1;
        }
    
    }
    delay(INTERVAL);
} 


桜ライブラリ

春ライブラリ

めいど by がじぇっとるねさすプロジェクト