07_SW-LED

スイッチを押してLEDを光らせる

スイッチを押している間だけLEDを点灯させます。

スイッチモジュールLEDモジュール
1

準備する

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

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

スイッチモジュール

スイッチモジュール

接続先:A

LEDモジュール

LEDモジュール

接続先:B

2

サンプルコード

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

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

プログラムを書き込む

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

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

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

4

動作確認

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

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

スイッチを押している間だけLEDが点灯し、離すと消灯するなら成功です。

動作中、シリアルモニターにはスイッチを押している間は「Pushed」、離している間は「Not Pushed」と表示されます。

5

コードの解説

スイッチ入力がHIGHのときだけLED出力をHIGHにし、それ以外は消灯します。

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

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

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

void setup() {setup関数は最初に1回だけ実行されます。シリアル通信、スイッチ入力、LED出力の初期設定をここで行います。

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

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

pinMode(ledPin, OUTPUT);LEDへ信号を送れるように、ledPinをOUTPUT(出力)に設定します。

void loop() {loop関数は繰り返し実行され、スイッチが押されている間はLEDを点灯し、離すと消灯します。

if (digitalRead(swPin) == HIGH) {digitalReadでスイッチの状態を読み取ります。値がHIGH、つまりスイッチが押されている場合は、直後の点灯処理へ進みます。

digitalWrite(ledPin, HIGH);LED端子へHIGHを出力し、LEDモジュールを点灯します。

Serial.println("Pushed");スイッチが押されていることをシリアルモニターでも確認できるように、「Pushed」と表示します。

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

} else {スイッチが押されておらず、ifの条件を満たさない場合はこちらの処理を実行します。

digitalWrite(ledPin, LOW);LED端子へLOWを出力し、LEDモジュールを消灯します。

Serial.println("Not Pushed");スイッチが押されていないことを示すため、「Not Pushed」と表示します。

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