Hi all,
Nano + 8x relay
Only the first 3 pins of my sketch works, half the sketch doesnt work.
I dont know what is wrong as it is just the same lines with different numbers..
int ledPin1 = 2;
int ledState1 = HIGH;
unsigned long previousMillis1 = 0;
int ledPin2 = 3;
int ledState2 = HIGH;
unsigned long previousMillis2 = 0;
int ledPin3 = 7; <================= changing this with any digital out is ok
int ledState3 = HIGH;
unsigned long previousMillis3 = 0;
int ledPin4 = 5;
int ledState4 = HIGH;
(...)
=============== The 3 following pins just turn the relays Off once and then nothing else.
// These variables store the flash pattern
// and the current state of the LED
int randNumber1 = 5;
int randNumber2 = 5;
int randNumber3 = 5;
int randNumber4 = 5;
int randNumber5 = 5;
int randNumber6 = 5;
int randNumber7 = 3;
int randNumber8 = 3;
int randNumber9 = 4;
int randNumber10 = 4;
int randNumber11 = 7;
int randNumber12 = 7;
int ledPin1 = 2; // the number of the LED pin
int ledState1 = HIGH; // ledState used to set the LED
unsigned long previousMillis1 = 0; // will store last time LED was updated
int ledPin2 = 3;
int ledState2 = HIGH;
unsigned long previousMillis2 = 0;
int ledPin3 = 4;
int ledState3 = HIGH;
unsigned long previousMillis3 = 0;
int ledPin4 = 5;
int ledState4 = HIGH;
unsigned long previousMillis4 = 0;
int ledPin5 = 6;
int ledState5 = HIGH;
unsigned long previousMillis5 = 0;
int ledPin6 = 7;
int ledState6 = HIGH;
unsigned long previousMillis6 = 0;
int t1 = 500;
int t2 = 1000;
int t3 = 3000;
int t4 = 20500;
void setup()
{
// set the digital pin as output:
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
Serial.begin(9600);
randomSeed(analogRead(0));
}
void loop()
{
randNumber1 = random(t1,t2);
Serial.println(randNumber1);
randNumber2 = random(t3,t4);
Serial.println(randNumber2);
randNumber3 = random(t1,t2);
Serial.println(randNumber3);
randNumber4 = random(t3,t4);
Serial.println(randNumber4);
randNumber5 = random(t1,t2);
Serial.println(randNumber5);
randNumber6 = random(t3,t4);
Serial.println(randNumber6);
randNumber7 = random(t1,t2);
Serial.println(randNumber7);
randNumber8 = random(t3,t4);
Serial.println(randNumber8);
randNumber9 = random(t1,t2);
Serial.println(randNumber9);
randNumber10 = random(t3,t4);
Serial.println(randNumber10);
randNumber11 = random(t1,t2);
Serial.println(randNumber11);
randNumber12 = random(t3,t4);
Serial.println(randNumber12);
unsigned long currentMillis1 = millis();
unsigned long currentMillis2 = millis();
unsigned long currentMillis3 = millis();
unsigned long currentMillis4 = millis();
unsigned long currentMillis5 = millis();
unsigned long currentMillis6 = millis();
if ((ledState1 == LOW) && (currentMillis1 - previousMillis1 >= randNumber1))
{
ledState1 = HIGH; // turn it on
previousMillis1 = currentMillis1; // Remember the time
digitalWrite(ledPin1, ledState1); // Update the actual LED
}
else if ((ledState1 == HIGH) && (currentMillis1 - previousMillis1 >= randNumber2))
{
ledState1 = LOW; // Turn it off
previousMillis1 = currentMillis1; // Remember the time
digitalWrite(ledPin1, ledState1); // Update the actual LED
}
if ((ledState2 == LOW) && (currentMillis2 - previousMillis2 >= randNumber3))
{
ledState2 = HIGH; // turn it on
previousMillis2 = currentMillis2; // Remember the time
digitalWrite(ledPin2, ledState2); // Update the actual LED
}
else if ((ledState2 == HIGH) && (currentMillis2 - previousMillis2 >= randNumber4))
{
ledState2 = LOW; // Turn it off
previousMillis2 = currentMillis2; // Remember the time
digitalWrite(ledPin2, ledState2); // Update the actual LED
}
if ((ledState3 == LOW) && (currentMillis3 - previousMillis3 >= randNumber5))
{
ledState3 = HIGH;
previousMillis3 = currentMillis3;
digitalWrite(ledPin3, ledState3);
}
else if ((ledState3 == HIGH) && (currentMillis3 - previousMillis3 >= randNumber6))
{
ledState3 = LOW;
previousMillis3 = currentMillis3;
digitalWrite(ledPin3, ledState3);
}
if ((ledState4 == LOW) && (currentMillis4 - previousMillis4 >= randNumber7))
{
ledState4 = HIGH;
previousMillis4 = currentMillis4;
digitalWrite(ledPin4, ledState4);
}
else if ((ledState4 == HIGH) && (currentMillis4 - previousMillis4 >= randNumber8))
{
ledState4 = LOW;
previousMillis4 = currentMillis4;
digitalWrite(ledPin4, ledState4);
}
if ((ledState5 == LOW) && (currentMillis5 - previousMillis5 >= randNumber9))
{
ledState4 = HIGH; // turn it on
previousMillis4 = currentMillis5; // Remember the time
digitalWrite(ledPin5, ledState5); // Update the actual LED
}
else if ((ledState5 == HIGH) && (currentMillis5 - previousMillis5 >= randNumber10))
{
ledState4 = LOW; // Turn it off
previousMillis4 = currentMillis5; // Remember the time
digitalWrite(ledPin5, ledState5); // Update the actual LED
}
if ((ledState6 == LOW) && (currentMillis6 - previousMillis6 >= randNumber11))
{
ledState4 = HIGH; // turn it on
previousMillis4 = currentMillis6; // Remember the time
digitalWrite(ledPin6, ledState6); // Update the actual LED
}
else if ((ledState6 == HIGH) && (currentMillis6 - previousMillis6 >= randNumber12))
{
ledState4 = LOW; // Turn it off
previousMillis4 = currentMillis6; // Remember the time
digitalWrite(ledPin6, ledState6); // Update the actual LED
}
}
aimant_random2b_bug.ino (5.05 KB)