Here's the code I am trying:
/ here are the pin number assignments
int blue = 2;
int green = 1;
int red = 0;
int button = 4; // the pin the button is on.
int choice = 0; // mode selection
void setup() {
// initialize the pwm pins as outputs.
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(button, INPUT);
analogWrite(red, 255);
analogWrite(green, 255);
analogWrite(blue, 255);
}
void loop() {
// read the pushbutton to see if it's been pushed
int val;
val = digitalRead(button);
// SELECT CHOICE
if (val == HIGH) {
choice = choice + 1;
analogWrite(blue, 255);
analogWrite(green, 255);
analogWrite(red, 255);
delay(500);
// indicate mode transition with blue flashes
for (int i = 0; i < 5; i++) {
analogWrite(blue, 125);
delay(20);
analogWrite(blue, 255);
delay(40);
}
delay(500);
// change this if you want more modes
if (choice == 5) {
choice = 0;
}
}
// for debounce
while (val == HIGH) {
delay(100);
val = digitalRead(button);
}
//////////////////////////////
// OFF
if (choice == 0) {
analogWrite(red, 0);
analogWrite(green, 0);
analogWrite(blue, 0);
}
// RED
if (choice == 1) {
analogWrite(red, 255);
analogWrite(green, 0);
analogWrite(blue, 0);
}
// GREEN
if (choice == 2) {
analogWrite(red, 0);
analogWrite(green, 255);
analogWrite(blue, 0);
}
// BLUE
if (choice == 3) {
analogWrite(red, 0);
analogWrite(green, 0);
analogWrite(blue, 255);
}
// AMBER
if (choice == 4) {
analogWrite(red, 255);
analogWrite(green, 255);
analogWrite(blue, 0);
}
}