Menu
CoddyTech

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で保持します。小さな画面では、整数のセンチメートルのほうが読みやすいためです。

challenge icon

チャレンジ

中級

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);
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ディスプレイとセンサーのすべてのレッスン

自分で練習してみよう: Arduinoプレイグラウンド