在过去的几个小时里,我一直在努力让一个光门定时器与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);
}发布于 2014-04-29 12:24:22
尝试通过将analogRead写入串口来测试传感器。我猜analogRead永远不会是0,因为总有周围的光。
您的阈值应该是更多的analogRead(sensor1) < somevalue )
https://stackoverflow.com/questions/23363745
复制相似问题