LCDに距離を表示
CoddyのArduinoジャーニー「ディスプレイとセンサー」セクションの一部。レッスン 23/24。
センサーと画面があれば、コンピューターなしで動作する計測器を作れます。ここではHC-SR04が距離を測定し、LCDに表示します。
各手順はこれまでのレッスンで学んだ内容です。エコーの時間を測定し、センチメートルに換算して、単位を後ろに付けて最下段に表示します。
int cm = duration * 0.034 / 2;
lcd.setCursor(0, 1);
lcd.print(cm);
lcd.print(" cm ");cmの後ろの空白が重要です。150 cmから20 cmに変わると、新しいテキストは短くなります。空白がないと、画面には20 cmmと表示されてしまいます。ここでは距離をintで保持します。小さな画面では、整数のセンチメートルのほうが読みやすいためです。
チャレンジ
中級LCDには上の行にDistance:と表示され、スケッチはエコー時間を測定します。その下に距離を表示しましょう。
- 時間を整数のセンチメートルに変換します
- 下の行の先頭に数値を表示し、その後に
cmを表示します。例:25 cm - 余った文字をスペースで覆います
Runを押し、物体を動かしてから、Checkを押します。
自分で試してみよう
#include <LiquidCrystal.h>
// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int trigPin = 9;
const int echoPin = 10;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
lcd.begin(16, 2);
lcd.print("Distance:");
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
// 距離をセンチメートル単位で計算し、25 cm のように下の行に表示する
delay(200);
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ディスプレイとセンサーのすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド