ARDUINO模拟输入& LED

时间:2014-05-20 10:01:05

标签: arduino arduino-uno

我从力传感器获取模拟输入,可以在串行监视器上实时查看。我为此写的简单代码是

int SensorIn1 = 1;

void setup() {

Serial.begin (9600);

}

void loop() {

Serial.println(analogRead(SensorIn1));
delay (100);
}

现在,当输入值保持不变时,我需要点亮一个LED。 1000超过5秒,直到再次低于1000。任何人都可以帮我用示例代码来执行此操作吗? #我正在使用ARDUINO UNO。

1 个答案:

答案 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);
}