arduino循环中的递增和递减值

Increment and decrement value in arduino loop

我是 arduino 的新手,我遇到了一些问题。我买了两个运动PIR传感器,当有人从传感器前面经过时逻辑值为HIGH,否则为LOW。

Image

除此之外,我想在传感器 A 为高时增加一个值,并在传感器 B 为高时减少相同的值。

但是我这里有问题,我不能递增和递减变量值,并且串行打印不断重复5000毫秒,因为我需要使用延迟,否则代码将无法运行。

int pinPIRa;
int pinPIRb;
int count;

void setup() {
  Serial.begin(9600);
  pinMode(pinPIRa,INPUT);
  pinMode(pinPIRb,INPUT);

}

void loop() {

  if(digitalRead(pinPIRb) == HIGH){

    Serial.print("Sensor B");
    count--;

  }

  if(digitalRead(pinPIRa) == HIGH){

    Serial.print("Sensor A");
    count++;

  }

  delay(5000);

}

现在有两个问题想请教各位,如何防止连续剧重复多次?我尝试使用 Serial.flush() 但它不起作用。

我想知道如何递增和递减计数变量?计数变量递减和递增不止一次,因为代码在循环中 运行。

谢谢。

为防止重复,您还可以保留一个状态变量来跟踪更改。这将使您只考虑实际发生变化的状态。这样做不会达到任何内存限制:)

这应该封装打印和计数器更改(一次修复两个)