-1

力センサーからアナログ入力を取り、シリアルモニターでリアルタイムに見ることができます。このために私が書いた簡単なコードは

int SensorIn1 = 1;

void setup() {

Serial.begin (9600);

}

void loop() {

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

入力値が 1000 を超える状態が 5 秒以上続くと、再度 1000 を下回るまで LED を点灯させる必要があります。これを実行するためのサンプルコードを手伝ってくれる人はいますか?? # ARDUINO UNO を使用しています。

4

1 に答える 1

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);
}
于 2014-05-20T12:29:19.547 に答える