Hi,
I'm trying to program some buttons and LEDs so that when a button is pressed, only the corresponding LED is turned on. But when I run this code, whenever any button is pressed, only the default case executes.
int buttonLED1 = 5; //pin that LED 1 is connected to, etc
int buttonLED2 = 6;
int buttonLED3 = 7;
int buttonLED4 = 8;
int button1 = 1; //pin that button 1 is connected to, etc
int button2 = 2;
int button3 = 3;
int button4 = 4;
int LEDcase;
void setup() {
pinMode(buttonLED1, OUTPUT);
pinMode(buttonLED2, OUTPUT);
pinMode(buttonLED3, OUTPUT);
pinMode(buttonLED4, OUTPUT);
pinMode(button1, INPUT);
digitalWrite(button1, HIGH);
pinMode(button2, INPUT);
digitalWrite(button2, HIGH);
pinMode(button3, INPUT);
digitalWrite(button3, HIGH);
pinMode(button4, INPUT);
digitalWrite(button4, HIGH);
}
void loop() {
if (digitalRead(button2)==LOW) {
LEDcase==2;
whichLED(LEDcase);
}
if (digitalRead(button1)==LOW) {
LEDcase==1;
whichLED(LEDcase);
}
if (digitalRead(button3)==LOW) {
LEDcase==3;
whichLED(LEDcase);
}
if (digitalRead(button4)==LOW) {
LEDcase==4;
whichLED(LEDcase);
}
}
void useLED(int l1, int l2, int l3, int l4) {
if (l1 == 0) {
digitalWrite(buttonLED1, LOW);
}
else {
digitalWrite(buttonLED1, HIGH);
}
if (l2 == 0) {
digitalWrite(buttonLED2, LOW);
}
else {
digitalWrite(buttonLED2, HIGH);
}
if (l3 == 0) {
digitalWrite(buttonLED3, LOW);
}
else {
digitalWrite(buttonLED3, HIGH);
}
if (l4 == 0) {
digitalWrite(buttonLED4, LOW);
}
else {
digitalWrite(buttonLED4, HIGH);
}
}
void whichLED(int LEDcase) {
switch (LEDcase) {
case 1: useLED(1,0,0,0);
break;
case 2: useLED(0,1,0,0);
break;
case 3: useLED(0,0,1,0);
break;
case 4: useLED(0,0,0,1);
break;
default: useLED(1,1,1,1);
}
}
Any help is appreciated, thanks.