if-statement - 如何上升到特定值,然后再下降和上升?
问题描述
我是一名生物学家,我正在为我们想要测试的假设建立一个细胞培养孵化器。我们已经建立了孵化器,但我在代码方面遇到了问题。我想让孵化器上升到 21.5C,然后下降到 20.5C,然后再上升到 21.5C,一遍又一遍。
我正在使用 arduino、温度传感器和继电器来检测温度并打开和打开加热元件。
我有我的代码的方式,当我打开孵化器时,继电器打开加热元件,直到温度传感器检测到 21.5C,然后真正关闭加热元件,但一旦温度下降,它就会打开再次加热元件,所以它一直保持在 21.5C。我不知道如何让它冷却到 20.5C 并再次上升到 21.5C。你能帮助我或指出我正确的方向吗?
这是我的代码:
#include <math.h>
int pinOut = 10;
double Thermistor(int RawADC) {
double Temp;
Temp = log(10000.0*((1024.0/RawADC-1)));
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );
Temp = Temp - 273.15;
return Temp;
}
void setup() {
pinMode(10, OUTPUT);
Serial.begin(9600);
}
void loop() {
int val;
double temp;
val=analogRead(0);
temp=Thermistor(val);
Serial.print("Temperature = ");
Serial.print(temp);
Serial.println(" C");
if (temp >= 21.5){
digitalWrite(pinOut, HIGH);
}
else {
digitalWrite(pinOut, LOW);
}
delay(1000);
}
解决方案
一个简单的if.. else if..
逻辑将处理上限和下限要求。
if (temp >= 21.5) {
// turn off
}
else if (temp <= 20.5) {
// turn on
}
推荐阅读
- c++ - Friend 函数 = 两个不同类的运算符重载
- amazon-web-services - 拥有多个 main.go 文件以部署基于 AWS Lambda 的应用程序
- mysql - 从表中删除外键
- python - 如何从熊猫数据框中删除累积对,只保留其中一个
- javascript - 从特定字符串中提取特定字符串值
- android - 如何使用动画矢量可绘制动画 TabLayout 中的图标?
- rabbitmq - RabbitMQ ha-promote-on-shutdown vs ha-promote-on-failure
- c# - 有没有办法在 Select 中的 Select 上添加 where 子句 - 我需要减少返回的 JSON 数量
- eclipse - 一个工作目录中的两个 git 存储库
- mysql - 如何通过命令行将mysql数据库转储到csv文件?