在过去的几个小时里,我一直试图让光门定时器与2个光电池和激光器配合使用。它就像一根跳闸线,当第一传感器低时(跳闸时),它会触发启动时间。然后,当使用与触发传感器1相同的方法触发第二传感器时,应该继续然后停止计时器。我现在遇到的问题是计时器永远不会停止。这似乎是我的第二个传感器的问题,我已经切换了第二个传感器,传感器看起来很好。另一个问题是当第二个传感器也被触发时,计时器会发生奇怪的事情。似乎每次我重置或将新版本的代码放到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);
}
答案 0 :(得分:0)
尝试通过将analogRead
写入序列来测试传感器。
我的猜测是analogRead
永远不会真的为0,因为总会有环境光。
您的阈值应该更高analogRead(sensor1) < somevalue )