我从力传感器获取模拟输入,可以在串行监视器上实时查看。我为此写的简单代码是
int SensorIn1 = 1;
void setup() {
Serial.begin (9600);
}
void loop() {
Serial.println(analogRead(SensorIn1));
delay (100);
}
现在,当输入值保持不变时,我需要点亮一个LED。 1000超过5秒,直到再次低于1000。任何人都可以帮我用示例代码来执行此操作吗? #我正在使用ARDUINO UNO。
答案 0 :(得分:2)
你自己试着回答这个问题吗?如果你建议你已经尝试了什么会有所帮助,它将更容易帮助你:)
完全未经测试的建议如下,应该给你一些事情......
int SensorIn1 = 1;
int led_pin = 13;
long gone_high_time = 0; // set to zero if input is not high
// set to time input went high if input is high
void setup() {
Serial.begin (9600);
}
void loop() {
int val;
val = analogRead(SensorIn1);
Serial.println(val);
if (val > 1000) {
if (gone_high_time == 0) {
gone_high_time = millis();
} else if (millis() - gone_high_time > 5000) {
digitalWrite(led_pin, HIGH);
}
} else {
gone_high_time = 0;
digitalWrite(led_pin, LOW);
}
delay (100);
}