totaly unable to understand millis yet need it as delay stops other code from running, Can some one show me how to use millis in this code
Thanks
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
long int time4 = 4500;
int buttonState1 = 49;
int ledlight;
int ran;
long previousMillis = 0;
long interval = 6000;
void setup() // run once, when the sketch starts
{
Serial.begin(9600);
pinMode (led1, OUTPUT); //led 1
pinMode (led2, OUTPUT); //led 2
pinMode (led3, OUTPUT); //led 3
pinMode (led4, OUTPUT); //led 4
pinMode (buttonState1, INPUT); //button
}
void loop() // run over and over again scan inputs then play them
{
randomSeed (analogRead (0)); // randomize
unsigned long currentMillis = millis();
if (digitalRead(buttonState1) == HIGH) // start the leds turn on 1 led at random then after 4.5 seconds turn on next at random and repeat.
{
ran = random(1,5);
if (ran == 1)
{
digitalWrite (led1, HIGH);
}
if(currentMillis - previousMillis > time4)
digitalWrite (led1, LOW);
}
if (ran == 2)
{
digitalWrite (led2, HIGH);
}
if(currentMillis - previousMillis > time4)
digitalWrite (led2, LOW);
if (ran == 3)
{
digitalWrite (led3, HIGH);
}
if(currentMillis - previousMillis > time4)
digitalWrite (led3, LOW);
if (ran == 4)
{
digitalWrite (led4, HIGH);
if(currentMillis - previousMillis > time4)
digitalWrite (led4, LOW);
}
}