Arduino按钮在锁定步骤中移动

时间:2013-05-19 00:59:48

标签: arduino

我有一个Arduino项目(它实际上是Mintduino,但它是同一个微控制器)有三个按钮,设置类似于教程(http://arduino.cc/en/Tutorial/ButtonStateChange),它们之间有一个共同的+和 - 。按钮分别连接到A0,A1和A2。这是我用来阅读它们的代码:

void setup() {
  pinMode(A0, INPUT);
  pinMode(A1, INPUT);
  pinMode(A2, INPUT); 
  Serial.begin(9600);
}

void loop() {
  Serial.print("b1: ");
  Serial.print(digitalRead(A0));
  Serial.print("  b2: ");
  Serial.print(digitalRead(A1));
  Serial.print("  b3: ");
  Serial.print(digitalRead(A2));
  Serial.println("");
}

当按钮被按下时,我得到:

b1:1 b2:1 b3:1

当我按任何按钮时,我得到:

b1:0 b2:0 b3:0

所以我只能告诉按下了一个按钮,并且无法判断按下了哪个按钮。如何告诉另一个按钮?

我想我知道它为什么会发生,但我想不出一个不涉及使用三种不同电池的解决方案,因此我可以获得单独的电路。

1 个答案:

答案 0 :(得分:4)

很可能你的接线错了。或者您的代码与您的布线不符。

首先,你不应该使用A0,A1,A2而是使用数字引脚。请注意,A0,A1,A2兼作数字引脚但具有不同的数字。

所以很可能你正在读取你希望阅读的引脚的不同引脚。

接下来是您可能缺少上拉/下拉电阻。不幸的是,教程很糟糕。它没有告诉您内部上拉电阻,它可以放弃教程中描述的外部电阻。

如果这是我怀疑的方式,那么你的引脚是浮动的并且随机拾取噪音。这可能有任何症状,包括您描述的症状。我建议你扩展你的代码来读取从0到19的所有DIGITAL引脚,看看它对按钮按下的反应。然后你就会知道正确的密码。

如果没有针脚按需要做出反应,你很可能会错误地接线。