2012年8月13日月曜日

サーボモータに挑戦(スケッチ編)

前回作成した回路図を使い、Arduinoでサーボモータを動かすためのスケッチです。
動作を理解するためのものなので、あえて、スケッチは最小限にしています。



#include <Servo.h>
Servo servo;//サーボのインスタンス
int deg;
void setup(){
  servo.attach(3);
  deg=0;
}
void loop(){
  servo.write(deg);
    delay(500);
  deg=deg+5;
  if(deg>180){
    deg=0;
  }
}

解説
#include <Servo.h> ・・・ Serveo.hのライブラリを使うことを宣言しています。
Servo servo; ・・・Servo.hのライブラリを使うためのインスタンスを作成しています。


[Setup内]
servo.attach(3); ・・・Servoインスタンスで使用するPin番号を3番ピンに指定しています。
deg=0; ・・・角度を示すために作った変数 deg を初期化しています。

[Loop内]
servo.write(deg); ・・・Servoに対して、角度を出力しています。
             これにより、サーボモータ側は動き始めます。
delay(500); ・・・Arduinoの処理は早いので、サーボモータが動いて止まる時間を待っています。
deg=deg+5; ・・・角度変数を5度分加算しています。
if(deg>180){ ・・・ 角度変数を5度分加算していって180度まで回転したら、0度に戻す処理です。
    deg=0;
}

それほど、むずかしい処理無しに、サーボモータの軸の角度を指定して動かすことができました。
若干、カクカクしていて滑らかさがないのは、処理の仕方での工夫が必要になりますね。

今日はここまで。





・電子工作の基本100
・図解でわかるはじめての電子回路
・Android×Arduinoでつくるクラウド連携デバイス―Android ADKで電子工作





0 件のコメント:

コメントを投稿