1

在过去的几个小时里,我一直在尝试让一个光门计时器与 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);

}
4

1 回答 1

0

尝试通过写入analogRead 串行来测试传感器。我的猜测是analogRead永远不会真正为 0,因为总会有环境光。

你的门槛应该更高analogRead(sensor1) < somevalue )

于 2014-04-29T12:24:22.180 回答