Menu
CoddyTech

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 显示多少位小数。

challenge icon

挑战

中等

这段程序会计算 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);
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

显示器与传感器中的所有课

自己练习: Arduino 在线编辑器