こんばんは!
今回はNewPingというArduino用のライブラリーを使って超音波センサで距離を測っていこうと思います。
前に
という記事を書いたときはこのライブラリを知らなかったので使わないでコードを書いたのですが、このライブラリを使うと超音波センサのトリガーピンとエコーピンを1つのポートで使うことができます。Arduinoはポートの数が多くないので多数のポートが必要な時には便利だと思います。
NewPingライブラリのダウンロード
- こちらのサイトの「DOWNLOAD NEWPING」というボタンを押してダウンロードをする
- 解凍ソフトを使ってzipファイルを解凍する
- 解凍したファイルをArduinoフォルダの中の「libraries」フォルダに移動
- Arduino IDEを開いて「スケッチ」→「ライブラリのインクルード」→「NewPing」を選択
やり方は写真付きでダウンロードのサイトにも載っているのでもしわからなければそちらを参考にするといいと思います。
使用するもの
・Arduinoメインボード(https://amzn.to/2vkPIUH)
・USBケーブル(https://amzn.to/2UHhntl)
・ブレッドボード(https://amzn.to/38eNi8u)
・ジャンパワイヤ (https://amzn.to/39uBU8T)
・超音波センサHC-SR04(https://amzn.to/3an15MJ)
手順
まず、下の図のように超音波センサとArduinoを接続します。
次にArduino IDEを開いて次のコードを書き込んでいきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <NewPing.h> #define PIN 2 #define MAX_DISTANCE 200 NewPing sonar(PIN,PIN, MAX_DISTANCE); void setup() { Serial.begin(9600); } void loop() { delay(70); Serial.print(sonar.ping_cm()); Serial.println("cm"); } |
コードの説明をします。まず、
#include <NewPing.h>
でNewPingライブラリをインクルードしています。
次に
NewPing sonar(PIN,PIN, MAX_DISTANCE);
でトリガーピン、エコーピン、最大距離の初期設定をしています。
loop内では
Serial.print(sonar.ping_cm())
によってセンチメートル単位の距離をシリアルモニタに記述しています。
sonar.ping_cm()以外にもメソッドが色々あるので興味がある方はこちらのページを見てください。
https://playground.arduino.cc/Code/NewPing
これをマイコンボードに書き込んでシリアルモニタを見ると
きちんと読み取れていると思います。
まとめ
今回はNewPingというライブラリを使って超音波センサを使用しました。
超音波センサを複数搭載するときやポートが不足しそうなときに役立ちますし、コードも短くなるので、使うといいと思います。
今回はこれで終わります。
ではまた!