Advertisement
kris83

Swiatla samochodowe tylne

Jul 9th, 2021
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.38 KB | None | 0 0
  1. ///////////////////////////////////////////////////
  2. // Światła samochodowe Tylne //
  3. // Arduino Nano V3 //
  4. // Firmware 09.07.2021 //
  5. ///////////////////////////////////////////////////
  6.  
  7. #include "Arduino.h"
  8. #include <FastLED.h>
  9.  
  10. #define LED_PIN 8 // Połączenie sygnału taśmy LED
  11.  
  12. #define BrakeSignal 4 // Połączenie sygnału hamowania
  13. #define LeftSignal 2 // Połączenie sygnału lewego migacza
  14. #define RightSignal 3 // Połączenie sygnału prawego migacza
  15. #define ReverseSignal 5 // Połączenie sygnału wstecznego
  16.  
  17. #define NUM_LEDS 36 // Całkowita liczba diod LED w pasku LED
  18. #define BlinkerLEDs 18 // Liczba diod LED dla lewego/prawego migacza
  19.  
  20. int BlinkerSpeed = 20; // Kierunkowskaz działa prędkość LED. Dostosuj to do prędkości kierunkowskazów pojazdu.
  21. int BlinkerOffDelay = 500; // Włącz czas wyłączenia sygnału. Dostosuj to do prędkości kierunkowskazów pojazdu.
  22.  
  23. int StartupSpeed = 20; // Szybkosc startu
  24.  
  25. CRGB leds[NUM_LEDS];
  26.  
  27.  
  28. void setup()
  29. {
  30. FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
  31.  
  32. pinMode(BrakeSignal, INPUT);
  33. pinMode(LeftSignal, INPUT);
  34. pinMode(RightSignal, INPUT);
  35. pinMode(ReverseSignal, INPUT);
  36.  
  37.  
  38. for (int i = 0; i < (NUM_LEDS / 2); i++)
  39. {
  40. leds[i] = CRGB(30, 0, 0);
  41. leds[i - 1] = CRGB(0, 0, 0);
  42. leds[(NUM_LEDS - 1) - i] = CRGB(30, 0, 0);
  43. leds[(NUM_LEDS) - i] = CRGB(0, 0, 0);
  44. FastLED.show();
  45. delay (StartupSpeed);
  46. }
  47.  
  48. for (int j = ((NUM_LEDS / 2) - 1); j >= 0; j--)
  49. {
  50. leds[j] = CRGB(30, 0, 0);
  51. leds[(NUM_LEDS / 2 - 1) + ((NUM_LEDS / 2) - j)] = CRGB(30, 0, 0);
  52. FastLED.show();
  53. delay (StartupSpeed);
  54. }
  55.  
  56. for (int j = ((NUM_LEDS / 2) - 1); j >= 0; j--)
  57. {
  58. leds[j] = CRGB(255, 0, 0);
  59. leds[(NUM_LEDS / 2 - 1) + ((NUM_LEDS / 2) - j)] = CRGB(255, 0, 0);
  60. FastLED.show();
  61. delay (StartupSpeed);
  62. }
  63.  
  64. for (int j = 255; j >= 60; j--)
  65. {
  66. for (int i = 0; i < NUM_LEDS; i++)
  67. {
  68. leds[i] = CRGB(j, 0, 0);
  69. }
  70. FastLED.show();
  71. delay (5);
  72. }
  73. }
  74.  
  75.  
  76. void loop()
  77. {
  78. if ((digitalRead(ReverseSignal) == 1) && (digitalRead(BrakeSignal) == 0)) // Światło wsteczne
  79. {
  80. Reverse();
  81. }
  82.  
  83. if ((digitalRead(ReverseSignal) == 1) && (digitalRead(BrakeSignal) == 1)) // Światło hamowania
  84. {
  85. BrakeFull();
  86. }
  87.  
  88. if (digitalRead(ReverseSignal) == 0)
  89. {
  90. if ((digitalRead(LeftSignal) == 0) && (digitalRead(RightSignal) == 0) && (digitalRead(BrakeSignal) == 0)) // Światło parkowe
  91. {
  92. ParkFull();
  93. }
  94.  
  95. if ((digitalRead(BrakeSignal) == 1) && (digitalRead(LeftSignal) == 0) && (digitalRead(RightSignal) == 0)) // Światło hamowania
  96. {
  97. BrakeFull();
  98. }
  99.  
  100. if ((digitalRead(LeftSignal) == 1) && (digitalRead(RightSignal) == 0) && (digitalRead(BrakeSignal) == 0)) // Lewy migacz
  101. {
  102. LeftDim();
  103. RightLit();
  104. LeftBlinker();
  105. LeftDim();
  106. delay (BlinkerOffDelay);
  107. }
  108.  
  109. if ((digitalRead(RightSignal) == 1) && (digitalRead(LeftSignal) == 0) && (digitalRead(BrakeSignal) == 0)) // Prawy migacz
  110. {
  111. RightDim();
  112. LeftLit();
  113. RightBlinker();
  114. RightDim();
  115. delay (BlinkerOffDelay);
  116. }
  117.  
  118. if ((digitalRead(LeftSignal) == 1) && (digitalRead(RightSignal) == 0) && (digitalRead(BrakeSignal) == 1)) // Lewy migacz i hamulec
  119. {
  120. LeftDim();
  121. RightFull();
  122. LeftBlinker();
  123. LeftDim();
  124. delay (BlinkerOffDelay);
  125. }
  126.  
  127. if ((digitalRead(RightSignal) == 1) && (digitalRead(LeftSignal) == 0) && (digitalRead(BrakeSignal) == 1)) // Prawy migacz i hamulec
  128. {
  129. RightDim();
  130. LeftFull();
  131. RightBlinker();
  132. RightDim();
  133. delay (BlinkerOffDelay);
  134. }
  135.  
  136. if ((digitalRead(LeftSignal) == 1) && (digitalRead(RightSignal) == 1) && (digitalRead(BrakeSignal) == 0)) // Podwójny migacz/zagrożenie
  137. {
  138. LeftDim();
  139. RightDim();
  140. ParkMiddle();
  141. DualBlinker();
  142. LeftDim();
  143. RightDim();
  144. delay (BlinkerOffDelay);
  145. }
  146.  
  147. if ((digitalRead(LeftSignal) == 1) && (digitalRead(RightSignal) == 1) && (digitalRead(BrakeSignal) == 1)) // Podwójny migacz/zagrożenie + hamulec
  148. {
  149. LeftDim();
  150. RightDim();
  151. BrakeMiddle();
  152. DualBlinker();
  153. LeftDim();
  154. RightDim();
  155. delay (BlinkerOffDelay);
  156. }
  157. }
  158. }
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165. void Reverse()
  166. {
  167. for (int i = 0; i < NUM_LEDS; i++)
  168. {
  169. leds[i] = CRGB(255, 255, 255);
  170. }
  171. FastLED.show();
  172. }
  173.  
  174. void BrakeFull()
  175. {
  176. for (int i = 0; i < NUM_LEDS; i++)
  177. {
  178. leds[i] = CRGB(255, 0, 0);
  179. }
  180. FastLED.show();
  181. }
  182.  
  183. void BrakeMiddle()
  184. {
  185. for (int i = BlinkerLEDs; i < (NUM_LEDS - BlinkerLEDs); i++)
  186. {
  187. leds[i] = CRGB(255, 0, 0);
  188. }
  189. FastLED.show();
  190. }
  191.  
  192. void ParkFull()
  193. {
  194. for (int i = 0; i < NUM_LEDS; i++)
  195. {
  196. leds[i] = CRGB(60, 0, 0);
  197. }
  198. FastLED.show();
  199. }
  200.  
  201. void ParkMiddle()
  202. {
  203. for (int i = BlinkerLEDs; i < (NUM_LEDS - BlinkerLEDs); i++)
  204. {
  205. leds[i] = CRGB(60, 0, 0);
  206. }
  207. FastLED.show();
  208. }
  209.  
  210. void LeftBlinker()
  211. {
  212. for (int i = (BlinkerLEDs - 1); i >= 0; i--)
  213. {
  214. leds[i] = CRGB(255, 165, 0);
  215. FastLED.show();
  216. delay (BlinkerSpeed);
  217. }
  218. }
  219.  
  220. void LeftDim()
  221. {
  222. for (int i = 0; i < BlinkerLEDs; i++)
  223. {
  224. leds[i] = CRGB(0, 0, 0);
  225. }
  226. FastLED.show();
  227. }
  228.  
  229. void LeftLit()
  230. {
  231. for (int i = 0; i < (NUM_LEDS - BlinkerLEDs); i++)
  232. {
  233. leds[i] = CRGB(75, 0, 0);
  234. }
  235. FastLED.show();
  236. }
  237.  
  238. void LeftFull()
  239. {
  240. for (int i = 0; i < (NUM_LEDS - BlinkerLEDs); i++)
  241. {
  242. leds[i] = CRGB(255, 0, 0);
  243. }
  244. FastLED.show();
  245. }
  246.  
  247. void RightBlinker()
  248. {
  249. for (int i = (NUM_LEDS - BlinkerLEDs); i < NUM_LEDS; i++)
  250. {
  251. leds[i] = CRGB(255, 165, 0);
  252. FastLED.show();
  253. delay (BlinkerSpeed);
  254. }
  255. }
  256.  
  257. void RightDim()
  258. {
  259. for (int i = (NUM_LEDS - BlinkerLEDs); i < NUM_LEDS; i++)
  260. {
  261. leds[i] = CRGB(0, 0, 0);
  262. }
  263. FastLED.show();
  264. }
  265.  
  266. void RightLit()
  267. {
  268. for (int i = BlinkerLEDs; i < NUM_LEDS; i++)
  269. {
  270. leds[i] = CRGB(75, 0, 0);
  271. }
  272. FastLED.show();
  273. }
  274.  
  275. void RightFull()
  276. {
  277. for (int i = BlinkerLEDs; i < NUM_LEDS; i++)
  278. {
  279. leds[i] = CRGB(255, 0, 0);
  280. }
  281. FastLED.show();
  282. }
  283.  
  284. void DualBlinker()
  285. {
  286. for (int i = (BlinkerLEDs - 1); i >= 0; i--)
  287. {
  288. leds[i] = CRGB(255, 165, 0);
  289. leds[NUM_LEDS - 1 - i] = CRGB(255, 165, 0);
  290. FastLED.show();
  291. delay (BlinkerSpeed);
  292. }
  293. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement