Hi all,
Currently in Lockdown in Australia thought I would try to make a project for my students when we get back to school soon. I'm trying to build a reaction button game (press the button that lights up) and I've got it mostly working. I'm using an Arduino Mega connected to 8 LED Arcade buttons. I've set up the circuit and it works! However the buttons are not random they follow the cases so it becomes really easy to learn the pattern. I've tried using the random function however the values always seem to go in order. Any help would be greatly appreciated.
int Button = 0;
int LED = 0;
int LED1 = 2;
int BUT1 = 3;
int LED2 = 4;
int BUT2 = 5;
int LED3 = 6;
int BUT3 = 7;
int LED4 = 8;
int BUT4 = 9;
int LED5 = 26;
int BUT5 = 27;
int LED6 = 24;
int BUT6 = 25;
int LED7 = 28;
int BUT7 = 29;
int LED8 = 30;
int BUT8 = 31;
void setup()
{
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(BUT1, INPUT);
pinMode(LED2, OUTPUT);
pinMode(BUT2, INPUT);
pinMode(LED3,OUTPUT);
pinMode(BUT3,INPUT);
pinMode(LED4,OUTPUT);
pinMode(BUT4,INPUT);
pinMode(LED5,OUTPUT);
pinMode(BUT5,INPUT);
pinMode(LED6,OUTPUT);
pinMode(BUT6,INPUT);
pinMode(LED7,OUTPUT);
pinMode(BUT7,INPUT);
pinMode(LED8,OUTPUT);
pinMode(BUT8,INPUT);
}
void loop() {
LED = random(1,8);
switch (LED) {
case 1:
while(LED = 1) {
digitalWrite(LED1, HIGH);
Button = digitalRead(BUT1);
Serial.println("Button 1 ON");
if (Button == 1) {
delay(100);
digitalWrite(LED1, LOW);
Serial.println("Button 1 HIT");
Button = 0;
delay(100);
break;
}}
case 2:
while(LED = 2) {
digitalWrite(LED2, HIGH);
Button = digitalRead(BUT2);
Serial.println("Button 2 ON");
if (Button == 1) {
delay(100);
digitalWrite(LED2, LOW);
Serial.println("Button 2 HIT");
Button = 0;
delay(100);
break;
}}
case 3:
while(LED = 3) {
digitalWrite(LED3, HIGH);
Button = digitalRead(BUT3);
Serial.println("Button 3 ON");
if (Button == 1) {
delay(100);
digitalWrite(LED3, LOW);
Serial.println("Button 3 HIT");
Button = 0;
delay(100);
break;
}}
case 4:
while(LED = 4) {
digitalWrite(LED4, HIGH);
Button = digitalRead(BUT4);
Serial.println("Button 4 ON");
if (Button == 1) {
delay(100);
digitalWrite(LED4, LOW);
Serial.println("Button 4 HIT");
Button = 0;
delay(100);
break;
}}
case 5:
while(LED = 5) {
digitalWrite(LED5, HIGH);
Button = digitalRead(BUT5);
Serial.println("Button 5 ON");
if (Button == 1) {
delay(100);
digitalWrite(LED5, LOW);
Serial.println("Button 5 HIT");
Button = 0;
delay(100);
break;
}}
case 6:
while(LED = 6) {
digitalWrite(LED6, HIGH);
Button = digitalRead(BUT6);
Serial.println("Button 6 ON");
if (Button == 1) {
delay(100);
digitalWrite(LED6, LOW);
Serial.println("Button 6 HIT");
Button = 0;
delay(100);
break;
}}
case 7:
while(LED = 7) {
digitalWrite(LED7, HIGH);
Button = digitalRead(BUT7);
Serial.println("Button 7 ON");
if (Button == 1) {
delay(100);
digitalWrite(LED7, LOW);
Serial.println("Button 7 HIT");
Button = 0;
delay(100);
break;
}}
case 8:
while(LED = 8) {
digitalWrite(LED8, HIGH);
Button = digitalRead(BUT8);
Serial.println("Button 8 ON");
if (Button == 1) {
delay(100);
digitalWrite(LED8, LOW);
Serial.println("Button 8 HIT");
Button = 0;
delay(100);
break;
}}
default:
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
delay(200);
}}