Ok, This is as close as I can get...
the problem is, is that it doesn't matter what value I put for interval, it goes the same speed.
Help!!!
long interval = 100; // interval at which to blink (milliseconds)
long interval2 = 100;
long previousMillis = 0;
long previousMillis2 = 0;
int ledState = LOW;
void loop(){ // intitial lighting
Initial();
switch1State = digitalRead(switch1Pin); // read input values
switch2State = digitalRead(switch2Pin);
switch3State = digitalRead(switch3Pin);
switch4State = digitalRead(switch4Pin);
switch5State = digitalRead(switch5Pin);
switch6State = digitalRead(switch6Pin);
if (switch1State == HIGH) // when the first button is pressed
police();
else if (switch2State == HIGH) // when the next button is pressed
fire();
else if (switch3State == HIGH) // the next button
BlueGlow();
else if (switch4State == HIGH) // the next button
RedGlow();
else if (switch5State == HIGH) // the next button
ColorShiftGlow();
else if (switch6State == HIGH) // the next button
Initial();
}
void Initial(){ // intitial lighting
analogWrite(RHaloR, 255);
analogWrite(RHaloG, 255);
analogWrite(RHaloB, 255);
analogWrite(LHaloR, 255);
analogWrite(LHaloG, 255);
analogWrite(LHaloB, 255);
analogWrite(IntR, 255);
analogWrite(IntG, 255);
analogWrite(IntB, 255);
analogWrite(BrakeR, 255);
analogWrite(BrakeG, 0);
analogWrite(BrakeB, 0);
digitalWrite(FRStrobe, LOW);
digitalWrite(FLStrobe, LOW);
digitalWrite(BRStrobe, LOW);
digitalWrite(BLStrobe, LOW);
}
void BlueGlow(){ // Blue Glow from Halos and rear emblem
analogWrite(RHaloR, 0);
analogWrite(RHaloG, 0);
analogWrite(RHaloB, 255);
analogWrite(LHaloR, 0);
analogWrite(LHaloG, 0);
analogWrite(LHaloB, 255);
analogWrite(IntR, 0);
analogWrite(IntG, 0);
analogWrite(IntB, 255);
analogWrite(BrakeR, 0);
analogWrite(BrakeG, 0);
analogWrite(BrakeB, 255);
digitalWrite(FRStrobe, LOW);
digitalWrite(FLStrobe, LOW);
digitalWrite(BRStrobe, LOW);
digitalWrite(BLStrobe, LOW);
}
void RedGlow(){ // Red Glow from Halos and rear emblem
analogWrite(RHaloR, 255);
analogWrite(RHaloG, 0);
analogWrite(RHaloB, 0);
analogWrite(LHaloR, 255);
analogWrite(LHaloG, 0);
analogWrite(LHaloB, 0);
analogWrite(IntR, 255);
analogWrite(IntG, 0);
analogWrite(IntB, 0);
analogWrite(BrakeR, 255);
analogWrite(BrakeG, 0);
analogWrite(BrakeB, 0);
digitalWrite(FRStrobe, LOW);
digitalWrite(FLStrobe, LOW);
digitalWrite(BRStrobe, LOW);
digitalWrite(BLStrobe, LOW);
}
void police(){
unsigned long currentMillis = millis();
if ((currentMillis - previousMillis) > interval) {
previousMillis = currentMillis;
analogWrite(RHaloR, 255);
analogWrite(RHaloG, 0);
analogWrite(RHaloB, 0);
analogWrite(LHaloR, 0);
analogWrite(LHaloG, 0);
analogWrite(LHaloB, 255);
analogWrite(IntR, 0);
analogWrite(IntG, 0);
analogWrite(IntB, 255);
analogWrite(BrakeR, 0);
analogWrite(BrakeG, 0);
analogWrite(BrakeB, 255);
delay(100);
analogWrite(RHaloR, 0);
analogWrite(RHaloG, 0);
analogWrite(RHaloB, 255);
analogWrite(LHaloR, 255);
analogWrite(LHaloG, 0);
analogWrite(LHaloB, 0);
analogWrite(IntR, 255);
analogWrite(IntG, 0);
analogWrite(IntB, 0);
analogWrite(BrakeR, 255);
analogWrite(BrakeG, 0);
analogWrite(BrakeB, 0);
delay(100);
}
if ((currentMillis - previousMillis2) > interval2) {
previousMillis2 = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(FRStrobe, ledState);
digitalWrite(FLStrobe, ledState);
digitalWrite(BRStrobe, ledState);
digitalWrite(BLStrobe, ledState);
}
}
void fire(){
unsigned long currentMillis = millis();
if ((currentMillis - previousMillis) > interval) {
previousMillis = currentMillis;
analogWrite(RHaloR, 0);
analogWrite(RHaloG, 0);
analogWrite(RHaloB, 255);
analogWrite(LHaloR, 0);
analogWrite(LHaloG, 0);
analogWrite(LHaloB, 255);
analogWrite(IntR, 0);
analogWrite(IntG, 0);
analogWrite(IntB, 255);
analogWrite(BrakeR, 0);
analogWrite(BrakeG, 0);
analogWrite(BrakeB, 255);
delay(100);
analogWrite(RHaloR, 255);
analogWrite(RHaloG, 255);
analogWrite(RHaloB, 255);
analogWrite(LHaloR, 255);
analogWrite(LHaloG, 255);
analogWrite(LHaloB, 255);
analogWrite(IntR, 255);
analogWrite(IntG, 255);
analogWrite(IntB, 255);
analogWrite(BrakeR, 255);
analogWrite(BrakeG, 255);
analogWrite(BrakeB, 255);
delay(100);
}
if ((currentMillis - previousMillis2) > interval2) {
previousMillis2 = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(FRStrobe, ledState);
digitalWrite(FLStrobe, ledState);
digitalWrite(BRStrobe, ledState);
digitalWrite(BLStrobe, ledState);
}
}
void ColorShiftGlow(){ // ColorShift Glow from Halos and rear emblem
i += 1; // Increment counter
if (i < 10000) // First phase of fades
{
redVal -= 1; // Red down
greenVal += 1; // Green up
blueVal = 1; // Blue low
}
else if (i < 20000) // Second phase of fades
{
redVal = 1; // Red low
greenVal -= 1; // Green down
blueVal += 1; // Blue up
}
else if (i < 30000) // Third phase of fades
{
redVal += 1; // Red up
greenVal = 1; // Green low
blueVal -= 1; // Blue down
}
else // Re-set the counter, and start the fades again
{
i = 1;
}
analogWrite(RHaloR, redVal);
analogWrite(RHaloG, greenVal);
analogWrite(RHaloB, blueVal);
analogWrite(LHaloR, redVal);
analogWrite(LHaloG, greenVal);
analogWrite(LHaloB, blueVal);
analogWrite(IntR, redVal);
analogWrite(IntG, greenVal);
analogWrite(IntB, blueVal);
analogWrite(BrakeR, redVal);
analogWrite(BrakeG, greenVal);
analogWrite(BrakeB, blueVal);
digitalWrite(FRStrobe, LOW);
digitalWrite(FLStrobe, LOW);
digitalWrite(BRStrobe, LOW);
digitalWrite(BLStrobe, LOW);
}