在 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 - 用空格覆盖剩余字符
按“运行”,移动物体,然后按“检查”。
亲手试试
#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 在线编辑器