在我的湿度传感器低于 60% 后需要帮助在我的 arduino 上创建一个 5 分钟的计时器
Need help creating a 5 minute timer on my arduino arfter my humidity sensor goes below 60%
我正在制作一种设备,它可以在我淋浴时自动打开我的浴室风扇。当湿度回到 60% 以下时,我需要帮助设置一个 5 分钟的计时器。我不知道该怎么做,所以我会感谢所有能得到的帮助,谢谢。
//Main program loop.
void loop( )
{
float temperature;
float humidity;
if( measure_environment( &temperature, &humidity ) == true )
{
if (humidity >= 60){
digitalWrite(pinOut, HIGH);
}
else {
digitalWrite(pinOut, LOW);
}
delay(500);
}
}
我建议您使用一个布尔值来跟踪淋浴是否刚刚启动,例如:
boolean shower = false;
.... code
if (humidity >= 60) {
digitalWrite(pinOut, HIGH);
shower = true;
} else {
if (shower) {
delay(1000 * 60 * 5);
shower = false;
}
digitalWrite(pinOut, LOW);
}
.... code
现在,每次打开淋浴器时,布尔淋浴器都为真。当湿度再次降至 60 以下时,布尔值仍然为真,嵌套在 else 语句中的 if 语句被触发,导致五分钟的延迟,其中 pinOut 仍然设置为高电平。之后,布尔值再次被赋值为 false 并且风扇被关闭。
我正在制作一种设备,它可以在我淋浴时自动打开我的浴室风扇。当湿度回到 60% 以下时,我需要帮助设置一个 5 分钟的计时器。我不知道该怎么做,所以我会感谢所有能得到的帮助,谢谢。
//Main program loop.
void loop( )
{
float temperature;
float humidity;
if( measure_environment( &temperature, &humidity ) == true )
{
if (humidity >= 60){
digitalWrite(pinOut, HIGH);
}
else {
digitalWrite(pinOut, LOW);
}
delay(500);
}
}
我建议您使用一个布尔值来跟踪淋浴是否刚刚启动,例如:
boolean shower = false;
.... code
if (humidity >= 60) {
digitalWrite(pinOut, HIGH);
shower = true;
} else {
if (shower) {
delay(1000 * 60 * 5);
shower = false;
}
digitalWrite(pinOut, LOW);
}
.... code
现在,每次打开淋浴器时,布尔淋浴器都为真。当湿度再次降至 60 以下时,布尔值仍然为真,嵌套在 else 语句中的 if 语句被触发,导致五分钟的延迟,其中 pinOut 仍然设置为高电平。之后,布尔值再次被赋值为 false 并且风扇被关闭。