このチュートリアルは武蔵野美術大学通信教育課程授業用に作成したものです。
今回はサーボモーターを使ってゆきます。サーボモーターは通常のDCモーターと違い、角度を指定したプログラムと実行するとその通りの角度で静止してくれます。この機能を使って、ポテンショメータの位置を読み取り、読み取った位置に対応したサーボの動きを実装します。
配線はポテンショメータを使うにサーボモータを足しただけです。サーボモータは電源5V,GND,9pinに接続しプログラムを書き込みます
プログラム
スケッチの例からServo / Knobwを開いてください。
#include <Servo.h>//サーボライブラリをインクルードする Servo myservo; // サーボオブジェクトを生成 int potpin = A0; int val; void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object } void loop() { val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023) val = map(val, 0, 1023, 0, 180); // scale it for use with the servo (value between 0 and 180) myservo.write(val); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there }
上記は一部コメントを削除しています。
「map(val, 0, 1023, 0, 180);」にて、ポテンショメータからの値を0~180の範囲に変換し、その値をサーボモータに送っています。これによりノブの回転に合わせてサーボモータが回転するデバイスが実装できました!