我有一个Arduino UNO连接到超声波测距仪,它可以读取变量distance
。但是,我需要以一秒的间隔读取当前距离,然后存储以前的距离(从最后一秒开始)。我还需要能够在代码中的其他地方使用这些变量(Dprev
和Dcurr
)。
我假设我需要把它放入某种每秒迭代的while
循环中,但我不知道如何将它们放在一起,或者在循环中使用时间。
这个想法很简单。两个用于存储距离的全局变量和两个 fas。 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
}