|
|
我在用1个马达计数的光电开关记录遮挡次数,每次用纸片遮挡再拿开,我的程序上的计数值增加2,3,4(不是1),请大神指教这个是什么原因?
int x; //用于记录遮挡光电开关的次数
void setup() {
Serial.begin(9600);
pinMode(2,INPUT); //用2号口 接受中断
x=0;
attachInterrupt(0,z,CHANGE); //每当2号口变化时,触发中断函数 Z
}
void loop() {
Serial.print(x); //串口输出遮挡次数
delay(1000);
Serial.println();
}
void z() //中断函数
{
if (digitalRead(2)==LOW) //每当2号口输出变为0时,x值加1
{
x++;
delay(20);
}
}
这个光电开关是平时输出高电平,遮挡输出低电平的,是对射的那种。不知道问题出在哪里啦,电路连接应该没问题,我接下拉电阻和上拉电阻都试过啦,计数值每次还是加2~4,感觉像程序问题或硬件问题,请问怎么解决? |
|