Stap 2: Code
U kunt het downloaden van de volledige sourcode aan de onderkant van deze stap.
Wat meer informatie, aan het begin van onze code die we beginnen door onze globale variabelen en de PIN nummers van onze arduino te definiëren.
// LED pin definitions<br>#define LED_RED 11 #define LED_GREEN 9 #define LED_BLUE 7 #define LED_YELLOW 5 #define LED_CORRECT 4 #define LED_WRONG 2
// Button pin definitions #define BUTTON_RED 12 #define BUTTON_GREEN 10 #define BUTTON_BLUE 8 #define BUTTON_YELLOW 6
// Buzzer definitions #define BUZZER 3 #define RED_TONE 220 #define GREEN_TONE 262 #define BLUE_TONE 330 #define YELLOW_TONE 392 #define TONE_DURATION 250
// Game Variables int GAME_SPEED = 250; int GAME_STATUS = 0; int const GAME_MAX_SEQUENCE = 50; int GAME_SEQUENCE[GAME_MAX_SEQUENCE]; int GAME_STEP = 0; int READ_STEP = 0;
Vervolgens definiëren we onze setup functie waar we onze Arduino Pin modi ingesteld OUTPUT voor onze LEDs en INPUT_PULLUP voor onze drukknoppen. We gebruiken ook een randomSeed om ervoor te zorgen dat onze randmon reeks die we creëren is elke keer anders. Lees meer over randomSeed en pseudo random numbergenerators hier: Arduino.cc/RandmomSeed
void setup(){<br> Serial.begin(9600); randomSeed(analogRead(0)); pinMode(LED_RED, OUTPUT); pinMode(LED_GREEN, OUTPUT); pinMode(LED_BLUE, OUTPUT); pinMode(LED_YELLOW, OUTPUT); pinMode(LED_CORRECT, OUTPUT); pinMode(LED_WRONG, OUTPUT); pinMode(BUTTON_RED, INPUT_PULLUP); pinMode(BUTTON_GREEN, INPUT_PULLUP); pinMode(BUTTON_BLUE, INPUT_PULLUP); pinMode(BUTTON_YELLOW, INPUT_PULLUP); pinMode(BUZZER, OUTPUT); }
Onze lus functie bevat onze spel hoofdlus; We gebruiken een schakeloptie geval snel kiezen in welke modus bent wij gelegen. Dit heet een "Super lus" programmeren ontwerp. Dit laat ons toe om gemakkelijk hebben specifieke gevallen of "modes" voor verschillende onderdelen van het spel
void loop(){ // In what mode are we? switch(GAME_STATUS){ case 0: resetGame(); break; case 1: playSequence(); break; case 2: readSequence(); break; case 3: gameOver(); break; } }