動作を理解するためのものなので、あえて、スケッチは最小限にしています。
#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で電子工作
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 件のコメント:
コメントを投稿