RCサーボモータはラジコンのコントロール用やロボットの制御等に使われているモータで、入力された信号のパルス幅で指定した角度まで回転するモータです。
普通RCサーボは3線式で、信号線(白)・電力線(赤)・グランド(黒)となっており、今回は比較的低価格のGWServoで S30N 2BBMG(フタバ仕様)を使いました。
RCサーボの回転角は0~180度が一般的で、0度を1.0ms、90度を1.5ms、180度を2.0msのパルスで制御します。
ArduinoにはServoライブラリが用意されており、それを使用すると簡単にサーボモータを使うことができます。
注意としてはサーボモータの電源はUSBからではなく、別の電源からとる必要があります。サーボモータの起動時USBの電源容量を超える可能性がありますので注意が必要です。
配線図
スケッチ
//サーボモータで温度を表示する
#include <Servo.h>
Servo servo;
float v = 5;
void setup()
{
Serial.begin(9600);
servo.attach(3);
}
void loop() {
int val = analogRead(0);//計測したデータ
int temp =( (( v / 1024) * val) *100)-60;//温度表示
int deg = map(val,0,1023,0,180);//角度表示
servo.write(deg);//サーボモータ駆動
//SerialMonitor表示
Serial.print(val);
Serial.print(" , ");
Serial.print(deg);
Serial.print(" , ");
Serial.println(temp);
delay(1000);
}
温度表示板の作成
サーボモータは、温度センサーから読み取った値により発生するパルスで角度が変わりますので、その角度変化を読み取れるように、表示板を取り付けました。
表示板には使われなくなった「CD」を利用し、温度の表示目盛を印刷したラベルを貼り付けます。
目盛ラベルの作製は、温度センサーの変わりに10kΩの可変抵抗器を取り付け、SerialMonitorで、10℃単位毎の角度を読み取りそれを元に作製します。
表示板取り付け状況
較正中
置かれた 場所を 0として 細かくサーボで 示すことできるのでしょうか
自分も後で挑戦してみたいと思っております。
http://radiopench.blog96.fc2.com/blog-entry-452.html
参考にしてください。