Arduino上一级和当前传感器变量

时间:2015-04-13 20:29:02

标签: arduino sensor arduino-uno

我有一个Arduino UNO连接到超声波测距仪,读取变量distance。但是,我需要在一秒间隔内读取当前距离,然后存储前一个距离(从最后一秒开始)。我还需要能够在我的代码中使用这些变量(DprevDcurr)其他位置。

我认为我需要将它放入某种每秒迭代的while循环中,但我不知道如何将它们放在一起,或者在循环中使用时间。

1 个答案:

答案 0 :(得分:0)

这个想法很简单。两个全局变量用于存储距离和两个fase。 Arduino在执行开始时使用函数setup,然后循环无限函数loop。因此,在setup中,只需初始化变量,然后在loop中获取距离。

#define trigPin 13
#define echoPin 12

long duration, distance, distance_prev;
void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  duration = 0;
  distance = 0;
  distance_prev= 0;
}

void loop() {

  distance_prev = distance;

  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW); //Send ultrasonic pulse

  duration = pulseIn(echoPin, HIGH);//Time for ultrasonic pulse to go and back
  distance = (duration/2) / 29.1;//Conversion to cm

  /*CODE USING DISTANCES HERE*/

  delay(1000); //One second delay 
}