热敏电阻测温
本课属于 Coddy Arduino 学习旅程的“显示器与传感器”单元。第 20 课,共 24 课。
热敏电阻是一种电阻值会随温度变化的电阻器。在这个模块(NTC 类型)上,温度升高时,OUT 引脚的电压会下降:analogRead() 在 25 摄氏度时读数约为 512。
读数不是直线下降的,所以 map() 不适用。Beta 方程可以将读数转换为温度。BETA 的值来自元件的数据手册(这里是 3950),而 log() 是开发板内置的数学函数。你不需要理解其中的数学原理,照抄这一行就可以。
const float BETA = 3950;
float celsius = 1 / (log(1 / (1023.0 / reading - 1)) / BETA + 1.0 / 298.15) - 273.15;保留 1023.0 中的 .0。两个整数相除时,1023 / reading 会舍去小数部分,导致结果偏差好几度。
挑战
中等热敏电阻模块连接在 A0 上。打印温度:
- 用 beta 方程将读数转换为摄氏度
- 每秒打印两次,使用
Serial.println()
按“运行”,更改电路板上的温度,然后按“检查”。
亲手试试
const float BETA = 3950; // 热敏电阻的 beta 值
void setup() {
Serial.begin(9600);
}
void loop() {
int reading = analogRead(A0);
// 将读数转换为摄氏度并打印出来
delay(500);
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
显示器与传感器中的所有课
自己练习: Arduino 在线编辑器