Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // HAZI TECH
- // Program by Hasitha Jayasundara
- // Visit my YouTube Channel - http://www.youtube.com/c/HAZITECH?sub_confirmation=1
- #include "Arduino.h"
- #include <FastLED.h>
- #define LED_PIN 2 //LED Strip Signal Connection
- #define DRLSignal 4 //DRL Switch Signal Connection
- #define LeftSignal 5 //Left Blinker Signal Connection
- #define RightSignal 6 //Right Blinker Signal Connection
- #define LightBrightness 7 //Right Blinker Signal Connection
- #define NUM_LEDS 13 //Total no of LEDs in two LED strips (eg. Use 40 here for two 20 LED strips)
- #define BlinkerLEDs NUM_LEDS/2
- int BlinkerSpeed = 30; //Turn Signal Running LED Speed. Adjust this to match with your vehicle turn signal speed.
- int BlinkerOffDelay = 250; //Turn Signal Off time. Adjust this to match with your vehicle turn signal speed.
- int StartupSpeed = 25;
- int DRLDetect = 0;
- int DRLColour = 1; //Change LED colour here, 1-Ice Blue, 2-Blue, 3-White, 4-Orange
- CRGB leds[NUM_LEDS];
- int r,r_dim,g,g_dim,b,b_dim;
- boolean stop= true;
- void setup()
- {
- FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
- pinMode(DRLSignal, INPUT);
- pinMode(LeftSignal, INPUT);
- pinMode(RightSignal, INPUT);
- pinMode(LightBrightness, INPUT);
- }
- void loop()
- {
- if (digitalRead(LightBrightness) == HIGH){
- FastLED.setBrightness(50);
- FastLED.show();
- }
- else if (digitalRead(LightBrightness) == LOW) {
- FastLED.setBrightness(225);
- FastLED.show();
- }
- if (digitalRead(DRLSignal) == LOW) {
- FastLED.clear();
- }
- if(DRLDetect == 0)
- {
- if(digitalRead(DRLSignal)==1)
- {
- DRLDetect = 1;
- }
- }
- if(DRLDetect == 2)
- {
- if(digitalRead(DRLSignal)==0)
- {
- DRLDetect = 3;
- }
- }
- if(DRLDetect == 1)
- {
- DRL_ON();
- DRLDetect = 2;
- }
- if(DRLDetect == 3)
- {
- DRL_OFF();
- DRLDetect = 0;
- }
- if(digitalRead(DRLSignal)==0)
- {
- if((digitalRead(LeftSignal)==1)&&(digitalRead(RightSignal)==0)) //Left Blinker
- {
- RightOff();
- LeftBlinker();
- LeftDim();
- delay (BlinkerOffDelay);
- }
- if((digitalRead(RightSignal)==1)&&(digitalRead(LeftSignal)==0)) //Right Blinker
- {
- LeftOff();
- RightBlinker();
- RightDim();
- delay (BlinkerOffDelay);
- }
- if((digitalRead(LeftSignal)==1)&&(digitalRead(RightSignal)==1)) //Dual Blinker / Hazard
- {
- MiddleOff();
- DualBlinker();
- LeftDim();
- RightDim();
- delay (BlinkerOffDelay);
- }
- }
- if(DRLDetect == 2)
- {
- if((digitalRead(LeftSignal)==0)&&(digitalRead(RightSignal)==0)) //Park Light
- {
- ParkFull();
- }
- if((digitalRead(LeftSignal)==1)&&(digitalRead(RightSignal)==0)) //Left Blinker
- {
- LeftDim();
- RightLit();
- LeftBlinker();
- LeftDim();
- delay (BlinkerOffDelay);
- }
- if((digitalRead(RightSignal)==1)&&(digitalRead(LeftSignal)==0)) //Right Blinker
- {
- RightDim();
- LeftLit();
- RightBlinker();
- RightDim();
- delay (BlinkerOffDelay);
- }
- if((digitalRead(LeftSignal)==1)&&(digitalRead(RightSignal)==1)) //Dual Blinker / Hazard
- {
- LeftDim();
- RightDim();
- ParkMiddle();
- DualBlinker();
- LeftDim();
- RightDim();
- delay (BlinkerOffDelay);
- }
- }
- switch (DRLColour)
- {
- case 1:
- g = 255;
- g_dim = 30;
- b = 255;
- b_dim = 30;
- break;
- case 2:
- b = 255;
- b_dim = 30;
- break;
- case 3:
- r = 255;
- r_dim = 30;
- g = 255;
- g_dim = 30;
- b = 255;
- b_dim = 30;
- break;
- case 4:
- r = 255;
- r_dim = 30;
- g = 165;
- g_dim = 20;
- b = 0;
- b_dim = 0;
- break;
- }
- }
- void DRL_ON()
- {
- for (int j = ((NUM_LEDS/2)-1); j >= 0; j--)
- {
- leds[j] = CRGB(r_dim, g_dim, b_dim);
- leds[j+1] = CRGB(0, 0, 0);
- leds[(NUM_LEDS/2-1)+((NUM_LEDS/2)-j)] = CRGB(r_dim, g_dim, b_dim);
- leds[(NUM_LEDS/2-1)+((NUM_LEDS/2)-j)-1] = CRGB(0, 0, 0);
- FastLED.show();
- delay (StartupSpeed);
- }
- for (int i = 0; i < (NUM_LEDS/2); i++)
- {
- leds[i] = CRGB(r_dim, g_dim, b_dim);
- leds[(NUM_LEDS-1)-i] = CRGB(r_dim, g_dim, b_dim);
- FastLED.show();
- delay (StartupSpeed);
- }
- for (int j = ((NUM_LEDS/2)-1); j >= 0; j--)
- {
- leds[j] = CRGB(r, g, b);
- leds[(NUM_LEDS/2-1)+((NUM_LEDS/2)-j)] = CRGB(r, g, b);
- FastLED.show();
- delay (StartupSpeed);
- }
- }
- void DRL_OFF()
- {
- for (int j = 0; j <= ((NUM_LEDS/2)-1); j++)
- {
- leds[j] = CRGB(r, g, b);
- leds[j-1] = CRGB(r_dim, g_dim, b_dim);
- leds[(NUM_LEDS-1)-j] = CRGB(r, g, b);
- leds[(NUM_LEDS)-j] = CRGB(r_dim, g_dim, b_dim);
- FastLED.show();
- delay (StartupSpeed);
- }
- leds[((NUM_LEDS/2)-1)] = CRGB(r_dim, g_dim, b_dim);
- leds[((NUM_LEDS/2)-1)+1] = CRGB(r_dim, g_dim, b_dim);
- FastLED.show();
- for (int j = ((NUM_LEDS/2)-1); j >= 0; j--)
- {
- leds[j] = CRGB(r_dim, g_dim, b_dim);
- leds[j+1] = CRGB(0, 0, 0);
- leds[(NUM_LEDS/2-1)+((NUM_LEDS/2)-j)] = CRGB(r_dim, g_dim, b_dim);
- leds[(NUM_LEDS/2-1)+((NUM_LEDS/2)-j)-1] = CRGB(0, 0, 0);
- FastLED.show();
- delay (StartupSpeed);
- }
- for (int j = 0; j <= ((NUM_LEDS/2)-1); j++)
- {
- leds[j] = CRGB(r_dim, g_dim, b_dim);
- leds[j-1] = CRGB(0, 0, 0);
- leds[(NUM_LEDS-1)-j] = CRGB(r_dim, g_dim, b_dim);
- leds[(NUM_LEDS)-j] = CRGB(0, 0, 0);
- FastLED.show();
- delay (StartupSpeed);
- }
- leds[(NUM_LEDS/2)-1] = CRGB(0, 0, 0);
- leds[NUM_LEDS/2] = CRGB(0, 0, 0);
- FastLED.show();
- }
- void AllOff()
- {
- for (int i = 0; i < NUM_LEDS; i++)
- {
- leds[i] = CRGB(0, 0, 0);
- }
- FastLED.show();
- }
- void LeftOff()
- {
- for (int i = 0; i < (NUM_LEDS - BlinkerLEDs); i++)
- {
- leds[i] = CRGB(0, 0, 0);
- }
- FastLED.show();
- }
- void RightOff()
- {
- for (int i = BlinkerLEDs; i < NUM_LEDS; i++)
- {
- leds[i] = CRGB(0, 0, 0);
- }
- FastLED.show();
- }
- void MiddleOff()
- {
- for (int i = BlinkerLEDs; i < (NUM_LEDS - BlinkerLEDs); i++)
- {
- leds[i] = CRGB(0, 0, 0);
- }
- FastLED.show();
- }
- void ParkFull()
- {
- for (int i = 0; i < NUM_LEDS; i++)
- {
- leds[i] = CRGB(r, g, b);
- }
- FastLED.show();
- }
- void ParkMiddle()
- {
- for (int i = BlinkerLEDs; i < (NUM_LEDS - BlinkerLEDs); i++)
- {
- leds[i] = CRGB(60, 0, 0);
- }
- FastLED.show();
- }
- void LeftBlinker()
- {
- for (int i = (BlinkerLEDs-1); i >= 0; i--)
- {
- leds[i] = CRGB(255, 165, 0);
- FastLED.show();
- delay (BlinkerSpeed);
- }
- }
- void LeftDim()
- {
- for (int i = 0; i < BlinkerLEDs; i++)
- {
- leds[i] = CRGB(0, 0, 0);
- }
- FastLED.show();
- }
- void LeftLit()
- {
- for (int i = 0; i < (NUM_LEDS - BlinkerLEDs); i++)
- {
- leds[i] = CRGB(r, g, b);
- }
- FastLED.show();
- }
- void LeftFull()
- {
- for (int i = 0; i < (NUM_LEDS - BlinkerLEDs); i++)
- {
- leds[i] = CRGB(r, g, b);
- }
- FastLED.show();
- }
- void RightBlinker()
- {
- for (int i = (NUM_LEDS - BlinkerLEDs); i < NUM_LEDS; i++)
- {
- leds[i] = CRGB(255, 165, 0);
- FastLED.show();
- delay (BlinkerSpeed);
- }
- }
- void RightDim()
- {
- for (int i = (NUM_LEDS - BlinkerLEDs); i < NUM_LEDS; i++)
- {
- leds[i] = CRGB(0, 0, 0);
- }
- FastLED.show();
- }
- void RightLit()
- {
- for (int i = BlinkerLEDs; i < NUM_LEDS; i++)
- {
- leds[i] = CRGB(r, g, b);
- }
- FastLED.show();
- }
- void RightFull()
- {
- for (int i = BlinkerLEDs; i < NUM_LEDS; i++)
- {
- leds[i] = CRGB(r, g, b);
- }
- FastLED.show();
- }
- void DualBlinker()
- {
- for (int i = (BlinkerLEDs-1); i >= 0; i--)
- {
- leds[i] = CRGB(255, 165, 0);
- leds[NUM_LEDS-1-i] = CRGB(255, 165, 0);
- FastLED.show();
- delay (BlinkerSpeed);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment