ブログだいちゃん

ブログだいちゃん

趣味のブログ

ブログだいちゃん

Arduino CharacterLCD その3 ソナーで距離測定

f:id:blogdaichan:20190104131216j:plain

CharacterLCDに表示してみようの3回目

RaspberryPi用に購入してあったセンサー類の中にあった、ソナーモジュール(HC-SR04)を使用し距離を測定してLCDに表示してみました。

センサーモジュールのパッケージ物

この中にソナーがありました、型番はHC-SR04です。

配線およびスケッチ

LCDの配線は前回と同様です、配線はスケッチのコメントに書きましたが詳しくはここを参照して下さい、これにソナーの配線を追加します

ソナー trig 端子をArduino 12Pinへ接続

ソナー echo 端子をArduino 13Pinへ接続

あと、VCC:5V  Gnd : (-)

/*
 * LCD 型番 SD1602VBWB
*LCDとArduino との端子接続 
*Arduino[11] <-> LCD[14]
*Arduino[10] <-> LCD[13]
*Arduino[09] <-> LCD[12]
*Arduino[08] <-> LCD[11]
*
*Arduino[07] <-> LCD[06]
*Arduino[06] <-> LCD[05]
*Arduino[05] <-> LCD[04]
*
*半固定抵抗10kΩ <-> LCD[03](コントラスト調整用)
*Arduino[5V] <-> LCD[02]
*Arduino[GND] <-> LCD[01]
*
*ソナー:HC-SR04
*/

#include <KanaLiquidCrystal.h>
#include <LiquidCrystal.h>
//LiquidCrystal lcd(5,6,7,8,9,10,11);
KanaLiquidCrystal lcd(5,6,7,8,9,10,11); //LCDへの接続ピン
const int trigPin = 12; //ソナー trig 端子をArduino 12Pinへ接続
const int echoPin = 13; //ソナー echo 端子をArduino 13Pinへ接続
long duration;
int distanceCm;
 
void setup() {
 lcd.begin(16,2); // LCD:16文字2行表示
 lcd.kanaOn(); //カタカナ表示設定
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
 lcd.setCursor(1,0); 
 lcd.print("Sonarデキョリソクテイ"); 
}

void loop() {
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 
 duration = pulseIn(echoPin, HIGH);
 distanceCm = duration*0.034/2;
 
 lcd.setCursor(0,1); 
 lcd.print("キョリ: "); 
 lcd.print(distanceCm); 
 lcd.print(" cm");
 lcd.print("      "); //cmの表示が残らないようにスペース挿入
 delay(500); 
}

精度は1cmですのでアバウトですがだいたい合っています。

f:id:blogdaichan:20190104131219j:plain

参 考

Ultrasonic Sensor HC-SR04 and Arduino Tutorial