05_PhotoInterrupter

物体の通過を検出する

フォトインタラプターの溝を物体が遮ったかどうかを検出します。

フォトインタラプターモジュール
1

準備する

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

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

フォトインタラプターモジュール

フォトインタラプターモジュール

接続先:A

2

サンプルコード

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

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

プログラムを書き込む

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

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

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

4

動作確認

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

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

センサーの溝に紙などを入れると、シリアルモニターに「Interrupt!」と表示されるなら成功です。

5

コードの解説

センサーのデジタル入力がLOWになったとき、遮られたことをシリアルモニターへ表示します。

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

const int ruptPin = 3;コネクタAのフォトインタラプターに対応するGPIO3を、定数ruptPinへ保存します。

void setup(){setup関数は電源を入れたときやリセットしたときに1回だけ実行されます。ここでフォトインタラプター端子とシリアル通信の初期設定を行います。

pinMode(ruptPin, INPUT);フォトインタラプターから届く信号を読み取れるように、ruptPinをINPUT(入力)に設定します。

Serial.begin(115200);フォトインタラプターの判定結果をPCへ表示するため、115200bpsでシリアル通信を開始します。

void loop(){loop関数は繰り返し実行されます。フォトインタラプターの溝が物体で遮られているかを確認し、結果を表示します。

if (digitalRead(ruptPin)==LOW) {digitalReadでruptPinの状態を読み取ります。値がLOW、つまりセンサーの溝が物体で遮られている場合は、直後の処理を実行します。

Serial.println("Interrupt!");物体を検出したことを示す「Interrupt!」を表示して改行します。

} else {溝が遮られておらず、if文の条件を満たさなかった場合はこちらの処理を実行します。

Serial.println("...");物体を検出していないことを示す「...」を表示して改行します。

delay(500);0.5秒待ちます。