Menu
CoddyTech

摄氏度转华氏度

本课属于 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 也能解决这个问题。

challenge icon

挑战

简单

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

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

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

自己练习: Arduino 在线编辑器