基本ライブラリ
デジタルIO
アナログIO
拡張IO
時間
数学
三角関数
乱数
ビットバイト操作
割り込み
シリアル通信
標準ライブラリ
カメラ
サーボモーター
ステッピングモーター
キャラクタ液晶表示
SPI通信
I2C通信(Wire)
SD
SD(File操作)
周期処理(MsTimer2)
時計(RTC)
Mbed Tips
サーボモーター
サーボモーターを制御するライブラリです。最大12個のチャネルを割り当てられます。 サーボモーターはギアとシャフトがあり、0~180度の角度を自由に操作できます。
使用する場合は、#include <Servo.h>
を記述してください。また、Servo myservoといったようにインスタンスを生成する必要があります。
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
- 概要
- サーボモータに与える出力をマイクロ秒単位で角度指定します。 標準的なサーボモータでは1000が反時計回りの最大、2000が時計回りの最大、1500は中間点です。
- 文法
- servo.writeMicroseconds(int us)
- パラメータ
- us: 出力したいパルス幅[us]。
- 戻り値
- なし
read
- 概要
- 現在の角度を読み出す。
- 文法
- int servo.read()
- パラメータ
- なし
- 戻り値
- パルス幅[us]
attached
- 概要
- ピンにサーボが割り当てられているかを確認する
- 文法
- bool servo.attached()
- パラメータ
- なし
- 戻り値
- 割り当てられているときtrue、割り当てられていないときfalse。
detach
- 概要
- サーボモータの動作を止めます。指定ピンからのパルス出力を止めます。
- 文法
- servo.detach()
- パラメータ
- なし
- 戻り値
- なし
サンプルプログラム
サーボモータを操作するピンを9にして、LYCHEEボード上のスイッチを押すとモータが回転するサンプルです。
#include <Arduino.h>
#include <servo.h>
#define INTERVAL 50
char g_inc = 10;
unsigned char g_pos = 0;
Servo servo0;
void setup()
{
pinMode(PIN_SW0, INPUT);
servo0.attach(9);
servo0.write(g_pos);
}
void loop() {
if(digitalRead(PIN_SW0) == 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);
}