摄氏度转华氏度
本课属于 Coddy Arduino 学习旅程的“显示器与传感器”单元。第 21 课,共 24 课。
华氏度是另一种温度刻度:水在 32 F 时结冰,在 212 F 时沸腾。要进行转换,将摄氏度数乘以 9,除以 5,再加上 32:
float fahrenheit = celsius * 9 / 5 + 32;运算顺序很重要。开发板会从左到右依次计算 * 和 /,然后再计算 +。从 celsius 这个 float 开始计算,可以让每一步都保留小数。
如果写成 9 / 5 * celsius + 32,第一步会先将两个整数相除:9 / 5 的结果是 1,小数部分会被舍弃,最终答案就是 celsius + 32。写成 9.0 / 5 也能解决这个问题。
挑战
简单这段程序会计算 celsius。改为输出华氏温度:
- 使用
celsius * 9 / 5 + 32进行转换 - 输出华氏温度值,而不是摄氏温度值
按“运行”,然后按“检查”。
亲手试试
const float BETA = 3950; // 热敏电阻的 beta 值
void setup() {
Serial.begin(9600);
}
void loop() {
int reading = analogRead(A0);
float celsius = 1 / (log(1 / (1023.0 / reading - 1)) / BETA + 1.0 / 298.15) - 273.15;
// 将 celsius 转换为华氏温度,并改为输出转换后的值
Serial.println(celsius);
delay(500);
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
显示器与传感器中的所有课
自己练习: Arduino 在线编辑器