02_SW-DCMotor

スイッチでDCモーターを切り替える

スイッチを押すたびにDCモーターの回転と停止を切り替えます。

スイッチモジュールDCモーターモジュール
1

準備する

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

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

スイッチモジュール

スイッチモジュール

接続先:A

DCモーターモジュール

DCモーターモジュール

接続先:B

2

サンプルコード

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

02_SW-DCMotor.ino
GitHubで開く
GitHubからコードを読み込んでいます...
3

プログラムを書き込む

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

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

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

4

動作確認

Arduino IDEの画面右上にあるアイコンをクリックすると、 画面下にシリアルモニターが表示されます。

Arduino IDEでシリアルモニターを表示する場所

スイッチを押すたびに、DCモーターの回転と停止が切り替わるなら成功です。

動作中、シリアルモニターにはモーターの状態に合わせて「ON」または「OFF」と表示されます。

5

コードの解説

スイッチ入力で状態を反転し、その状態をモーターの出力へ反映します。

02_SW-DCMotor.ino
GitHubで開く
GitHubからコードを読み込んでいます...

const int swPin = 3;コネクタAのスイッチに対応するGPIO3を、定数swPinへ保存します。

const int motorPin = 4;コネクタBのDCモーターに対応するGPIO4を、定数motorPinへ保存します。

bool swState;DCモーターの回転と停止の状態を保存するため、bool型の変数swStateを用意します。bool型はtrueまたはfalseの2種類を扱う変数の型です。

void setup() {setup関数は電源を入れたときやリセットしたときに1回だけ実行されます。ここでシリアル通信、スイッチ入力、DCモーター出力を設定します。

Serial.begin(115200);DCモーターの動作状態をPCへ表示するため、115200bpsでシリアル通信を開始します。

pinMode(swPin, INPUT);スイッチから届く信号を読み取れるように、swPinをINPUT(入力)に設定します。

pinMode(motorPin, OUTPUT);DCモーターへ信号を送れるように、motorPinをOUTPUT(出力)に設定します。

void loop() {loop関数は繰り返し実行されます。スイッチが押されたかを確認し、記録している状態に応じてDCモーターを回転または停止させます。

if (digitalRead(swPin) == HIGH) {digitalReadでスイッチの状態を読み取り、HIGH、つまり押されている状態かを確認します。

swState = !swState;!を使ってswStateのtrueとfalseを反転し、スイッチを押すたびに回転と停止の状態を切り替えます。

if (swState == 1) {swStateが1、つまりtrueになっているかを確認します。

digitalWrite(motorPin, HIGH);swStateがtrueの場合はmotorPinへHIGHを出力し、DCモーターを回転させます。

Serial.println("ON");DCモーターが回転していることを示す「ON」を表示します。

delay(300);0.3秒待ちます。

} else {swStateがtrueではない場合は、else以降の処理を実行します。

digitalWrite(motorPin, LOW);motorPinへLOWを出力し、DCモーターを停止します。

Serial.println("OFF");DCモーターが停止していることを示す「OFF」を表示します。

delay(300);0.3秒待ちます。