光门定时器Arduino

时间:2014-04-29 11:44:21

标签: timer arduino sensor arduino-ide arduino-uno

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

}

1 个答案:

答案 0 :(得分:0)

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

您的阈值应该更高analogRead(sensor1) < somevalue )