我刚刚开始深入研究Arduino的几个Teensy和Teensy ++的世界,到目前为止,除了极端奇怪的行为,我试图从输入多个按钮。Arduino:使用按钮的难以理解的行为
非常多,我拥有的是一个teensy ++,一个LCD显示屏和3个按钮。我刚刚读取的代码读取了所有三个按钮的状态,然后将结果发布到屏幕0或1.不能更简单,这就是为什么我无法弄清楚为什么它不起作用。
只需一个按钮,上述工作正常。但是,只要我将其他按钮中的一个按钮添加到混音中,而不是按右按钮,当按下按钮1时,按钮1和按钮2都会变为1.按钮2不会执行任何操作。按钮三也没有任何作用,甚至在任何其他按钮被按下时甚至不会转向一个按钮。
我的第一个倾向是,我笨拙的屁股已桥接板上的焊料痕迹。我抓住了一个新的,并重新焊接,检查每一个接触,以确保它是好的,它是。我没有使用通常使用的面包板导线,而是使用坚固的芯线来确保导线不是问题。如果出现故障,我也换了面包板。
同样的问题。我不确定可能是什么原因导致无法正常工作。我希望你大师的一个可以一举,告诉我,我在做一些完全错误的,因为我想不通为什么它是不是在所有
这工作是我的代码:
#include <LiquidCrystal.h>
LiquidCrystal lcd(5,6,7,8,9,10);
void setup(){
pinMode(13,INPUT);pinMode(21,OUTPUT); //Button one
pinMode(12,INPUT);pinMode(20,OUTPUT); //Button two
pinMode(11,INPUT);pinMode(19,OUTPUT); //Button three
digitalWrite(21,HIGH); //Power buttons
digitalWrite(20,HIGH);
digitalWrite(19,HIGH);
lcd.begin(16,4);
}
int resp1 = 3; //Variables for responses
int resp2 = 3;
int resp3 = 3;
void loop(){
resp1 = digitalRead(13); //Read button 1
resp2 = digitalRead(12); //Read button 2
resp3 = digitalRead(11); //Read button 3
//Print it to screen
lcd.clear();
lcd.print("Mike's Devboard");
lcd.setCursor(0,1);
lcd.print("Btn 1:");
lcd.print(resp1);
lcd.print(" Btn 2:");
lcd.print(resp2);
lcd.setCursor(0,2);
lcd.print("Btn 3:");
lcd.print(resp3);
delay(48);
}
任何想法的?
你可以发布布线架构吗?看着你的代码,我看到了一些奇怪的东西。 1)不要使用输出作为按钮的电源使用gnd和5V在按钮和5v之间串联一个电阻,就像在arduino [教程]中一样(http://arduino.cc/en/Tutorial/DigitalReadSerial) – Sibster 2012-04-04 06:20:43
准确地说,我做错了,谢谢。我认为电阻器只是用来防止LED烧毁,但更仔细地阅读,我明白为什么我需要它。现在正在工作。 – 2012-04-04 16:50:48