arduinoでサーボモータを制御
サーボモータとは
サーボモータはロボットや産業機器に多く使われているモータです。マイクロコンピュータによって、高精度に回転や速度を実現できるものを指します。
本編
今回も以下のセットにあるものを使用しています。
リンク
ちなみに秋月電子では580円(執筆当時)で販売されています。
マイクロサーボ9g SG-90: パーツ一般 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)
特性
使用するモータの特性は以下のようになっています。
重量 | 9g |
PWMサイクル | 20mS |
制御角 | ±約90°(180°) |
トルク | 1.8kgf・cm |
動作速度 | 0.1秒/60度 |
動作電圧 | 4.8V(~5V) |
制御パルス | 0.5ms~2.4ms |
プログラミング
設計したプログラミングが以下になります。
0.5秒ごとに30°回転します。
#include <Servo.h>
Servo servo;
void setup() {
servo.attach(1);
}
void loop() {
servo.write(0);
delay(500);
servo.write(30);
delay(500);
servo.write(60);
delay(500);
servo.write(90);
delay(500);
servo.write(120);
delay(500);
servo.write(150);
delay(500);
servo.write(180);
delay(500);
}
プログラミング解説
include<servo.h>
サーボのライブラリを使用するための文章です
Servo servo;
サーボのクラス定義です。サーボのライブラリを使用するときは先頭につけます。
servo.attach(1)
サーボの制御を行うピンの設定です。PWM制御を行うのでPWM制御が行えるピンの設定を行う必要があります。
今回は一番に設定しています。
servo.write(0)
引数に書いた角度に回転します。
回路
真ん中の線を5V
茶色の線をGND
オレンジの線を指定したPWMピン(今回は一番)
につなぎます