LCD 温度计
本课属于 Coddy Arduino 学习旅程的“显示器与传感器”单元。第 24 课,共 24 课。
温度计会用度数符号显示单位:24.5°C。LCD 会从自己的字符表中绘制字母,而在这张表中,度数符号对应数字 223。用 (char)223 发送它:(char) 会告诉 print() 绘制字符 223,而不是打印数字 2、2、3。
lcd.print(celsius, 1); // 保留一位小数:24.5
lcd.print((char)223); // 度数符号
lcd.print("C "); // 用空格覆盖原来的字符在文本中输入 ° 不起作用:编辑器会把它存储为另外两个数字,屏幕会绘制它在那两个位置对应的两个符号。
和 Serial.println(x, 3) 一样,lcd.print(value, 1) 中的第二个数字会设置 float 显示多少位小数。
挑战
中等这段程序会计算 celsius,顶行显示 Temperature。像 24.5°C 这样将结果显示在底行:
- 温度保留一位小数
- 然后显示度数符号
(char)223,再显示C - 后面加空格,这样数值较短时就不会留下多余内容
按“运行”,更改温度,然后按“检查”。
亲手试试
#include <LiquidCrystal.h>
// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const float BETA = 3950;
void setup() {
lcd.begin(16, 2);
lcd.print("Temperature");
}
void loop() {
int reading = analogRead(A0);
float celsius = 1 / (log(1 / (1023.0 / reading - 1)) / BETA + 1.0 / 298.15) - 273.15;
// 在底部一行显示温度,保留一位小数并加上度数符号,例如 24.5°C
delay(500);
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
显示器与传感器中的所有课
自己练习: Arduino 在线编辑器