サーボモーターを使ってみよう【Arduino超入門】

サーボモーターを使ってみよう【Arduino超入門】

今まではArduinoからみて入力側のセンサー系中心に記事を書いていましたが、
今回は出力側(フィードバック側)のサーボモーターを用いた動作をやってみたいと思います。

サーボモーターって?

サーボモーターとはミニ四駆などで使われているDCモーターとは異なり、入力信号に応じて回転角が制御できるモーターです。
そのためロボットアームの関節など、高い精度が要求される用途に向いている製品です。

Arduinoと組み合わせた電子工作においても、加速度センサーと組み合わせてジンバルを作ったり、通信モジュールと組み合わせて物理的スイッチを作り、スマートスピーカーと接続することでSwitch Bot的な使い方をしたりということもできます。

サーボモータ部品一覧

手元にあったサーボモーター達です。一般的に取り付ける部分に応じた十字や円盤型の様々なアタッチメントも同梱されています。

秋月DXで安いものだと数百円から購入が可能です。

接続方法

今回はアナログピン(A0)に印加される電圧値に応じてサーボモーターを回転させようと思うので、以前の記事で取り上げた感圧センサー(FSR402)をスイッチ替わりに入れました。もしなければ替わりに可変抵抗を5V,A0,GNDへ接続してください。

抵抗は2.2k-100kΩで手元にあるもので構いません。

Arduinoサーボモータ感圧センサー抵抗
5V5Vピン 1 か 2
GNDGNDピン2
A0
ピン2か1ピン1
9ピンPulse
配線図
配線方法

上記の通りに接続が完了したら、続いてプログラムの準備です。

動作プログラム

今回もサンプルプログラムをそのまま流用します。
ファイル→スケッチ例→10.StarterKit_BasicKit→P05_ServoMoodindicatorを選択します。

サンプルコード

いつもの通り書込みボタンを押すと準備は完了です。

書き込みプログラム

動作プログラム解説

完成!!

動作結果

指の押し圧に応じて、サーボモーターの回転角が変化します。
もし敏感すぎたり、鈍すぎたりした場合は抵抗値の値を変更すれば調整が可能です。感圧センサーの替わりに可変抵抗を取り付けた場合は可変抵抗のつまみを回すことで、回転角が変化すると思います。

まとめ

今回出力側の動作を理解したことで、入力(センサー等)-Arduino-出力側(モーター等)の一般的な製品での信号の流れが理解できたと思います。次回以降では通信モジュールと組み合わせてArduinoのIoT化にトライしたいと思います。