見出し画像

Arduino(2の続き)超音波モジュール

今回は、前回のarduino(2)の超音波モジュールの続きを書いていきます。
前回はまだ作るところまで行ってなかったので、それをします。

〜作っていこう‼︎〜

では早速、配線を繋いでいきます。とりあえず準備しよう。
↓の画像の通りに繋いでいきます。


このようにつなぐらしい。(意外と簡単)

〜製作完了〜

製作が完了しました。次はコードを書き込んでいます。(毎回コピーだけど)
パソコンに書き込んでいきます。


超音波モジュールのechoやvccやtrigやGNDの意味を調べてみました。

〜調べたこと〜

ここに、超音波モジュールのことについて調べてみました。

わかったこと

Vcc – 電源入力
Trig – トリガー   超音波出力用の信号を送信する
Echo – エコー    超音波入力用の信号を受信する
GND – グラウンド

っていう意味らしいです。
僕がvccって何の略かな?って思って調べてみました。すると、
vccのcはコレクタ側電源の略らしいです。
vcと表記するとトランジスタ1個のコレクタ側電源を指すので、
vccと表記して間違えにくくしてるということがわかりました。
ちゃんとした意味がわかると納得できる。

コード

下のコードは、おもろ家さんから引用してます。
おもろ家さんのリンクは→   https://omoroya.com/arduino-lesson10/

//Lesson 10 超音波距離センサモジュール
//距離を測定するスケッチ
//https://omoroya.com/
 #define  TrigPin 10 // Trig Pin定義 #define  EchoPin 11 // Echo Pin定義

float ProDelay = 0; //Echo出力のHigh期間を格納する変数
float Distance = 0; //計算した距離を格納する変数

void setup() {
Serial.begin( 9600 ); //シリアル通信のデータ転送レートを9600bpsで指定。bpsはビット/秒。
pinMode( TrigPin, OUTPUT ); //デジタル入出力の10番ピンをOUTPUTに指定
pinMode( EchoPin, INPUT ); //デジタル入出力の11番ピンをINPUTに指定
}

void loop() {
digitalWrite(TrigPin, LOW); //10番ピンからLOWを出力
delayMicroseconds(10); //10μs待機

//超音波を出力するためのトリガ信号生成
digitalWrite( TrigPin, HIGH ); //トリガ信号Highパルスエッジ
delayMicroseconds( 10 ); //トリガ信号パルス幅10μsを生成
digitalWrite( TrigPin, LOW ); //トリガ信号Lowパルスエッジ

ProDelay = pulseIn( EchoPin, HIGH ); //11番ピンに入力されるEchoピンのHigh期間を測定

if (ProDelay > 0) { // 0を越えていたら下記を実行
Distance = 340*ProDelay/2/10000; // 音速340m/sとして距離の計算とcmへの換算
Serial.print("Distance:"); //わかりやすくするため、シリアルモニタにDistance:を表示
Serial.print(Distance); //シリアルモニタに計算した距離を表示
Serial.println(" cm"); //表示した距離の後ろにcmを表示して改行する
}
delay(1000); //1000ms待機
}

上のコードの意味を自分なりに解釈

♯defineとは、変数定義するためのコードで、↑では、
♯define trigpin 10 のように使っている。それで、デジタルピン10を
trigpinと表すことができる。(あってるか分かりません。)

そして、シリアル通信の速度を設定し、trigpinを出力に、echopinを入力にする。
超音波を使って距離を計算し、シリアルモニタに表示する
という意味だと思います。(違うところもあるかも)

結果は?

さて、準備が整ったのでシリアルモニターを見てみます。

シリアルモニタに距離が写っていますね。成功です!
今度、これにプログラムを足して5センチ以下になったら音が鳴るというものを
作ってみたいです。

続く

この記事が気に入ったらサポートをしてみませんか?