I am new to Arduino. I have a GE Fanuc PLC that controls the LEDs on my motorcycle. It runs through six different sequences. The problem is it only has six outputs. I want to replace it with an Arduino UNO. I have the Knight rider sketch which I am building off of. I have added two other flashing sequences and have each selected by different combinations of two switches. My problem is the first ( Knight rider) sequence works, but when I change the switches all sequences seem to run instead of only the one which is selected. The IF / ELSE statements do not seem to be working.
Here is a copy of my code. Thanks for any help that you can give.
//LED Sequencer with variable speed and program/sequence select
int prog1=13;
int prog2=12;
int speedpot0 = 0;
int speedpot1 = 1;
int pinArray[] = {1, 2, 3, 4, 5, 6, 7, 8,9,10,11};
int count = 0;
int timer = 30;
int timer2 = 1000;
int timer3 = 50;
int timer4 = 250;
int led1=1;
int led2=2;
int led3=3;
int led4=4;
int led5=5;
int led6=6;
int led7=7;
int led8=8;
int led9=9;
int led10=10;
int led11=11;
void setup(){
pinMode (prog1, INPUT);
pinMode (prog2, INPUT);
for (count=0;count<11;count++) {
pinMode(pinArray[count], OUTPUT);
}
}
void loop() {
if (digitalRead(prog1)==HIGH && digitalRead(prog2)==LOW)
{
int val0 = analogRead(speedpot0);
val0 = constrain(val0, 100,900);
int timer = map(val0,100, 900, 0, 50);
analogWrite(speedpot0, timer);
for (count=0;count<10;count++) {
digitalWrite(pinArray[count], HIGH);
delay(timer);
digitalWrite(pinArray[count + 1], HIGH);
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(timer*2);
}
for (count=10;count>0;count--) {
digitalWrite(pinArray[count], HIGH);
delay(timer);
digitalWrite(pinArray[count - 1], HIGH);
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(timer*2);
}
}
else if (digitalRead(prog1)==LOW && digitalRead(prog2)== HIGH);
{
int val1 = analogRead(speedpot1);
val1 = constrain(val1, 100,900);
int timer3 = map(val1,100, 900, 0, 1000);
analogWrite (speedpot1, timer3);
digitalWrite (led1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (led3, HIGH);
digitalWrite (led4, HIGH);
digitalWrite (led5, HIGH);
digitalWrite (led6, HIGH);
digitalWrite (led7, HIGH);
digitalWrite (led8, HIGH);
digitalWrite (led9, HIGH);
digitalWrite (led10, HIGH);
digitalWrite (led11, HIGH);
delay(timer3);
digitalWrite (led1, LOW);
digitalWrite (led2, LOW);
digitalWrite (led3, LOW);
digitalWrite (led4, LOW);
digitalWrite (led5, LOW);
digitalWrite (led6, LOW);
digitalWrite (led7, LOW);
digitalWrite (led8, LOW);
digitalWrite (led9, LOW);
digitalWrite (led10, LOW);
digitalWrite (led11, LOW);
delay(timer3); }
if (digitalRead(prog1)==HIGH && digitalRead(prog2)== HIGH);
{
int val1 = analogRead(speedpot1);
val1 = constrain(val1, 100,900);
int timer3 = map(val1,100, 900, 0, 1000);
analogWrite (speedpot1, timer3);
digitalWrite (led1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (led3, HIGH);
digitalWrite (led4, HIGH);
digitalWrite (led5, HIGH);
digitalWrite (led6, LOW);
digitalWrite (led7, LOW);
digitalWrite (led8, LOW);
digitalWrite (led9, LOW);
digitalWrite (led10, LOW);
digitalWrite (led11, LOW);
delay(timer3);
digitalWrite (led1, LOW);
digitalWrite (led2, LOW);
digitalWrite (led3, LOW);
digitalWrite (led4, LOW);
digitalWrite (led5, LOW);
digitalWrite (led6, HIGH);
digitalWrite (led7, HIGH);
digitalWrite (led8, HIGH);
digitalWrite (led9, HIGH);
digitalWrite (led10, HIGH);
digitalWrite (led11, HIGH);
delay(timer3); }
if (digitalRead(prog1)== LOW && digitalRead(prog2) == LOW);
{ digitalWrite (led1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (led3, HIGH);
digitalWrite (led4, HIGH);
digitalWrite (led5, HIGH);
digitalWrite (led6, HIGH);
digitalWrite (led7, HIGH);
digitalWrite (led8, HIGH);
digitalWrite (led9, HIGH);
digitalWrite (led10, HIGH);
digitalWrite (led11, HIGH); }
}