首页 > 解决方案 > 如何上升到特定值,然后再下降和上升?

问题描述

我是一名生物学家,我正在为我们想要测试的假设建立一个细胞培养孵化器。我们已经建立了孵化器,但我在代码方面遇到了问题。我想让孵化器上升到 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-statementarduinoconditional-statementssensors

解决方案


一个简单的if.. else if..逻辑将处理上限和下限要求。

if (temp >= 21.5) {
    // turn off
}
else if (temp <= 20.5) {
    // turn on
}

推荐阅读