初心者のArduinoプログラミング入門【サーボモータ編】
今回もArduinoでプログラミング学習をしていきます!
この記事ではサーボモータの基本的な使い方を学習します。
可変抵抗を使用してサーボモータの回転角度を制御することが目標です。
目標
ブレッドボード、可変抵抗とサーボモータを使用して回路を作ります。
可変抵抗にあわせてサーボモータの軸を回転させることを目標としました!
回路図
アナログ入力端子A0を可変抵抗に、デジタル3番ピンをサーボモータに接続しました。
SG-90ではモータの茶色の線をGND、赤色を5V、オレンジを制御するピンに接続します。
上図のような回路図になります。
スケッチ
// サーボモータを動かすためのライブラリ #include <Servo.h> // サーボオブジェクトの宣言 Servo myServo; void setup() { pinMode(3, OUTPUT); // サーボを接続したピン番号3を入力 myServo.attach(3); } void loop() { int v = analogRead(0); // アナログ入力を0~180に変換 v = map(v, 0, 1023, 0, 180); // サーボの角度を指定 myServo.write(v); delay(10); }
まずServoライブラリのインクルードを行い、サーボモータを使える状態にします。
「スケッチ」タブから「ライブラリをインクルード」→「Servo」の順で選択しました。
Servo myServoの部分でServoオブジェクトの宣言を行い、myServoがサーボモータだと決定させます。
myServo.attach(3)ではサーボモータと接続したデジタルピンの番号を書きます。
サーボモータを使用するときはPWM(~マークのある)ピンでなければならないので、ここでは3番ピンと接続しています。
アナログ端子からの入力vは最初0~1023の範囲内の整数ですが、回転角度0~180°に変換したいのでmap関数を使って変換しました。
その角度vを myServo.write(v)とすることでサーボモータの軸角度がvになるよう動作するはず!です。