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ですのでアバウトですがだいたい合っています。