###実現したいこと
回路中にボタンが二つ(A, B)あり,Aを先に押したなら"player1",Bならば"player2"と表示させるもの.
片方のボタンが押されたらLEDを点灯させて,入力の受付を5秒間拒絶する.
###困っていること
次に示す二つのコードそれぞれで,ボタンによるLEDのON/OFFとLCDの表示は成功しているのだが,組み合わせた「現段階のコード」にあるものを用いると,ボタンを押してもLEDとLCDが点灯しない.(コードと配線を少し変えたらLCDの表示は成功した.LEDはボタンに関わらずずっと点灯している.これは5番につないでいたところを5Vにつないで常時供給しているからである.)
ボタンを押したときに光って,こちらも5秒経過後に消灯したいです.
コードや配線でおかしなところを教えていただきたいです.
arduino
1 2int ledPin = 5; 3int buttonApin = 9; 4int buttonBpin = 8; 5 6byte leds = 0; 7 8void setup() 9{ 10 pinMode(ledPin, OUTPUT); 11 pinMode(buttonApin, INPUT_PULLUP); 12 pinMode(buttonBpin, INPUT_PULLUP); 13} 14 15void loop() 16{ 17 if (digitalRead(buttonApin) == LOW) 18 { 19 digitalWrite(ledPin, HIGH); 20 } 21 if (digitalRead(buttonBpin) == LOW) 22 { 23 digitalWrite(ledPin, LOW); 24 } 25}
arduino
1#include <Wire.h> 2#include <LiquidCrystal_I2C.h> 3LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display 4void setup() 5{ 6lcd.init(); // initialize the lcd 7lcd.init(); 8// Print a message to the LCD. 9lcd.backlight(); 10lcd.setCursor(0,0); 11lcd.print("Hello"); 12lcd.setCursor(0,1); 13lcd.print("Hi"); 14} 15void loop() 16{ 17}
###現段階のコード(1回改訂)
arduino
1#include <Wire.h> 2#include <LiquidCrystal_I2C.h> 3LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display 4 5int ledPin = 5; 6int buttonApin = 9; 7int buttonBpin = 8; 8 9byte leds = 0; 10 11void setup() { 12 // put your setup code here, to run once: 13 lcd.init(); 14 lcd.backlight(); 15 pinMode(ledPin, OUTPUT); 16 pinMode(buttonApin, INPUT_PULLUP); 17 pinMode(buttonBpin, INPUT_PULLUP); 18} 19 20void loop() { 21 // put your main code here, to run repeatedly: 22 if (digitalRead(buttonApin) == LOW) 23 { 24 digitalWrite(ledPin, LOW); 25 // Print a message to the LCD. 26 lcd.init(); 27 lcd.setCursor(0,0); 28 lcd.print("answer"); 29 lcd.setCursor(0,1); 30 lcd.print("player1"); 31 delay(5000); 32 lcd.init(); 33 } 34 if (digitalRead(buttonBpin) == LOW) 35 { 36 digitalWrite(ledPin, LOW); 37 // Print a message to the LCD. 38 lcd.init(); 39 lcd.setCursor(0,0); 40 lcd.print("answer"); 41 lcd.setCursor(0,1); 42 lcd.print("player2"); 43 delay(5000); 44 lcd.init(); 45 } 46}
###現段階の配線
ご指摘により掲載した写真と異なり,「~5」につないでいたものを「5V」のところにつなぎました.
次の二つの画像で示しているもので,二枚目の赤い線を一枚目の赤い線と抵抗の間に挟んでいるものとなっています.
###参考にしているサイト
参考1
このLesson5と
参考2
ここのKesson26を組み合わせようとしています.
###追記1
困ったことを変更いたしました.
現段階のコードを変更いたしました.
現段階の配線に説明を付け加えました.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/22 11:09
2021/05/22 11:24
2021/05/22 11:26
2021/05/22 11:33
2021/05/22 11:59
2021/05/22 12:59