Arduino Simon säger (2 / 7 steg)
Steg 2: kod
Du kan ladda ner den fullständiga sourcode längst ned i detta steg.
Lite mer information i början av vår kod vi börjar genom att definiera våra globala variabler och PIN-koder för våra arduino.
LED stift definitioner < 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
Knappen pin definitioner
#define BUTTON_RED 12
#define BUTTON_GREEN 10
#define BUTTON_BLUE 8
#define BUTTON_YELLOW 6
Summern definitioner
#define Summer 3
#define RED_TONE 220
#define GREEN_TONE 262
#define BLUE_TONE 330
#define YELLOW_TONE 392
#define TONE_DURATION 250
Spel variabler
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;
Vi definierar sedan våra setup-funktionen där vi ställa våra Arduino Pin lägen till utgång för våra lysdioder och INPUT_PULLUP för våra tryckknappar. Vi använder också en randomSeed att se till att våra randmon sekvens vi skapar är olika varje gång. Läs mer om randomSeed och pseudo random numbergenerators här: 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 (Summer, OUTPUT);
}
Vår loop funktion innehåller våra spel huvudloop; Vi använder en switch fall snabbt välja vilka modus vi är belägen. Detta kallas en "Super Loop" programmering design. Detta tillåter oss att lätt ha särskilda fall eller "lägen" för olika delar av spelet
void loop() {
I vilket läge är vi?
Switch(GAME_STATUS) {
fall 0:
resetGame();
bryta;
fall 1:
playSequence();
bryta;
fall 2:
readSequence();
bryta;
fall 3:
gameOver();
bryta;
}
}