int redPin = 11;
int greenPin = 10;
int bluePin = 9;
unsigned long curTime = 0;
unsigned long redPre = 0;
int redTime = 200;
int redState = LOW;
unsigned long greenPre = 0;
int greenTime = 500;
int greenState = LOW;
unsigned long bluePre = 0;
int blueTime = 300;
int blueState = LOW;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
curTime = millis();
if(curTime-redPre>= redTime) {
redPre = curTime;
if (redState == LOW) {
redState = HIGH;
redTime= 2000;
} else {
redState = LOW;
redTime = 500;
}
digitalWrite(redPin, redState);
}
if(curTime-greenPre>= greenTime) {
greenPre = curTime;
if (greenState == LOW) {
greenState = HIGH;
} else {
greenState = LOW;
}
digitalWrite(greenPin, greenState);
}
if(curTime-bluePre>= blueTime) {
bluePre = curTime;
if (blueState == LOW) {
blueState = HIGH;
} else {
blueState = LOW;
}
digitalWrite(bluePin, blueState);
}
}