超音波センサレンジファインダヘルプ(解決済み)

私はArduinoと超音波センサーで非常に簡単なレンジファインダーを作りたいと思っています。私はNewPingライブラリを変換するように設定していますが、LED4が点滅するようにしたいとします。たとえば、センサーの読み取り値が34インチ未満の場合は10ミリ秒ごと、20ミリ秒ごとに点滅する場合34インチよりも大きい。

(私はちょうど例としてmillisecondものを使用しています、明らかに20ミリ秒から10を伝えるのは難しいでしょう、例だけ、明るさも実際のコードで使用されています)

どのくらい私はこれを行うだろうか?

私は今のところ少しのコードしか持っていませんが、 変数名 'IN'はインチに変換された値です*

  if (IN <=34)
  {
    analogWrite(LED4,255);
    delay(100);
    analogWrite(LED4,0);
  }
  else if (IN >=34)
  {
    analogWrite(LED4,1);
    delay(20);
    analogWrite(LED4,0);
  }
  else if (IN >=40)
  {
    analogWrite(LED4,100);
    delay(1000);
    analogWrite(LED4,0);
  }

さて、今、私の問題は、私はこれに固執しているということです。第2のシナリオが最初に満たされるので、第3のシナリオは決して起こることはありません。私はそれを一種のようにする必要があります

 if sensor reads more than 34 inches, but less than 40 run scenario #2

シナリオ#2の欠けているコードは何ですか?

みんな、ありがとう。

(また、遅延を知っているのはおそらく、これを実行する最良の方法ではない、ということを付け加えておきます。私は最初のArduinoを手直ししているので、誰かが良い方法でヒントを持っていれば、

編集:

私はそれを理解しました。これもまた助けが必要な人にとっては、

  if (IN <=5)
  {
    analogWrite(LED4,255);
    delay(100);
    analogWrite(LED4,0);
  }
  else if (IN >=5 && IN <=12)
  {
  analogWrite(LED4,1);
  delay(200);
  analogWrite(LED4,0);
  }
  else if (IN >=13)
  {
  analogWrite(LED4,100);
  delay(300);
  analogWrite(LED4,0);
  }

私は値を微調整しましたが、これはレンジファインダのコードを動作させるものです。

もし2番目のelseに必要なコードがあれば

  else if (IN >=5 && IN <=12)

The newly added code was "&& IN <=12)" Which is what I was looking for. Now LED4 blinks bright and fast when it detects something is within 5 inches (or value), it blinks dimly and slowly when something is closer than a 12 inches, but farther than 5 inches, and brightly and slightly slower when something is farther away than 13 inches.

0
追加された 編集された
ビュー: 2
ru de
あなたは "編集"を答えに移し、それを受け入れ(緑色のチェック)、タイトルから "解決済み"を取り除くべきです。あなた自身の質問に答えるのは大丈夫です。
追加された 著者 RubberDuck,

答えはありません

0