#include //Memory_Shield //LEDs und Taster müssen Invertiert werden, da gegen Masse geschaltet wird #define BUTTON0 1 #define BUTTON1 5 #define BUTTON2 3 #define BUTTON3 4 #define MAXLEVEL 10 int buttons[] = { BUTTON0, BUTTON1, BUTTON2, BUTTON3 }; int state = 0; int level = 0; int musterVorgabe[MAXLEVEL] = {}; int musterEingabe[MAXLEVEL] = {}; void setup() { //alle LEDs löschen portMode(1, OUTPUT); portWrite(1, 0); //LEDs vom Shield ausschalten for (int i = 0; i < 4; i++) { digitalWrite(buttons[i], HIGH); } //Tft initialisieren Tft.begin(); //Zufallszahl starten randomSeed(analogRead(39)); } void loop() { switch (state) { case 0: // neue Runde //Gruppe 1 start =============================================================================== //Gruppe 1 ende ================================================================================ break; case 1: // Ausgabe aktuelle Runde //Gruppe 2 start =============================================================================== //Gruppe 2 ende ================================================================================ break; case 2: // Eingabe aktuelle Runde //Gruppe 3 start =============================================================================== //GPIOs auf INPUT_PULLUP setzten und auf 0 abfragen! //Lea Lummert for (int b = 0; b < 4; b++) { pinMode(buttons[b], INPUT_PULLUP); } Tft.setCursorCharacter(1, 1); Tft.println("Eingabe "); for (int i = 0; i <= level; i++) { while (musterEingabe[i] == -1) { for (int j = 0; j < 4; j++) { while (digitalRead(buttons[j]) == false) { musterEingabe[i] = j; } } delay(100); } Tft.print("."); } //Warte bis Vergleich, sieht besser aus wegen den Punkten delay(500); state = 3; //Gruppe 3 ende ================================================================================ break; case 3: // Vergleich Eingabe/Ausgabe //Gruppe 4 start =============================================================================== //Gruppe 4 ende ================================================================================ break; case 4: // geschafft, Runde hochzählen und auf Display ausgeben //Gruppe 5 start =============================================================================== //Gruppe 5 ende ================================================================================ break; case 5: // verloren //Gruppe 6 start =============================================================================== //Gruppe 6 ende ================================================================================ break; } }