if ( digitalRead (alarmIn) == HIGH && alarmOffCount == 0 ) {
alarmOffCount = 1;
ledFade (fr, fb, fg, rr, rg, rb, 35, .5, 5); // white fade when truck is unlocked
}
while (digitalRead (intlights) == LOW && digitalRead (alarmIn) == HIGH){ //code for interior lights to change colors selected by 5K pot
totalValue = 0; //reset variables at beginning of loop
trueValue = 0;
for (int i=1; i<=50 ; i++){ //take 50 readings from Analog Input pin
trueValue = analogRead(colorIn);
totalValue = trueValue + totalValue;
sampleTotal = i;
}
colorValue = totalValue/sampleTotal; //get average of 50 readings pulled in from loop
Serial.println(colorValue); // Print average color value to serial port
intLights (0, 175, 0, rr, 0, fr); // takes a value from the pot (0-1023) and uses that value to change the colors on the led
intLights (165, 345, rr, rb, fr, fb);
intLights (335, 515, rb, rg, fb, fg);
intLights (505, 685, rg, rr, fg, fr);
intLights (675, 855, 0, rb, 0, fb);
intLights (845, 1015, 0, rg, 0, fg);
}
while ( digitalRead (alarmIn) == LOW ) { // While viper is armed pin holds to low and the 4 color fade cycle repeats 100 times
alarmOffCount = 0;
for ( repeatCount=1 ; repeatCount<100 ; repeatCount++ ) {
ledFade (fr, 0, 0, rr, 0, 0, 50, 2, 5); //red fade
ledFade (0, fg, 0, 0, rg, 0, 30, .5, 5); //green fade
ledFade (0, 0, fb, 0, 0, rb, 30, 1, 5); //blue fade
ledFade (fr, fb, fg, rr, rg, rb, 30, .5, 5); // white fade
if ( digitalRead (alarmIn) == HIGH ) {
break;
}
}
}
void intLights (int low, int high, int LEDlower1, int LEDraise1, int LEDlower2, int LEDraise2){ //takes the value from the pot and turns it into led values
if(colorValue == 0) {
digitalWrite(rr, LOW);
digitalWrite(fr, LOW);
digitalWrite(rg, LOW);
digitalWrite(fg, LOW);
digitalWrite(rb, LOW);
digitalWrite(fb, LOW);
}
else if(colorValue >1000){
digitalWrite(rr, HIGH);
digitalWrite(fr, HIGH);
digitalWrite(rg, HIGH);
digitalWrite(fg, HIGH);
digitalWrite(rb, HIGH);
digitalWrite(fb, HIGH);
}
else if (colorValue > low && colorValue < high){
int LED1 = map (colorValue, low, high, 255, 10);
int LED2 = map (colorValue, low, high, 10, 255);
int LED3 = map (colorValue, low, high, 255, 10);
int LED4 = map (colorValue, low, high, 10, 255);
analogWrite (LEDlower1, LED1);
analogWrite (LEDraise1, LED2);
analogWrite (LEDlower2, LED3);
analogWrite (LEDraise2, LED4);
}
}
void ledFade (int f1, int f2, int f3, int r1, int r2, int r3, int delayTime, float fadeIncrementOn, float fadeIncrementOff){
for (float fadeValue = 0; fadeValue <=255 ; fadeValue +=fadeIncrementOn) { //fade door led's to on
analogWrite (f1, fadeValue);
analogWrite (f2, fadeValue);
analogWrite (f3, fadeValue);
analogWrite (r1, fadeValue);
analogWrite (r2, fadeValue);
analogWrite (r3, fadeValue);
delay(delayTime);
if ( digitalRead (alarmIn) == HIGH ){ //check to see if alarm is still armed
digitalWrite (fg, LOW); // Turn all LED's off
digitalWrite (fb, LOW);
digitalWrite (fr, LOW);
digitalWrite (rg, LOW);
digitalWrite (rb, LOW);
digitalWrite (rr, LOW);
repeatCount=1;
loop ();
}
}
for (float fadeValue = 255; fadeValue >=0 ; fadeValue -=fadeIncrementOff) { //fade door led's to off
analogWrite (f1, fadeValue);
analogWrite (f2, fadeValue);
analogWrite (f3, fadeValue);
analogWrite (r1, fadeValue);
analogWrite (r2, fadeValue);
analogWrite (r3, fadeValue);
delay(delayTime);
if ( digitalRead (alarmIn) == HIGH ){ //check to see if alarm is still armed
digitalWrite (fg, LOW); // Turn all LED's off
digitalWrite (fb, LOW);
digitalWrite (fr, LOW);
digitalWrite (rg, LOW);
digitalWrite (rb, LOW);
digitalWrite (rr, LOW);
repeatCount=1;
loop ();
}
}
digitalWrite (fg, LOW); // Turn all LED's off
digitalWrite (fb, LOW);
digitalWrite (fr, LOW);
digitalWrite (rg, LOW);
digitalWrite (rb, LOW);
digitalWrite (rr, LOW);
if ( digitalRead (alarmIn) == HIGH ){ //check to see if alarm is still armed
repeatCount=1;
loop ();
}
delay(1000);
if ( digitalRead (alarmIn) == HIGH ){//check to see if alarm is still armed
repeatCount=1;
loop ();
}
}