arduino arduino基礎

Arduinoを用いてサーボモータを制御する

投稿日:2018年10月25日 更新日:

こんばんは!
今回はarduinoを使ってサーボモータを制御したいと思います。

使用するもの

・Arduinoメインボード(https://amzn.to/2TyXG31)
・USBケーブル(https://amzn.to/2TyXG31)
・ブレッドボード(https://amzn.to/2RavGpK)
・ジャンパワイヤ(https://amzn.to/2CfON7I)
・サーボモータSG-90(https://amzn.to/2D66wQK)

サーボモータについて

サーボモータは名前の通りサーボできるモータのことです。
サーボ(servo)の語源はギリシャ語で奴隷という意味のservusから来ており命令に対して忠実に素早く動作するということです。
つまりサーボモータは命令を素早く正確にモータを動作することができるということです。
サーボモータは値段や性能も様々ですが今回は初めての使用ですので安価なTowerPro製のSG-90を使用します。
サーボモータ購入時にはトルク、回転角度、駆動速度、定格電圧などを見て用途に合ったものを購入するのがいいと思います。

今回使用するサーボモータはTowerPro製のSG-90です。
3本ピンがあり、茶色がGND、赤色が電源、オレンジが制御信号の入力となっています。

手順

まずハード側からやっていきます。図のようにサーボモータのGND、電源、制御信号をそれぞれArduinoのGNDピン、5Vピン、D9ピンに接続します。

ハード側はこれで終了です。

次にソフト側をやっていきます。

サーボモータはPWMというパルス信号のON、OFFによって制御するとなめらかな動きが再現できるのですが、プログラムが複雑になってしまうので、今回は最初からarduinoに存在するservoライブラリを使っていこうと思います。

まず、servoライブラリをインクルードするためにArduino IDEの上部のバーから「スケッチ」→「ライブラリをインクルード」→「Servo」を選択します。

するとこのように一行目に#include <Servo.h>が追加されたと思います。
これでServoライブラリのインクルードが完了しました。

次にコードを書いていきます。

コードの説明をします。
まず、Servo myservoでServoオブジェクトの宣言をしています。簡単に言えばmyservoというものがサーボモータですよという意味です。
そしてServo.attach(9);で信号線を繋いだピンの番号を宣言しています。
Servo.write()はservoの角度を指定しています。0~180度の範囲で宣言します。
このコード全体は最初にサーボを90度の位置に移動させ、0度→90度→180度→90度→0度をループするような構造になっています。

メインボードに書き込むと下記の動画のようになるはずです。

まとめ

今回はサーボモータの制御を行いました。
サーボモータはラジコンやロボットアームなど色々なものに応用することができるので使い方を覚えておいた方がいいと思います。
今回はこれで終わります。

ではまた!

-arduino, arduino基礎

Copyright© 物を作る者 , 2019 All Rights Reserved Powered by AFFINGER5.