So I'm new to the Arduino programming language and could use some pointers. I'm trying to do the same type of thing the OP asked about but want to add more switches/options, i.e. having one switch turn on/off three LEDs and another switch turn on/off the LEDs in sequence. I was able to follow That1Guy99's program but can't get the second switch to work.
Here's my code so far:
const int buttonPinA = 2;
const int buttonPinB = 3;
const int ledPinA = 11;
const int ledPinB = 10;
const int ledPinC = 9;
int val;
int val2;
int buttonStateA = 0;
int buttonStateB = 0;
int Mode = 0;
void setup() {
pinMode(ledPinA, OUTPUT);
pinMode(ledPinB, OUTPUT);
pinMode(ledPinC, OUTPUT);
pinMode(buttonPinA, INPUT);
pinMode(buttonPinB, INPUT);
buttonStateA = digitalRead(buttonPinA);
buttonStateB = digitalRead(buttonPinB);
}
void loop(){
val = digitalRead(buttonPinA);
delay(10);
val2 = digitalRead(buttonPinA);
if (val == val2) {
if (val !=buttonStateA) {
if (val == LOW) {
if (Mode == 0) {
Mode = 1;
}else {
if (Mode == 1) {
Mode = 0;
}
}
}
}
buttonStateA = val;
}
val = digitalRead(buttonPinB);
delay(10);
val2 = digitalRead(buttonPinB);
if (val == val2) {
if (val !=buttonStateB) {
if (val == LOW) {
if (Mode == 2) {
Mode = 3;
}else {
if (Mode == 3) {
Mode = 4;
}else {
if (Mode == 4) {
Mode = 2;
}
}
}
}
}
buttonStateB = val;
}
if (Mode == 1) {
// turn LED on:
digitalWrite(ledPinA, HIGH);
digitalWrite(ledPinB, HIGH);
digitalWrite(ledPinC, HIGH);
}
if (Mode == 0) {
// turn LED off:
digitalWrite(ledPinA, LOW);
digitalWrite(ledPinB, LOW);
digitalWrite(ledPinC, LOW);
}
if (Mode == 2) {
digitalWrite(ledPinA, HIGH);
digitalWrite(ledPinB, LOW);
digitalWrite(ledPinC, LOW);
}
if (Mode == 3) {
digitalWrite(ledPinA, LOW);
digitalWrite(ledPinB, HIGH);
digitalWrite(ledPinC, LOW);
}
if (Mode == 4) {
digitalWrite(ledPinA, LOW);
digitalWrite(ledPinB, LOW);
digitalWrite(ledPinC, HIGH);
}
}
Any help would be great!
Thx,
D