Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Ahanix1989
- Engages defrost and heated seat only when the car is started with remote start
- */
- int HornTriggered = 0; // Has the horn been chirped?
- int BrakeTriggered = 0; // Has the brakes been pressed?
- int MonitorCycle = 0; // For the 'Watch for the horn' loop
- int DefrostCycle = 0; // For the "Watch the brakes while defrosting' loop
- int HornReading = 0; // Debug: The actual value detected on the horn circuit
- int BrakeReading = 0; // Debug: The actual value detected on the brake circuit
- int MonitorComplete = 0; // Only allow the cycle to run once
- int brightness = 0; // Fade LED
- int fadeAmount = 5; // Fade LED Rate
- void setup() {
- pinMode(9, OUTPUT); // Heated Seats
- pinMode(10, OUTPUT); // Defrost Relay
- pinMode(11, OUTPUT); // Fading yellow LED ("Watching for Horn")
- pinMode(12, OUTPUT); // Solid red LED ("Horn detected")
- digitalWrite(9, HIGH); // No idea why these are reversed. Just rolling with it.
- digitalWrite(10, HIGH);
- digitalWrite(11, LOW);
- digitalWrite(12, LOW);
- }
- void loop() {
- Serial.begin(115200);
- if(MonitorComplete == 0){ // On boot, this is 0. After this first loop, it'll be 1.
- Serial.write("\nBeginning 10-second monitor for horn...");
- while(MonitorCycle < 1000){ // 1000 cycles x 10ms == 10 seconds
- if(digitalRead(8) == LOW){
- Serial.write("\n>> HORN: Low signal condition detected!");
- digitalWrite(12, HIGH); // Red LED -- Horn Detected
- HornTriggered = 1;
- }
- MonitorCycle++;
- analogWrite(11, brightness); // Fade the yellow LED
- brightness = brightness + fadeAmount;
- if(brightness == 0 || brightness == 255){
- fadeAmount = -fadeAmount;
- }
- delay(10);
- }
- Serial.write("\nMonitor Complete.");
- }
- if(MonitorComplete == 1){
- Serial.write("\nOn-boot monitor has already been completed. Waiting 1 minute then resetting");
- delay(60000);
- }
- MonitorComplete = 1; // Comment me out to loop constantly
- analogWrite(11, 0); // Turn the LED off
- // Step 3: If the horn was triggered, activate the relays
- if(HornTriggered == 1){
- Serial.write("\nActivating Heated Seat relay in 5 seconds...");
- delay(5000);
- Serial.write("\n>>Seat relay ON");
- digitalWrite(9, LOW);
- delay(500);
- Serial.write("\n>>Seat relay OFF");
- digitalWrite(9, HIGH);
- Serial.write("\nActivating Defrost Relay in 2 seconds...");
- delay(2000);
- Serial.write("\n>>Defrost relay ON");
- digitalWrite(10, LOW);
- Serial.write("\n\nNow monitoring analog pin 5 for the next fifteen minutes");
- while(DefrostCycle < 12000){ // 12,000 cycles x 75ms == 900,000 == 15 minutes
- if(analogRead(A0) > 900){
- Serial.write("\n\n>> BRAKE: High signal condition detected! | Expected value < 900 | Actual value: ");
- BrakeReading = analogRead(A5);
- Serial.println(BrakeReading);
- Serial.write("\n\n");
- digitalWrite(12, LOW); // The other LED...
- break;
- }
- delay(75);
- DefrostCycle++;
- }
- Serial.write(">>Defrost relay OFF");
- digitalWrite(10, HIGH);
- Serial.write("\n15-minute monitor complete.");
- }
- if(HornTriggered == 0){
- Serial.write("\n\nHorn signal never detected.\nAssuming normal key-in start was performed.");
- }
- Serial.write("\n\nResetting all the variables...");
- HornTriggered = 0;
- BrakeTriggered = 0;
- MonitorCycle = 0;
- DefrostCycle = 0;
- Serial.write("\n>>Resetting in 10 seconds...\n\n");
- delay(10000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement