Workshops/Arduino Projects/Simon Says
Electronic simon says game with four (or more!) leds and buttons. The leds flash in a random order and the user has to push the buttons in the same order.
Extra Components
- 4x switches (+pull up resistors)
- 4x leds (+resistors to match)
Instructions
The circuit
Switches
There are two basic ways to connect a switch as an input to an arduino,
The switches are connected as follows:
LEDs
Complete Circuit
And here is the complete circuit:
Sketch
Right, now we need to program the game, lets start of with a basic sketch to ensure all the leds and buttons are wired up correctly:
int redledpin = 11;
int yellowledpin = 10;
int greenledpin = 9;
int blueledpin = 5;
int redswitchpin = 12;
int yellowswitchpin = 6;
int greenswitchpin = 7;
int blueswitchpin = 8;
/** The setup, this is called once when your sketch starts
* and should setup anything that your sketch needs. For now
* we just need to set the led pins to be outputs and the
* switch pins to be inputs
*/
void setup() {
/* Sets up all the led pins to be outputs */
pinMode(redledpin, OUTPUT);
pinMode(yellowledpin, OUTPUT);
pinMode(greenledpin, OUTPUT);
pinMode(blueledpin, OUTPUT);
/* Sets up all the switch pins to be inputs */
pinMode(redswitchpin, INPUT);
pinMode(yellowswitchpin, INPUT);
pinMode(greenswitchpin, INPUT);
pinMode(blueswitchpin, INPUT);
}
/** This is the main loop, it is repeatedly called after the setup
* has finished until the chip is reset or powered off.
void loop() {
// Turns on an led when the matching button is pressed,
// turns it off when it is not pressed.
digitalWrite(redledpin, digitalRead(redswitchpin));
digitalWrite(yellowledpin, digitalRead(yellowswitchpin));
digitalWrite(greenledpin, digitalRead(greenswitchpin));
digitalWrite(blueledpin, digitalRead(blueswitchpin));
}
Note that this code is not looking for when the button is pressed or released, it just sets each button to the state of the switch every loop iteration.
Extensions
Fill me in: please help by filling this section in! |