Hey
I am currently working on a program to control 3 LEDs with an arduino. Here is the process:
no push-all are off
one push-all are on
two push-2 are on
three push-3 are on
four push-all are off again
five push- all are on again
...
redo the same process over and over again
I have finished the code, however there are always 2 LEDs constantly lit up, and I cannot seem the find the problem. Desperate for help, and here is the program
const int buttonPin = 13;
const int Pin[3]={9,10,11};
// Variables will change:
int buttonPushCounter = 0;
int buttonState = 0;
int lastButtonState = 0;
int Val=0;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(Pin[1],OUTPUT);
pinMode(Pin[2],OUTPUT);
pinMode(Pin[3],OUTPUT);
Serial.begin(9600);
lastButtonState=LOW;
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState) {
Serial.println("Button State Change");
if (buttonState == HIGH) {
buttonPushCounter++;
Serial.println("Button pushed");
}
else if(buttonState ==LOW){
Serial.println("Lifted");
}
delay(500);
}
else{
Serial.println("Not Changed");
}
lastButtonState = buttonState;
Val=buttonPushCounter%4;
Write();
}
void Write(){
if(Val==0){
//none
digitalWrite(Pin[1],LOW);
digitalWrite(Pin[2],LOW);
digitalWrite(Pin[2],LOW);
Serial.println("case0");
}
else if(Val==1){
//all
digitalWrite(Pin[1],HIGH);
digitalWrite(Pin[2],HIGH);
digitalWrite(Pin[3],HIGH);
Serial.println("case1");
}
else if(Val==2){
// 2
digitalWrite(Pin[1],LOW);
digitalWrite(Pin[2],HIGH);
digitalWrite(Pin[3],HIGH);
Serial.println("case2");
}
else if(Val==3){
// 1
digitalWrite(Pin[1],LOW);
digitalWrite(Pin[2],LOW);
digitalWrite(Pin[3],HIGH);
Serial.println("case3");
}
}