私はいくつかのTeensyとTeensy++でarduinoの世界を掘り下げ始めたところですが、これまでのところ、複数のボタンから入力を取得しようとしたときに得た非常に奇妙な動作を除いて、うまくいきました。
ほとんどの場合、私が持っているのは、teensy ++、LCDディスプレイ、および3つのボタンだけです。私が持っているコードは、3つのボタンすべての状態を読み取り、結果を0または1の画面に投稿します。これ以上簡単なことはできません。そのため、機能しない理由を理解するのに苦労しています。
ボタン1つで、上記は正常に機能します。しかし、他のボタンの1つをミックスに追加するとすぐに、正しく機能する代わりに、ボタン1を押すと、ボタン1とボタン2の両方が1に変わります。ボタン2は何もしません。ボタン3も何もせず、他のボタンが押されても1になりません。
私の最初の傾向は、私の不器用なお尻がボード上のはんだでいくつかの痕跡を埋めたことでした。私は新しいものの1つをつかみ、それを新たにはんだ付けし、すべての接触をチェックして、それが良かったことを確認しました。私が通常使用するブレッドボードワイヤーを使用する代わりに、ワイヤーが問題にならないことを確認するためにソリッドコアワイヤーを使用しました。また、故障した場合に備えてブレッドボードを交換しました。
同じ問題。これが機能しない原因が何であるかわかりません。グルの一人が急襲して、なぜそれがまったく機能していないのか理解できないので、私は完全に間違ったことをしていると私に言ってくれることを願っています
これは私のコードです:
#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);
}
何か案は?