我正在尝试以时间量子计算HB100 微波传感器脉冲的数量。200ms
这是代码:
#include <SoftwareSerial.h>
#include <elapsedMillis.h>
elapsedMillis ElapsedTime;
#define Sensor A0
#define TimeQuanta 200
int Counter = 0;
boolean LastState;
void setup()
{
Serial.begin(250000);
pinMode(Sensor, INPUT);
}
void loop()
{
Counter = 0;
ElapsedTime = 0;
while (ElapsedTime < TimeQuanta ){
LastState = digitalRead(Sensor);
if (LastState == LOW && digitalRead(Sensor) == HIGH ){
Counter += 1; //Compare Last state with current state
}
}
Serial.print(digitalRead(Sensor));
Serial.print("\t");
Serial.println(Counter);
}
我需要知道数字读取周期。我正在将传感器的最后状态与当前状态进行比较,如果进行了更改(从低到高),则计数器会增加。但是,我的柜台总是0
!
- 代码是否正确(
if
条件)? - 我需要一些延迟吗?
- 可以计算这些脉冲吗?
这是微波传感器的逻辑分析仪输出:
编辑:如果我delay(1);
之前添加,if
那么计数器不再是 0。