私は過去数時間、光ゲート タイマーを 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);
}