I have a line of 8 LED's that I am trying to control with a joystick that can turn a series of 3 LED's on at a time. I am also trying to have a "kill switch" that when the button of the joystick is pushed it turns all the lights off. I can accomplish the previous two configurations separately but when I try to combine the sketches I am not successful. In a sketch where I just want to turn LED's on and off by the push of the button I am successful and the LED's stay on or off. When I add that sketch to my joystick sketch the button flips between 0 and 1 and stays in said true or false state but the lights will only turn off if I hold the button instead of clicking the button to turn on or off.
int sensorPin = A0;
int ledPins2 = 2;
int ledPins3 = 3;
int ledPins4 = 4;
int ledPins5 = 5;
int ledPins6 = 6;
int ledPins7 = 7;
int ledPins8 = 8;
int ledPins9 = 9;
int sensorValue = 0;
int ButtonValue = 10;
int status = true;
void setup() {
Serial.begin(9600);
pinMode(ledPins2, OUTPUT);
pinMode(ledPins3, OUTPUT);
pinMode(ledPins4, OUTPUT);
pinMode(ledPins5, OUTPUT);
pinMode(ledPins6, OUTPUT);
pinMode(ledPins7, OUTPUT);
pinMode(ledPins8, OUTPUT);
pinMode(ledPins9, OUTPUT);
pinMode(ButtonValue, INPUT_PULLUP);
digitalWrite(ledPins2, HIGH);
digitalWrite(ledPins3, HIGH);
digitalWrite(ledPins4, HIGH);
digitalWrite(ledPins5, HIGH);
digitalWrite(ledPins6, HIGH);
digitalWrite(ledPins7, HIGH);
digitalWrite(ledPins8, HIGH);
digitalWrite(ledPins9, HIGH);
}
void loop() {
sensorValue = analogRead(sensorPin);
Serial.print("Potentiometer = ");
Serial.print(sensorValue);
Serial.print(" Button Value = ");
Serial.println(status);
delay(100);
if (digitalRead(ButtonValue) == false) {
status = !status;
digitalWrite(ledPins2, HIGH);
digitalWrite(ledPins3, HIGH);
digitalWrite(ledPins4, HIGH);
digitalWrite(ledPins5, HIGH);
digitalWrite(ledPins6, HIGH);
digitalWrite(ledPins7, HIGH);
digitalWrite(ledPins8, HIGH);
digitalWrite(ledPins9, HIGH);
} while(digitalRead(ButtonValue) == false);{
if (sensorValue >=0 && sensorValue <172){
//turn the ledPin on
digitalWrite(ledPins2, LOW);
digitalWrite(ledPins3, LOW);
digitalWrite(ledPins4, LOW);
digitalWrite(ledPins5, HIGH);
digitalWrite(ledPins6, HIGH);
digitalWrite(ledPins7, HIGH);
digitalWrite(ledPins8, HIGH);
digitalWrite(ledPins9, HIGH);
}
if (sensorValue >= 172 && sensorValue <342){
//turn the ledPin on
digitalWrite(ledPins2, HIGH);
digitalWrite(ledPins3, LOW);
digitalWrite(ledPins4, LOW);
digitalWrite(ledPins5, LOW);
digitalWrite(ledPins6, HIGH);
digitalWrite(ledPins7, HIGH);
digitalWrite(ledPins8, HIGH);
digitalWrite(ledPins9, HIGH);
}
if (sensorValue >= 342 && sensorValue <512){
//turn the ledPin on
digitalWrite(ledPins2, HIGH);
digitalWrite(ledPins3, HIGH);
digitalWrite(ledPins4, LOW);
digitalWrite(ledPins5, LOW);
digitalWrite(ledPins6, LOW);
digitalWrite(ledPins7, HIGH);
digitalWrite(ledPins8, HIGH);
digitalWrite(ledPins9, HIGH);
}
if (sensorValue >= 512 && sensorValue <682){
//turn the ledPin on
digitalWrite(ledPins2, HIGH);
digitalWrite(ledPins3, HIGH);
digitalWrite(ledPins4, HIGH);
digitalWrite(ledPins5, LOW);
digitalWrite(ledPins6, LOW);
digitalWrite(ledPins7, LOW);
digitalWrite(ledPins8, HIGH);
digitalWrite(ledPins9, HIGH);
}
if (sensorValue >= 682 && sensorValue <852){
//turn the ledPin on
digitalWrite(ledPins2, HIGH);
digitalWrite(ledPins3, HIGH);
digitalWrite(ledPins4, HIGH);
digitalWrite(ledPins5, HIGH);
digitalWrite(ledPins6, LOW);
digitalWrite(ledPins7, LOW);
digitalWrite(ledPins8, LOW);
digitalWrite(ledPins9, HIGH);
}
if (sensorValue >= 852 && sensorValue <1024){
//turn the ledPin on
digitalWrite(ledPins2, HIGH);
digitalWrite(ledPins3, HIGH);
digitalWrite(ledPins4, HIGH);
digitalWrite(ledPins5, HIGH);
digitalWrite(ledPins6, HIGH);
digitalWrite(ledPins7, LOW);
digitalWrite(ledPins8, LOW);
digitalWrite(ledPins9, LOW);
}
}
}