Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///////////////////////////////////////////////////
- // Światła samochodowe Przednie //
- // Arduino Nano V3 //
- // Firmware 09.07.2021 //
- ///////////////////////////////////////////////////
- #include "Arduino.h"
- #include <FastLED.h>
- #define LED_PIN 8 // Połączenie sygnału taśmy LED
- #define DRLSignal 4 // Połączenie sygnału przełącznika DRL
- #define LeftSignal 2 // Połączenie sygnału lewego migacza
- #define RightSignal 3 // Połączenie sygnału prawego migacza
- #define NUM_LEDS 44 // Całkowita liczba diod LED w dwóch taśmach LED (np. Użyj tutaj 40 dla dwóch 20 taśm LED)
- #define BlinkerLEDs NUM_LEDS/2
- int BlinkerSpeed = 10; // Kierunkowskaz działa prędkość LED. Dostosuj to do prędkości kierunkowskazów pojazdu.
- int BlinkerOffDelay = 250; // Włącz czas wyłączenia sygnału. Dostosuj to do prędkości kierunkowskazów pojazdu.
- int StartupSpeed = 10;
- int DRLDetect = 0;
- int DRLColour = 3; // Zmień kolor diody LED tutaj, 1-lodowy błękit, 2-niebieski, 3-biały, 4-pomarańczowy
- CRGB leds[NUM_LEDS];
- int r, r_dim, g, g_dim, b, b_dim;
- void setup()
- {
- FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
- pinMode(DRLSignal, INPUT);
- pinMode(LeftSignal, INPUT);
- pinMode(RightSignal, INPUT);
- }
- void loop()
- {
- 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)) // Lewy migacz
- {
- RightOff();
- LeftBlinker();
- LeftDim();
- delay (BlinkerOffDelay);
- }
- if ((digitalRead(RightSignal) == 1) && (digitalRead(LeftSignal) == 0)) // Prawy migacz
- {
- LeftOff();
- RightBlinker();
- RightDim();
- delay (BlinkerOffDelay);
- }
- if ((digitalRead(LeftSignal) == 1) && (digitalRead(RightSignal) == 1)) // Podwójny migacz/zagrożenie
- {
- MiddleOff();
- DualBlinker();
- LeftDim();
- RightDim();
- delay (BlinkerOffDelay);
- }
- }
- if (DRLDetect == 2)
- {
- if ((digitalRead(LeftSignal) == 0) && (digitalRead(RightSignal) == 0)) // Światło parkowe
- {
- ParkFull();
- }
- if ((digitalRead(LeftSignal) == 1) && (digitalRead(RightSignal) == 0)) // Lewy migacz
- {
- LeftDim();
- RightLit();
- LeftBlinker();
- LeftDim();
- delay (BlinkerOffDelay);
- }
- if ((digitalRead(RightSignal) == 1) && (digitalRead(LeftSignal) == 0)) // Prawy migacz
- {
- RightDim();
- LeftLit();
- RightBlinker();
- RightDim();
- delay (BlinkerOffDelay);
- }
- if ((digitalRead(LeftSignal) == 1) && (digitalRead(RightSignal) == 1)) // Podwójny migacz/zagrożenie
- {
- 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
Advertisement