Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///////////////////////////////////////////////////
- // Światła samochodowe Tylne //
- // 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 BrakeSignal 4 // Połączenie sygnału hamowania
- #define LeftSignal 2 // Połączenie sygnału lewego migacza
- #define RightSignal 3 // Połączenie sygnału prawego migacza
- #define ReverseSignal 5 // Połączenie sygnału wstecznego
- #define NUM_LEDS 36 // Całkowita liczba diod LED w pasku LED
- #define BlinkerLEDs 18 // Liczba diod LED dla lewego/prawego migacza
- int BlinkerSpeed = 20; // Kierunkowskaz działa prędkość LED. Dostosuj to do prędkości kierunkowskazów pojazdu.
- int BlinkerOffDelay = 500; // Włącz czas wyłączenia sygnału. Dostosuj to do prędkości kierunkowskazów pojazdu.
- int StartupSpeed = 20; // Szybkosc startu
- CRGB leds[NUM_LEDS];
- void setup()
- {
- FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
- pinMode(BrakeSignal, INPUT);
- pinMode(LeftSignal, INPUT);
- pinMode(RightSignal, INPUT);
- pinMode(ReverseSignal, INPUT);
- for (int i = 0; i < (NUM_LEDS / 2); i++)
- {
- leds[i] = CRGB(30, 0, 0);
- leds[i - 1] = CRGB(0, 0, 0);
- leds[(NUM_LEDS - 1) - i] = CRGB(30, 0, 0);
- leds[(NUM_LEDS) - i] = CRGB(0, 0, 0);
- FastLED.show();
- delay (StartupSpeed);
- }
- for (int j = ((NUM_LEDS / 2) - 1); j >= 0; j--)
- {
- leds[j] = CRGB(30, 0, 0);
- leds[(NUM_LEDS / 2 - 1) + ((NUM_LEDS / 2) - j)] = CRGB(30, 0, 0);
- FastLED.show();
- delay (StartupSpeed);
- }
- for (int j = ((NUM_LEDS / 2) - 1); j >= 0; j--)
- {
- leds[j] = CRGB(255, 0, 0);
- leds[(NUM_LEDS / 2 - 1) + ((NUM_LEDS / 2) - j)] = CRGB(255, 0, 0);
- FastLED.show();
- delay (StartupSpeed);
- }
- for (int j = 255; j >= 60; j--)
- {
- for (int i = 0; i < NUM_LEDS; i++)
- {
- leds[i] = CRGB(j, 0, 0);
- }
- FastLED.show();
- delay (5);
- }
- }
- void loop()
- {
- if ((digitalRead(ReverseSignal) == 1) && (digitalRead(BrakeSignal) == 0)) // Światło wsteczne
- {
- Reverse();
- }
- if ((digitalRead(ReverseSignal) == 1) && (digitalRead(BrakeSignal) == 1)) // Światło hamowania
- {
- BrakeFull();
- }
- if (digitalRead(ReverseSignal) == 0)
- {
- if ((digitalRead(LeftSignal) == 0) && (digitalRead(RightSignal) == 0) && (digitalRead(BrakeSignal) == 0)) // Światło parkowe
- {
- ParkFull();
- }
- if ((digitalRead(BrakeSignal) == 1) && (digitalRead(LeftSignal) == 0) && (digitalRead(RightSignal) == 0)) // Światło hamowania
- {
- BrakeFull();
- }
- if ((digitalRead(LeftSignal) == 1) && (digitalRead(RightSignal) == 0) && (digitalRead(BrakeSignal) == 0)) // Lewy migacz
- {
- LeftDim();
- RightLit();
- LeftBlinker();
- LeftDim();
- delay (BlinkerOffDelay);
- }
- if ((digitalRead(RightSignal) == 1) && (digitalRead(LeftSignal) == 0) && (digitalRead(BrakeSignal) == 0)) // Prawy migacz
- {
- RightDim();
- LeftLit();
- RightBlinker();
- RightDim();
- delay (BlinkerOffDelay);
- }
- if ((digitalRead(LeftSignal) == 1) && (digitalRead(RightSignal) == 0) && (digitalRead(BrakeSignal) == 1)) // Lewy migacz i hamulec
- {
- LeftDim();
- RightFull();
- LeftBlinker();
- LeftDim();
- delay (BlinkerOffDelay);
- }
- if ((digitalRead(RightSignal) == 1) && (digitalRead(LeftSignal) == 0) && (digitalRead(BrakeSignal) == 1)) // Prawy migacz i hamulec
- {
- RightDim();
- LeftFull();
- RightBlinker();
- RightDim();
- delay (BlinkerOffDelay);
- }
- if ((digitalRead(LeftSignal) == 1) && (digitalRead(RightSignal) == 1) && (digitalRead(BrakeSignal) == 0)) // Podwójny migacz/zagrożenie
- {
- LeftDim();
- RightDim();
- ParkMiddle();
- DualBlinker();
- LeftDim();
- RightDim();
- delay (BlinkerOffDelay);
- }
- if ((digitalRead(LeftSignal) == 1) && (digitalRead(RightSignal) == 1) && (digitalRead(BrakeSignal) == 1)) // Podwójny migacz/zagrożenie + hamulec
- {
- LeftDim();
- RightDim();
- BrakeMiddle();
- DualBlinker();
- LeftDim();
- RightDim();
- delay (BlinkerOffDelay);
- }
- }
- }
- void Reverse()
- {
- for (int i = 0; i < NUM_LEDS; i++)
- {
- leds[i] = CRGB(255, 255, 255);
- }
- FastLED.show();
- }
- void BrakeFull()
- {
- for (int i = 0; i < NUM_LEDS; i++)
- {
- leds[i] = CRGB(255, 0, 0);
- }
- FastLED.show();
- }
- void BrakeMiddle()
- {
- for (int i = BlinkerLEDs; i < (NUM_LEDS - BlinkerLEDs); i++)
- {
- leds[i] = CRGB(255, 0, 0);
- }
- FastLED.show();
- }
- void ParkFull()
- {
- for (int i = 0; i < NUM_LEDS; i++)
- {
- leds[i] = CRGB(60, 0, 0);
- }
- 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(75, 0, 0);
- }
- FastLED.show();
- }
- void LeftFull()
- {
- for (int i = 0; i < (NUM_LEDS - BlinkerLEDs); i++)
- {
- leds[i] = CRGB(255, 0, 0);
- }
- 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(75, 0, 0);
- }
- FastLED.show();
- }
- void RightFull()
- {
- for (int i = BlinkerLEDs; i < NUM_LEDS; i++)
- {
- leds[i] = CRGB(255, 0, 0);
- }
- 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