02_Distance
距離を測定する
超音波距離センサーで物体までの距離をセンチメートルで測ります。
準備する
CherryIoTとモジュールを接続する
CherryIoTの指定コネクタに以下のモジュールを接続し、CherryIoTをPCのUSB-A挿入口に接続します。
距離センサーモジュール
接続先:A
サンプルコード
GitHubで公開しているサンプルコードです。コードをコピーして Arduino IDEで使用します。
GitHubからコードを読み込んでいます...プログラムを書き込む
上のサンプルコードをコピーし、Arduino IDEに貼りつけます。
ボードとポートの設定を確認し、左上の 「→(書き込みボタン)」を押してCherryIoTに書き込みます。
初めて書き込む方は「はじめてのCherryIoT」で詳しい手順を確認してください。
動作確認
Arduino IDEの画面右上にあるアイコンをクリックすると、 画面下にシリアルモニターが表示されます。

センサーの前で物体を動かすと、シリアルモニターに表示される距離が変化するなら成功です。
コードの解説
超音波の往復時間をpulseInで読み取り、音速を使って距離へ換算します。
GitHubからコードを読み込んでいます...const int trigPin = 3;コネクタAの距離センサーの超音波送信端子に対応するGPIO3を、定数trigPinへ保存します。
const int echoPin = 1;コネクタAの距離センサーの超音波受信端子に対応するGPIO1を、定数echoPinへ保存します。
float Duration = 0;超音波が往復する時間を保存するため、小数を扱えるfloat型の変数Durationを用意し、初期値を0にします。
float Distance = 0;計算した距離を保存するため、float型の変数Distanceを用意し、初期値を0にします。
void setup() {setup関数は電源を入れたときやリセットしたときに1回だけ実行されます。ここでシリアル通信と距離センサーの端子を設定します。
Serial.begin(115200);距離センサーで測定した結果をPCへ表示するため、115200bpsでシリアル通信を開始します。
pinMode(echoPin,INPUT);距離センサーから戻ってくる信号を読み取れるように、echoPinをINPUT(入力)に設定します。
pinMode(trigPin,OUTPUT);距離センサーへ超音波を出すための信号を送れるように、trigPinをOUTPUT(出力)に設定します。
void loop() {loop関数は繰り返し実行されます。超音波を送信し、反射して戻るまでの時間から物体までの距離を計算します。
digitalWrite(trigPin, LOW);測定を始める前にtrigPinをLOWにし、送信信号をいったん停止状態にします。正しい長さの信号を作るために必要です。
delayMicroseconds(2);2マイクロ秒待ちます。マイクロ秒は100万分の1秒です。
digitalWrite(trigPin, HIGH);trigPinをHIGHにし、距離センサーへ超音波を送信するための信号を出します。
delayMicroseconds(10);10マイクロ秒待ちます。
digitalWrite(trigPin, LOW);trigPinをLOWへ戻し、送信信号を終了します。
Duration = pulseIn(echoPin, HIGH);pulseInでechoPinがHIGHになっている時間をマイクロ秒単位で測り、Durationへ保存します。この時間は、超音波が物体に当たって戻るまでの往復時間です。
Duration = Duration/2;Durationを2で割り、超音波の往復時間をセンサーから物体までの片道時間へ直します。
Distance = Duration*340*100/1000000;片道時間に音速340m/sを掛け、単位をセンチメートルへ換算してDistanceへ保存します。
Serial.print("Distance:");測定値の前に「Distance:」と表示します。
Serial.print(Distance);計算した距離を表示します。
Serial.println("cm");距離の単位「cm」を表示して改行します。
delay(500);0.5秒待ちます。