So, I've connected digital pins 2-9 each to a relay.
I want it to strobe - But, on the first cycle the relays turn on and then stay on - it's like the arduino ignores the digitalWrite syntax??? - After which they only stay LOW during the delay period after which they return HIGH
How can I use pull up/ down resistors to prevent this. I tried what I found on the web but it did resulted in the LED never going low - I assume I did it wrong then.
Here is the code:
//LED strip outputs digitalPins 0-9
int ledArray[] = {
2, 3, 4, 5, 6, 7, 8, 9
};
//switch pin inputs digitalPins 10-12
int switchPin1 = A1;
int switchPin2 = A2;
int switchPin3 = A3;
//potentiometers inputs analogPins A0
//manual control
int potPin1 = A0;
void setup() {
//setting all LED strip pins as outputs
for (int outputPin = 2; outputPin < 10; outputPin++){
pinMode(outputPin, INPUT_PULLUP);
}
for (int outputPin = 2; outputPin < 10; outputPin++){
pinMode(outputPin, OUTPUT);
}
//setting all switch pins as inputs
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
//setting manual control potentiometer as input
pinMode(potPin1, INPUT);
}
int establishDelay() {
/*Cycle speed setting manual
This is in order to determine whether strobe sequences cycle at a speed determined by a potentiometer
*/
//Determing potentiometer inputs
//This will = the time for each manual cycle
int delayTime = analogRead(potPin1);
if (delayTime < 10){
delayTime = 10;
}
return(delayTime);
}
void loop() {
//Sequence 1>3>2>4>3>5>4>6>5>7>6>8>7>8>6>7>5>6>4>5>3>4>2>3>1>2
digitalWrite(ledArray[0], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[0], LOW);
delay( establishDelay() );
digitalWrite(ledArray[2], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[2], LOW);
delay( establishDelay() );
digitalWrite(ledArray[1], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[1], LOW);
delay( establishDelay() );
digitalWrite(ledArray[3], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[3], LOW);
delay( establishDelay() );
digitalWrite(ledArray[2], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[2], LOW);
delay( establishDelay() );
digitalWrite(ledArray[4], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[4], LOW);
delay( establishDelay() );
digitalWrite(ledArray[3], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[3], LOW);
delay( establishDelay() );
digitalWrite(ledArray[5], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[5], LOW);
delay( establishDelay() );
digitalWrite(ledArray[4], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[4], LOW);
delay( establishDelay() );
digitalWrite(ledArray[6], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[6], LOW);
delay( establishDelay() );
digitalWrite(ledArray[5], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[5], LOW);
delay( establishDelay() );
digitalWrite(ledArray[7], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[7], LOW);
delay( establishDelay() );
digitalWrite(ledArray[6], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[6], LOW);
delay( establishDelay() );
digitalWrite(ledArray[7], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[7], LOW);
delay( establishDelay() );
digitalWrite(ledArray[5], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[5], LOW);
delay( establishDelay() );
digitalWrite(ledArray[6], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[6], LOW);
delay( establishDelay() );
digitalWrite(ledArray[4], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[4], LOW);
delay( establishDelay() );
digitalWrite(ledArray[5], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[5], LOW);
delay( establishDelay() );
digitalWrite(ledArray[3], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[3], LOW);
delay( establishDelay() );
digitalWrite(ledArray[4], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[4], LOW);
delay( establishDelay() );
digitalWrite(ledArray[2], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[2], LOW);
delay( establishDelay() );
digitalWrite(ledArray[3], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[3], LOW);
delay( establishDelay() );
digitalWrite(ledArray[1], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[1], LOW);
delay( establishDelay() );
digitalWrite(ledArray[2], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[2], LOW);
delay( establishDelay() );
digitalWrite(ledArray[0], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[0], LOW);
delay(establishDelay());
digitalWrite(ledArray[1], HIGH);
delay( establishDelay() );
digitalWrite(ledArray[1], LOW);
delay( establishDelay() );
}