我在Arduino One中使用attachInterrupt()函数来识别执行器的极限。通常,我测试它为if(),但执行器周期非常快,因此识别变得复杂。因此,我选择使用attachInterrupt(),但我不知道是否在中断的情况下,我必须使用拉下电阻在输入。有人能告诉我是否需要这个吗?
目前,该系统如下:

代码:
attachInterrupt(digitalPinToInterrupt(interruptPin2), EndCourse2, FALLING);
attachInterrupt(digitalPinToInterrupt(interruptPin3), EndCourse3, FALLING);
void EndCourse2() {
digitalWrite(12,LOW);
btnpressed2=0;
}
void EndCourse3() {
if(btnpressed2==0) {
digitalWrite(12,HIGH);
CounterAT2++;
}
btnpressed2=1;
}发布于 2017-08-22 20:39:47
在这种情况下,你需要一个拉下电阻。
Arduino的数字输入具有很高的阻抗,这可以看作是绝缘输入。如果您省略了电阻器,并考虑当开关打开时,Arduino的输入是浮动的。这意味着数字输入没有连接到任何潜在的。电磁干扰会导致电流进入你的电路。基本上,由于这种干扰,输入端的电压会从低到高。
要定义输入的状态,当开关打开时,应该增加电阻,以确保输入处于低水平,不受电磁干扰。
如果你镜像你的电路,例如开关连接到接地,电阻器连接到Vcc,你可以通过将输入模式设置为INPUT_PULLUP将拉高电阻移到Arduoin中。从那时起使用内部电阻器,你可以把电阻器放在外面。
https://stackoverflow.com/questions/45826205
复制相似问题