2017-08-31 24 views
0

私はデータロギングArduinoシールドでオプションのLEDを使用する方法を理解しようとしています。私は、LEDをオンにする簡単なif文を書いたが、それが欲しいときには消えない。なぜ誰かが私の理解を助けることができますか?Arduinoデータロガーopt。 LED

私は、土壌水分センサーを使用していると私は水分を超える300のコードはLEDに建てられたが、私は、オプションのLEDの仕組みを理解しようとしていますを使用して動作するときにLEDをオフにしたいです。

int led2 = 1; 

void setup() { 
    Serial.begin(9600); 
    // open serial port, set the baud rate as 9600 bps 
    pinMode(led2, OUTPUT); 
} 

void loop() { 
    // Read data and store 
    int val; 
    val = analogRead(0); //connect sensor to Analog 0 
    Serial.println(val); //print the value to serial port 
    if(val < 301) { 
    // If soil moisture is less than 301 (0-300 is dry) 
    digitalWrite(led2, HIGH); 
    } else { 
    digitalWrite(led2, LOW); 
    } 
    delay(1000); 
} 
+1

シリアル端末には、値が301に達し、_stays_が300を超えていることが示されていますか。 – Mepix

+0

オプションのLEDがTXピンとも呼ばれるピン1に接続されているのはなぜですか?あなたはそれがシリアル操作を示すLEDだけでなくユーザー制御可能であることを確信していますか? –

+0

@gre_gorこのArduinoシールドには、利用可能なピンに配線できる2つの「オプションの」LEDがあります。ユーザーがピンを選択するまでは何も接続されていません。この場合、OPはピン1(TX)を使用することを選択しました...これはおそらくここでの問題です。 – Mepix

答えて

1

センサーで測定したデータは、本質的にノイズが多い可能性があります。値を上回ったという理由だけで、すべてのデータポイントが引き続きその値を上回ることはありません。 LEDが消灯している可能性がありますが、センサーの値がそのしきい値を下回った場合にLEDが再び点灯している可能性があります。

は、あなたがその価値を打つかどうかを確認するためにあなたのコードにブールを取り入れてみます。 boolは、グローバルであるか、またはループ内でstaticとして使用する必要があります。

int led2 = 10; //**DO NOT USE PINS 0 or 1!** 

void setup() { 
    Serial.begin(9600); 
    // open serial port, set the baud rate as 9600 bps 
    pinMode(led2, OUTPUT); 
} 

bool hitThreshold = false; 

void loop() { 
    // Read data and store 
    int val; 
    val = analogRead(0); //connect sensor to Analog 0 
    Serial.println(val); //print the value to serial port 
    if(val <= 300 && !hitThreshold) { 
     // If soil moisture is less than 301 (0-300 is dry) 
     digitalWrite(led2, HIGH); 
    } else { 
     hitThreshold = true; 
     digitalWrite(led2, LOW); 
    } 
     delay(1000); 
} 

LEDが一定時間後に再度オンになるようにするには、タイマーをコードに組み込むことができます。次に、単純なしきい値ブール値の代わりに十分な時間が経過したかどうかを確認できます。

またdiscussed in this Arduino forumとして、信号のノイズを低減するために移動平均フィルタを実装することができます。それで遊んで、あなたのために何が効果があるかを見てください。

EDIT:シリアルポートを使用している間を行いが出デジタルなどのデジタルピン0と1を使用していません。 Pins 0 and 1 correspond to TX/RX。あなたはproblemsに入ります!別のピンを選択して、オプションのLEDを制御します。

関連する問題