lundi 4 janvier 2021

Why is my programm choosing one button to be pressed [closed]

// Änderungen notwendig.
#include "Setting.h"      // Alle wichtigen Definitionen. Änderung notwendig

#include "pitches.h""     // Definition der Töne.
#include "Startmelodie.h" // Startmelodie. Änderung bei Bedarf.

#include "Gewonnen.h"     // Licht und Musik, falls das Spiel gewonnen wird. Änderung notwendig
#include "Verloren.h"     // Licht und Musik, falls das Spiel verloren wird. Änderung notwendig.
#include "playBuzzer.h"   // Buzzertöne während des Spiels. Änderung bei Bedarf.

#include "Level1.h"       // Level 1 Änderung notwendig.
#include "Level2.h"       // Level 2 Anderung notwendig.
#include "Level3.h"       // Level 3 Änderung notwendig.


void setup() {
  pinMode(led8, OUTPUT);
  pinMode(led9, OUTPUT);
  pinMode(led10, OUTPUT);
  pinMode(led11, OUTPUT);
  pinMode(led12, OUTPUT);
  pinMode(led13, OUTPUT);

  digitalWrite(led8, LOW);
  digitalWrite(led9, LOW);
  digitalWrite(led10, LOW);
  digitalWrite(led11, LOW);
  digitalWrite(led12, LOW);
  digitalWrite(led13, LOW);

  pinMode(button8, INPUT_PULLUP);                     
  pinMode(button9, INPUT_PULLUP);
  pinMode(button10, INPUT_PULLUP);
  pinMode(button11, INPUT_PULLUP);
  pinMode(button12, INPUT_PULLUP);
  pinMode(button13, INPUT_PULLUP);

  pinMode(button_White,INPUT);
  pinMode(button_Black,INPUT);
  pinMode (buzzer, OUTPUT) ;                 
  
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.display();
  
  display.setTextSize(3); 
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 8);
  display.println(F("SGO-JIA"));
  display.display();      
  delay(2000);
  
    
  display.clearDisplay();
  display.setTextSize(2);
  display.setCursor(10,2);
  display.println(F("von"));
  display.setTextSize(1);
  display.setCursor(30,20);
  display.println(F("TEAM JULIUS"));
  display.display();
  delay(1000);
  Startmelodie();  

  display.clearDisplay();
  display.setTextSize(1);
  display.setCursor(18,16);
  display.println(F("Waehle ein Level."));
  display.display();
  delay(2000); 
  
 } 

void loop() {
  
   
    buttonStatus=analogRead(0);
    delay(200);
      if(buttonStatus>900){
         count1=count1+1;
         delay(50);
         }
       if(count1%3==2){  
          display.clearDisplay();
          display.setTextSize(3);
          display.setCursor(0,10); 
          display.println(F("Level 1"));
          display.display();
          delay(50);
          }
        else if (count1%3==1){
          display.clearDisplay();
          display.setTextSize(3);
          display.setCursor(0,10); 
          display.println(F("Level 2"));
          display.display();
          delay(50);
          }
        else if (count1%3==0){
         display.clearDisplay();
         display.setTextSize(3);
         display.setCursor(0,10); 
         display.println(F("Level 3"));
         display.display();
         delay(50); 
        }
               
     buttonStatus1=analogRead(1);
     if(buttonStatus1>900 && count1%3==2){  
        Level1();
        }
     else if (buttonStatus1>900 && count1%2==1){
              Level2();
              }
     else if (buttonStatus1>900 && count1%3==0){
             Level3();
             }
                
 }
 
 void Level1(){
  for (int i = 0; i <= RundenInLevel1; i++) {
    randomSeed(analogRead(7));
    simonSaid[i] = random(8,14);
   }

bool gameOver = 0;
  
while (gameOver == 0) {
  for (int i = 1; i < (RundenInLevel1 + 1); i++) {
    delay (500);
    Counter=i;
          for (int g = 0; g < i; g++) {                    // Lichter, die in jeder Runde für eine bestimmte Zeit vorgegeben werden.         
          digitalWrite(simonSaid[g], HIGH);
          playBuzzer(simonSaid[g]);
          delay(400);
          digitalWrite(simonSaid[g], LOW);
          delay(50);
          
         }
  
        for (int g = 0; g < i; g++) {                               //Überprüfung der eingegebenen Farben in jeder Runde.
          int sensorButton8=1;
          int sensorButton9 = 1;
          int sensorButton10 = 1;
          int sensorButton11 = 1;
          int sensorButton12 = 1;
          int sensorButton13 = 1;
          
          int buttonPressed = 0;   // Das ist kein Schalter.
          
            while (sensorButton8 == HIGH && sensorButton9 == HIGH && sensorButton10 == HIGH && sensorButton11 == HIGH && sensorButton12 == HIGH && sensorButton13 == HIGH) {                          //until a button is pressed keep checking all of them
              sensorButton10 = digitalRead(button10);
              sensorButton8 = digitalRead(button8);
              sensorButton9 = digitalRead(button9);
              sensorButton11 = digitalRead(button11);
              sensorButton12 = digitalRead(button12);
              sensorButton13 = digitalRead(button13);
            }
            
            

           delay(200);      // a kind of debounce - Wichtig!
           
                           //Festlegung, welcher Button gedrückt 
           if (sensorButton13 == 0){
            buttonPressed = 13;
           }
           else if (sensorButton12 == 0){
            buttonPressed = 12;
           }
           else if (sensorButton11 == 0) {                        
            buttonPressed = 11;
           }
           else if (sensorButton10 == 0) {
            buttonPressed = 10;
           } 
           else if (sensorButton9 == 0) {
            buttonPressed = 9;
           }
           else if (sensorButton8 == 0) {
            buttonPressed = 8;
           }
            
           digitalWrite(buttonPressed, HIGH);  //Licht, vom gedrückten Button leuctet auf
           playBuzzer(buttonPressed);         // Der entsprechende Sound ertönt.
           digitalWrite(buttonPressed, LOW);  // Licht erlöscht.
           

                                              //Überprüfung, ob der richtige Button gedrückt wurde.
            if (buttonPressed == (simonSaid[g])) {
               }
            
            else {  
              gameOver = 1;
              Verloren();
                            
 
              
  // Spielende:             
  display.clearDisplay();
  display.setTextSize(1);
  display.setCursor(18,16);
  display.println(F("Waehle ein Level."));
  display.display();
  delay(2000);
  goto Sprungmarke; 
              }            
            }              
         } 
    Gewonnen();
    display.clearDisplay();
    display.setTextSize(1);
    display.setCursor(18,16);
    display.println(F("Waehle ein Level."));
    display.display();
    delay(2000);
  
  goto Sprungmarke;                 
     }
  Sprungmarke:;   
   }
   
   #include <Adafruit_GFX.h>


#include <Adafruit_SSD1306.h>


#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>  // Bibliothek muss unter Sketch-Bibliothek verwalten zunächst eingebettet werden.
#include <Adafruit_SSD1306.h> //Bibliothek muss unter Sketch-Bibliothek verwalten zunächst eingebettet werden.

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels


#define OLED_RESET     -1 
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

#define led13 13
#define led12 12     
#define led11 11     
#define led10 10     
#define led9 9      
#define led8 8       

#define button13  7
#define button12  6   
#define button11  5   
#define button10  4  
#define button9   3   
#define button8   2

#define button_White A1//schwarzer Button an A0: GND Widerstand 750 kOhm Buttonpin1 Buttonpin2 Widerstand 10KOhm 5V. Kabel nach 750 kOhm und A0 
#define button_Black A0//weißer Button an A1: Genau wie bei schwarz

#define buzzer A3

#define RundenInLevel1 8
#define RundenInLevel2 10
#define RundenInLevel3 12

int simonSaid[RundenInLevel1];
int Simonsaid[RundenInLevel2]; 
int simonsaid[RundenInLevel3];

int Counter=0;
int buttonStatus=0;
int buttonStatus1=0;
int count1=1;

Please answer this as soon as possible. The normal Programm is from https://www.instructables.com/Simon-Says-Game-3D-Printable-Arduino-Nano-DIY-Proj/#:~:text=%20Simon%20Says%20Game%20-%203D%20Printable%20|,Prepare%20the%20Buttons.%20We%20need%20to...%20More

I want to have 6 pins connected and 6 Leds connected but I have no idea why it works with 5 Buttons but not with 6 Buttons and 6 Leds. everything besides the Led Buttons work, like the buzzer, the display or the buttons to switch between Levels.

Thank you so much for answering my question

Aucun commentaire:

Enregistrer un commentaire