今回は、アナログ入力の値でサーボの位置を指示するプログラムです。
アナログ入力A3にスライド式のボリュームを接続して、出力ピン9に接続したサーボをコントロールします。
Arduinoのアナログ入力の分解能は10bitなので 0V~5Vの信号が 0~1023の数値として取り込まれます。
この0~1023をサーボのコントロール信号0~180に変換してサーボをコントロールします。
これは アナログ入力値/5.67で計算できます。
以下がプログラムと UnoArdusim の設定(赤で囲んだ部分)です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //*********************************************************** // サーボモーターを動かすプログラム No.6 // 博多電子工作室 2015/07/27 //*********************************************************** #include <Servo.h> //サーボモーター用ライブラリを読み込み Servo myservo; //サーボ用のオブジェクトを作成 int val; //サーボの角度を格納するための変数 int analogPin = 3; // アナログ入力にPin A3を使う void setup() { myservo.attach(9); //デジタル9番ピンをサーボの角度命令出力ピンとして設定 } void loop() { val = analogRead(analogPin); //アナログピンを読み取る; myservo.write(val/5.67); //アナログ入力値 0~1023を 0~180に変換してサーボをまわす。 delay(100); // 100msのウェイト } |