08_ServoMotor

サーボモーターを動かす

サーボモーターを0度から180度まで往復させます。

サーボモーターモジュール
1

準備する

CherryIoTとモジュールを接続する

CherryIoTの指定コネクタに以下のモジュールを接続し、CherryIoTをPCのUSB-A挿入口に接続します。

サーボモーターモジュール

サーボモーターモジュール

接続先:A

Arduino IDEに必要なライブラリをインストールする

このサンプルでは、次のライブラリを追加する必要があります。

  • ESP32Servo by Kevin Harrington

初めて使用する場合のみインストールしてください。

ライブラリをインストールする
2

サンプルコード

GitHubで公開しているサンプルコードです。コードをコピーして Arduino IDEで使用します。

08_ServoMotor.ino
GitHubで開く
GitHubからコードを読み込んでいます...
3

プログラムを書き込む

上のサンプルコードをコピーし、Arduino IDEに貼りつけます。

ボードとポートの設定を確認し、左上の 「→(書き込みボタン)」を押してCherryIoTに書き込みます。

初めて書き込む方は「はじめてのCherryIoT」で詳しい手順を確認してください。

4

動作確認

サーボモーターが0度から180度まで動き、元の位置まで戻る動作を繰り返すなら成功です。

5

コードの解説

ESP32Servoライブラリを使い、角度を1度ずつ変えながらサーボを往復させます。

08_ServoMotor.ino
GitHubで開く
GitHubからコードを読み込んでいます...

#include <ESP32Servo.h>ESP32でサーボモーターを操作するため、ESP32Servoライブラリを読み込みます。ライブラリとは、複雑な制御を簡単な命令で使えるようにまとめたプログラムです。

const int motorPin = 3;コネクタAのサーボモーターに対応するGPIO3を、定数motorPinへ保存します。

Servo myservo;サーボモーターを操作するため、Servo型のmyservoオブジェクトを作ります。以降はmyservoに命令を書くことで角度を指定できます。

void setup() {setup関数は電源を入れたときやリセットしたときに1回だけ実行されます。ここでサーボモーターを使う端子を設定します。

myservo.attach(motorPin);myservoをmotorPinへ割り当てます。これにより、GPIO3からサーボモーターを動かすための制御信号を出せるようになります。

void loop() {loop関数は繰り返し実行されます。0度から180度まで動かしたあと、180度から0度まで戻す動作を繰り返します。

for(int angle = 0; angle <= 180; angle++) {for文は同じ処理を決めた範囲で繰り返す命令です。整数型の変数angleを0から始め、180以下の間、処理後にangleを1増加させます。

myservo.write(angle);現在のangleの値をサーボモーターの角度として指定します。angleが1ずつ増えるため、0度から180度まで少しずつ動きます。

delay(15);0.015秒待ちます。

for(int angle = 180; angle >= 0; angle--) {今度はangleを180から始め、0以上の間、処理後にangleを1減少させます。サーボモーターを180度から0度まで戻すための繰り返しです。

myservo.write(angle);減少していくangleの値を角度として指定し、サーボモーターを0度まで少しずつ戻します。

delay(15);0.015秒待ちます。