2014-05-20 116 views
-1

我從力傳感器獲取模擬輸入,並可以在串行監視器上實時看到它們。簡單的代碼,我寫了這是ARDUINO模擬輸入和LED

int SensorIn1 = 1; 

void setup() { 

Serial.begin (9600); 

} 

void loop() { 

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

現在我需要點燃了LED,當輸入值保持> 1000超過5秒,直到低於1000一次。任何人都可以幫我用示例代碼來執行此操作? #我正在使用ARDUINO UNO。

回答

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