I'm 11 years old and I have not used Arduino too much and I need help making this project work. I'm trying to make a 5 question quiz using 5 switches. I want to have each switch make one of two LEDs (a blue and a red) go 1/5 of the brightness. The switches I bought at Radio Shack have either an an on or off value. I've run into a problem where the LEDs won't light to right color and the right brightness. Here's my code:
#define LED_R 11
#define LED_B 9
#define BUTTON_1 13
#define BUTTON_2 12
#define BUTTON_3 8
#define BUTTON_4 7
#define BUTTON_5 4
#define BUTTON_6 2
byte val_R;
byte val_B;
void setup() {
pinMode(LED_R, OUTPUT);
pinMode(LED_B, OUTPUT);
pinMode(BUTTON_1, INPUT);
pinMode(BUTTON_2, INPUT);
pinMode(BUTTON_3, INPUT);
pinMode(BUTTON_4, INPUT);
pinMode(BUTTON_5, INPUT);
pinMode(BUTTON_6, INPUT);
}
void loop() {
val_R = 0;
val_B = 0;
if(BUTTON_1 == HIGH) {
val_R = val_R +51;
} else {
val_B = val_B +51;
}
analogWrite(LED_R, val_R);
analogWrite(LED_B, val_B);
}
colescottsf:
#define BUTTON_1 13
...
if(BUTTON_1 == HIGH) {
val_R = val_R +51;
} else {
val_B = val_B +51;
}
BUTTON_1 is 13. HIGH is 1. So this will never be true:
if(BUTTON_1 == HIGH)
You need to read the button. Eg.
if(digitalRead (BUTTON_1) == HIGH) {
Another thing you may find is that your switches will sometimes read HIGH, sometimes LOW, even if they are not pressed.
You can fix this by putting in external pull-down resistors, or flipping the logic, and using the built-in pull-up resistors.
thanks
i will tell you if anything else goes wrong
i have it all working and compete

#define LED_R 11
#define LED_B 9
#define BUTTON_1 13
#define BUTTON_2 12
#define BUTTON_3 8
#define BUTTON_4 7
#define BUTTON_5 4
#define BUTTON_6 2
byte val_R;
byte val_B;
void setup() {
pinMode(LED_R, OUTPUT);
pinMode(LED_B, OUTPUT);
pinMode(BUTTON_1, INPUT);
pinMode(BUTTON_2, INPUT);
pinMode(BUTTON_3, INPUT);
pinMode(BUTTON_4, INPUT);
pinMode(BUTTON_5, INPUT);
pinMode(BUTTON_6, INPUT);
}
void loop() {
val_R = 0;
val_B = 0;
if(digitalRead (BUTTON_1) == HIGH) {
val_R = val_R +51;
} else {
val_B = val_B +51;
}
if(digitalRead (BUTTON_2) == HIGH) {
val_R = val_R +51;
} else {
val_B = val_B +51;
}
if(digitalRead (BUTTON_3) == HIGH) {
val_R = val_R +51;
} else {
val_B = val_B +51;
}
if(digitalRead (BUTTON_4) == HIGH) {
val_R = val_R +51;
} else {
val_B = val_B +51;
}
if(digitalRead (BUTTON_5) == HIGH) {
val_R = val_R +51;
} else {
val_B = val_B +51;
}
if(digitalRead (BUTTON_6) == HIGH) {
analogWrite(LED_B,0);
analogWrite(LED_R,255);
delay(100);
analogWrite(LED_R,255);
analogWrite(LED_B,255);
delay(100);
analogWrite(LED_R,0);
analogWrite(LED_B,225);
delay(100);
analogWrite(LED_R,255);
analogWrite(LED_B,255);
delay(100);
analogWrite(LED_B,0);
analogWrite(LED_R,255);
delay(100);
analogWrite(LED_R,255);
analogWrite(LED_B,255);
delay(100);
analogWrite(LED_R,0);
analogWrite(LED_B,225);
delay(100);
analogWrite(LED_R,255);
analogWrite(LED_B,255);
delay(100);
analogWrite(LED_B,0);
analogWrite(LED_R,255);
delay(100);
analogWrite(LED_R,255);
analogWrite(LED_B,255);
delay(100);
analogWrite(LED_R,0);
analogWrite(LED_B,225);
delay(100);
analogWrite(LED_R,255);
analogWrite(LED_B,255);
delay(100);
analogWrite(LED_R, 0);
analogWrite(LED_B, 0);
delay(500);
analogWrite(LED_R, val_R);
analogWrite(LED_B, val_B);
delay(10000);
}
analogWrite(LED_R, 0);
analogWrite(LED_B, 0);
}