私が知りたいのですが。
私はピン6,7,8,9をINPUT_PULLUPとして持っています。私はお互いのピンに切り替える。なぜPIN 6でスイッチを押すと時には PIN 7も入力されます。その他のケースでは、7時にスイッチを押すと、他のピンもトリガします。どうして?
この場合はランダムです。私は10回押すとすべてが大丈夫ですが、その後に他のピンもトリガされます。もう1つのケースは4-5回押すだけで、他のピンもトリガします。
一時的なスイッチではなく、スイッチのオン/オフを使用します。
これを修正するには? arduinoによくある問題ですか?
更新
プログラム。 (シンプルプログラム)
int led1 = 1;
int led2 = 2;
int led3 = 3;
int led4 = 5;
int switch1 = 6;
int switch2 = 7;
int switch3 = 8;
int switch4 = 9;
int led = 13;
//int counter = 0;
void setup()
{
//put your setup code here, to run once
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(switch1, INPUT_PULLUP);
pinMode(switch2, INPUT_PULLUP);
pinMode(switch3, INPUT_PULLUP);
pinMode(switch4, INPUT_PULLUP);
pinMode(led, OUTPUT);
}
void loop()
{
if (digitalRead(switch1) == 0){
digitalWrite(led1, HIGH);
}
if (digitalRead(switch1) == 1){
digitalWrite(led1, LOW);
}
if (digitalRead(switch2) == 0){
digitalWrite(led2, HIGH);
}
if (digitalRead(switch2) == 1){
digitalWrite(led2, LOW);
}
if (digitalRead(switch3) == 0){
digitalWrite(led3, HIGH);
}
if (digitalRead(switch3) == 1){
digitalWrite(led3, LOW);
}
if (digitalRead(switch4) == 0){
digitalWrite(led4, HIGH);
}
if (digitalRead(switch4) == 1){
digitalWrite(led4, LOW);
}
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
}
回路図

私のサーキットは入力のように簡単です。リードのみの出力は、抵抗とグランド。
I found similar case http://www.instructables.com/id/Arduino-Push-Switch-Debouncing-Interrupts/
ウェブサイトでは、「この設定の問題は、
ボタンが押されたときに、割り込みが複数回呼び出されていました。
他のボタンをトグルすることもできます。なぜこれが起こったのですか?それは
スイッチがフィードバックをバウンスしています。 "
ハードウェアを変更せずに解決策はありますか?
解決
問題は電線です。
スイッチ用のワイヤーはジャンパーケーブルであり、お互いに接近(タッチ)しています。私は別れようと努力します。他のピンはトリガされません。