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
  • 用空格覆盖剩余字符

按“运行”,移动物体,然后按“检查”。

亲手试试

#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 在线编辑器