ok, so I have rewired the switch and pot so that they are now separate and connected to pins A1 and A2 respectively. They are both grounded, the pot wires are 5v,A2,G from left to right.
The pot works great! And the switch is returning the correct values when open and closed!
my problem is that the switch function is still not working, I tried the if statement that gcjr recommended and added a print function so that I could confirm the value of the switch. When the switch is reading 0 the loop runs and when the switch is reading 1 the loop still runs. I would like the loop to stop if SwitchVal = 1 and to continue if Switchval = 0
void setup()
{
Serial.begin(9600);
pinMode(2, OUTPUT ); // PINS 2 - 13, 17- 19 are output leds
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(14, INPUT); // A0 , random seed pin
pinMode(15, INPUT_PULLUP); // A1 , switch pin
pinMode(16, INPUT_PULLUP); //A2 , pot pin sets mydelay
pinMode(17, OUTPUT);
pinMode(18, OUTPUT);
pinMode(19, OUTPUT);
digitalWrite(2, LOW) ; // all LED's are off to start
digitalWrite(3, LOW) ;
digitalWrite(4, LOW) ;
digitalWrite(5, LOW) ;
digitalWrite(6, LOW) ;
digitalWrite(7, LOW) ;
digitalWrite(8, LOW) ;
digitalWrite(9, LOW) ;
digitalWrite(10, LOW) ;
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
//digitalWrite(15, LOW); // switch
// digitalWrite(16, LOW); // A2
digitalWrite(17, LOW); // A3
digitalWrite(18, LOW); // A4
digitalWrite(19, LOW); // A5
digitalWrite(2, HIGH) ; // All LEDS flash on for inital start up, used to make sure they are all functioning
digitalWrite(3, HIGH) ;
digitalWrite(4, HIGH) ;
digitalWrite(5, HIGH) ;
digitalWrite(6, HIGH) ;
digitalWrite(7, HIGH) ;
digitalWrite(8, HIGH) ;
digitalWrite(9, HIGH) ;
digitalWrite(10, HIGH) ;
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
//digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
digitalWrite(19, HIGH);
delay (2000) ;
digitalWrite(2, LOW) ; // all LED's are off to start
digitalWrite(3, LOW) ;
digitalWrite(4, LOW) ;
digitalWrite(5, LOW) ;
digitalWrite(6, LOW) ;
digitalWrite(7, LOW) ;
digitalWrite(8, LOW) ;
digitalWrite(9, LOW) ;
digitalWrite(10, LOW) ;
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
//digitalWrite(15, LOW); // A1 = switch
//digitalWrite(16, LOW); // A2
digitalWrite(17, LOW); // A3
digitalWrite(18, LOW); // A4
digitalWrite(19, LOW); // A5
randomSeed(analogRead(A0));
}
void loop ()
{
int SwitchVal = digitalRead(15); // varable switchval is 0 if switch is closed , 1 if switch is open
Serial.println(SwitchVal, DEC);
if (SwitchVal == 0); { // if switch is on ( switch connected to pin A1 and ground ) then loop will blink leds
delay(20); // Crude form of debounce // when switch is fliped to on switchval = 0, when switch is filliped to any other position switchval = 1
//, when switchval =1, loop should not run because of the if statment. but it still runs regadless of varable change!?
int myDelay = analogRead(A2) ; // Set myDelay based off of potentiometer value connected to pin A2 and 5v,and ground, Range .2 - 300 ohms
//int myDelay =200;
int Led = random (2 , 13) ; // pick random number from 2-12, store value in variable called LED
digitalWrite(Led, HIGH) ; // turn on the random LED
delay(myDelay); // leave on for # of milliseconds set by potentiometer ( 1-10 dial )
digitalWrite(Led, LOW); // turn off that led
// Serial.println(myDelay);
// Serial.println(Led);
delay(myDelay) ; // delay off for amount of time it was on
}
}
Thanks so much for your help
