我正在测量arduino uno上的光,温度和湿度,并编程循环每分钟运行一次 . 监视串行监视器上的值 .
但是,我想要的是运行一次以获取值,然后等待或暂停的代码,直到其中一个值发生变化,然后在串行监视器上输出 .
我希望立即了解传感器的变化,而不是等待一分钟才能运行循环 . 有没有办法做到这一点?
谢谢 .
所以我需要在以下代码中添加if / else函数?
int lightPin = A5;
int lightok = 9;
int lighthigh = 10;
void setup()
{
Serial.begin(9600);
pinMode(lightok,OUTPUT);
pinMode(lighthigh,OUTPUT);
}
void loop()
{
delay(600000);
int lightlevel = analogRead(lightPin);
lightlevel = map(lightlevel, 0, 1023, 0, 255);
lightlevel = constrain(lightlevel, 0, 255);
Serial.print("Lightlevel: ");
Serial.println(lightlevel);
//led control for light levels
if (lightlevel < 15 || lightlevel > 125) {
digitalWrite(lighthigh, HIGH);
digitalWrite(lightok, LOW);
} else {
digitalWrite(lighthigh, LOW);
digitalWrite(lightok, HIGH);
}
}
1 回答
你必须这样做:
你可以更快地运行循环,比如每秒或半秒,如果值与前一个值不同或者差异大于特定值,则只输出一个值为serial
只有在出现问题时才能设置中断运行代码 . 但我需要知道你正在使用的传感器在这一个上更具体 .
希望这可以帮助! :)
EDIT
好的,我会做那样的事情: