arduino循环中的递增和递减值

时间:2016-07-03 17:09:28

标签: arduino arduino-uno

我是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()但它不起作用。

我想知道如何递增和递减计数变量? count变量递减并递增多次,因为代码在循环内运行。

谢谢。

1 个答案:

答案 0 :(得分:2)

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

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