1

私は過去数時間、光ゲート タイマーを 2 つのフォトセルとレーザーで動作させようと試みてきました。これはトリップ ワイヤーのようなもので、第 1 センサーが低い場合 (トリップした場合)、トリガーして時間を開始します。これは、センサー 1 がトリガーされたのと同じ方法を使用して 2 番目のセンサーがトリガーされたときに、継続してタイマーを停止することになっています。私が今抱えている問題は、タイマーが止まらないことです。2 番目のセンサーに問題があるようです。2 番目のセンサーを切り替えましたが、センサーは問題ないようです。もう1つの問題は、2番目のセンサーもトリガーされたときにタイマーが奇妙なことをすることです。また、コードの新しいバージョンを Arduino にリセットまたは配置するたびに、非常に奇妙な別のことを行うようです。他のさまざまなコードを試しましたが、どれも機能していないようです。

以下は私のコードです:

int sensor1 = 2;
int sensor2 = 3 ;

long startTime;
long endTime;
float elapsedTime;
long pause = 0;

void setup() {
  Serial.begin (9600);
  Serial.println ("RPV");

  pinMode (sensor1, INPUT);
  pinMode (sensor2, INPUT);

}

void loop() {

  if (analogRead(sensor1) == 0) {
    Start ();
    Serial.println (elapsedTime);
  }

  if (analogRead(sensor2) == 0) {
    Stop ();
    //Serial.println (endTime);

  }
}

void Start(){
  startTime = millis();
}

void Stop() {
  endTime = millis();
  elapsedTime = (endTime - startTime);
  elapsedTime = elapsedTime/1000;
  Serial.print("Time Seconds: ");
  Serial.println(elapsedTime);

}
4

1 に答える 1

0

analogRead をシリアルに書き込んでセンサーをテストしてみてください。私の推測では、analogRead周囲光が常に存在するため、 が実際に 0 になることはありません。

あなたのしきい値はもっとあるべきですanalogRead(sensor1) < somevalue )

于 2014-04-29T12:24:22.180 に答える