06_SW-Alternate

スイッチをトグル動作にする

スイッチを押すたびにONとOFFが切り替わる動作を作ります。

スイッチモジュール
1

準備する

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

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

スイッチモジュール

スイッチモジュール

接続先:A

2

サンプルコード

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

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

プログラムを書き込む

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

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

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

4

動作確認

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

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

スイッチを押すたびに、シリアルモニターの表示が「ON」と「OFF」で切り替わるなら成功です。

5

コードの解説

スイッチが押されたときにbool型の状態を反転し、その値をシリアルモニターへ表示します。

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

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

bool swState = 0;ONとOFFの状態を覚えておくため、bool型の変数swStateを用意します。bool型はtrueまたはfalseの2種類を記録する型で、ここでは0、つまりfalseを初期値としてOFFから始めます。

void setup() {setup関数は最初に1回だけ実行され、シリアル通信とスイッチ端子を使う準備をします。

Serial.begin(115200);スイッチの判定結果をPCへ表示するため、115200bpsでシリアル通信を開始します。

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

void loop() {loop関数は繰り返し実行されます。スイッチが押されたかを確認し、記録しているON・OFF状態を表示します。

if (digitalRead(swPin) == HIGH) {スイッチ端子を読み取り、HIGH、つまり押されている状態かを確認します。条件を満たしたときだけ、状態を切り替えます。

swState = !swState;!はtrueとfalseを反転する記号です。現在のswStateがfalseならtrueへ、trueならfalseへ変えるため、スイッチを押すたびにONとOFFを切り替えられます。

if(swState == 1){切り替え後のswStateが1、つまりtrueになっているかを確認します。ONのときとOFFのときで表示を分けるための条件分岐です。

Serial.println("ON");swStateがtrueのとき、シリアルモニターへ「ON」と表示します。

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

} else {swStateが1ではない、つまりfalseのときはこちらの処理を実行します。

Serial.println("OFF");シリアルモニターへ「OFF」と表示します。

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