Guest User

Untitled

a guest
Dec 2nd, 2022
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.44 KB | None | 0 0
  1. // HAZI TECH
  2. // Program by Hasitha Jayasundara
  3. // Visit my YouTube Channel - http://www.youtube.com/c/HAZITECH?sub_confirmation=1
  4.  
  5. #include "Arduino.h"
  6. #include <FastLED.h>
  7.  
  8. #define LED_PIN 2 //LED Strip Signal Connection
  9. #define DRLSignal 4 //DRL Switch Signal Connection
  10. #define LeftSignal 5 //Left Blinker Signal Connection
  11. #define RightSignal 6 //Right Blinker Signal Connection
  12. #define LightBrightness 7 //Right Blinker Signal Connection
  13.  
  14.  
  15. #define NUM_LEDS 13 //Total no of LEDs in two LED strips (eg. Use 40 here for two 20 LED strips)
  16.  
  17. #define BlinkerLEDs NUM_LEDS/2
  18.  
  19. int BlinkerSpeed = 30; //Turn Signal Running LED Speed. Adjust this to match with your vehicle turn signal speed.
  20. int BlinkerOffDelay = 250; //Turn Signal Off time. Adjust this to match with your vehicle turn signal speed.
  21.  
  22. int StartupSpeed = 25;
  23. int DRLDetect = 0;
  24.  
  25. int DRLColour = 1; //Change LED colour here, 1-Ice Blue, 2-Blue, 3-White, 4-Orange
  26.  
  27. CRGB leds[NUM_LEDS];
  28. int r,r_dim,g,g_dim,b,b_dim;
  29.  
  30.  
  31. boolean stop= true;
  32.  
  33. void setup()
  34. {
  35. FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
  36. pinMode(DRLSignal, INPUT);
  37. pinMode(LeftSignal, INPUT);
  38. pinMode(RightSignal, INPUT);
  39. pinMode(LightBrightness, INPUT);
  40. }
  41.  
  42.  
  43. void loop()
  44. {
  45.  
  46.  
  47. if (digitalRead(LightBrightness) == HIGH){
  48. FastLED.setBrightness(50);
  49. FastLED.show();
  50.  
  51.  
  52. }
  53. else if (digitalRead(LightBrightness) == LOW) {
  54. FastLED.setBrightness(225);
  55. FastLED.show();
  56. }
  57.  
  58. if (digitalRead(DRLSignal) == LOW) {
  59. FastLED.clear();
  60. }
  61.  
  62.  
  63. if(DRLDetect == 0)
  64. {
  65. if(digitalRead(DRLSignal)==1)
  66. {
  67. DRLDetect = 1;
  68. }
  69. }
  70.  
  71. if(DRLDetect == 2)
  72. {
  73. if(digitalRead(DRLSignal)==0)
  74. {
  75. DRLDetect = 3;
  76. }
  77. }
  78.  
  79. if(DRLDetect == 1)
  80. {
  81. DRL_ON();
  82. DRLDetect = 2;
  83. }
  84.  
  85. if(DRLDetect == 3)
  86. {
  87. DRL_OFF();
  88. DRLDetect = 0;
  89. }
  90.  
  91.  
  92. if(digitalRead(DRLSignal)==0)
  93. {
  94. if((digitalRead(LeftSignal)==1)&&(digitalRead(RightSignal)==0)) //Left Blinker
  95. {
  96. RightOff();
  97. LeftBlinker();
  98. LeftDim();
  99. delay (BlinkerOffDelay);
  100. }
  101.  
  102. if((digitalRead(RightSignal)==1)&&(digitalRead(LeftSignal)==0)) //Right Blinker
  103. {
  104. LeftOff();
  105. RightBlinker();
  106. RightDim();
  107. delay (BlinkerOffDelay);
  108. }
  109.  
  110. if((digitalRead(LeftSignal)==1)&&(digitalRead(RightSignal)==1)) //Dual Blinker / Hazard
  111. {
  112. MiddleOff();
  113. DualBlinker();
  114. LeftDim();
  115. RightDim();
  116. delay (BlinkerOffDelay);
  117. }
  118. }
  119.  
  120.  
  121. if(DRLDetect == 2)
  122. {
  123. if((digitalRead(LeftSignal)==0)&&(digitalRead(RightSignal)==0)) //Park Light
  124. {
  125. ParkFull();
  126. }
  127.  
  128. if((digitalRead(LeftSignal)==1)&&(digitalRead(RightSignal)==0)) //Left Blinker
  129. {
  130. LeftDim();
  131. RightLit();
  132. LeftBlinker();
  133. LeftDim();
  134. delay (BlinkerOffDelay);
  135. }
  136.  
  137. if((digitalRead(RightSignal)==1)&&(digitalRead(LeftSignal)==0)) //Right Blinker
  138. {
  139. RightDim();
  140. LeftLit();
  141. RightBlinker();
  142. RightDim();
  143. delay (BlinkerOffDelay);
  144. }
  145.  
  146. if((digitalRead(LeftSignal)==1)&&(digitalRead(RightSignal)==1)) //Dual Blinker / Hazard
  147. {
  148. LeftDim();
  149. RightDim();
  150. ParkMiddle();
  151. DualBlinker();
  152. LeftDim();
  153. RightDim();
  154. delay (BlinkerOffDelay);
  155. }
  156. }
  157.  
  158. switch (DRLColour)
  159. {
  160. case 1:
  161. g = 255;
  162. g_dim = 30;
  163. b = 255;
  164. b_dim = 30;
  165. break;
  166.  
  167. case 2:
  168. b = 255;
  169. b_dim = 30;
  170. break;
  171.  
  172. case 3:
  173. r = 255;
  174. r_dim = 30;
  175. g = 255;
  176. g_dim = 30;
  177. b = 255;
  178. b_dim = 30;
  179. break;
  180.  
  181. case 4:
  182. r = 255;
  183. r_dim = 30;
  184. g = 165;
  185. g_dim = 20;
  186. b = 0;
  187. b_dim = 0;
  188. break;
  189. }
  190.  
  191. }
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198. void DRL_ON()
  199. {
  200. for (int j = ((NUM_LEDS/2)-1); j >= 0; j--)
  201. {
  202. leds[j] = CRGB(r_dim, g_dim, b_dim);
  203. leds[j+1] = CRGB(0, 0, 0);
  204. leds[(NUM_LEDS/2-1)+((NUM_LEDS/2)-j)] = CRGB(r_dim, g_dim, b_dim);
  205. leds[(NUM_LEDS/2-1)+((NUM_LEDS/2)-j)-1] = CRGB(0, 0, 0);
  206. FastLED.show();
  207. delay (StartupSpeed);
  208. }
  209.  
  210. for (int i = 0; i < (NUM_LEDS/2); i++)
  211. {
  212. leds[i] = CRGB(r_dim, g_dim, b_dim);
  213. leds[(NUM_LEDS-1)-i] = CRGB(r_dim, g_dim, b_dim);
  214. FastLED.show();
  215. delay (StartupSpeed);
  216. }
  217.  
  218.  
  219. for (int j = ((NUM_LEDS/2)-1); j >= 0; j--)
  220. {
  221. leds[j] = CRGB(r, g, b);
  222. leds[(NUM_LEDS/2-1)+((NUM_LEDS/2)-j)] = CRGB(r, g, b);
  223. FastLED.show();
  224. delay (StartupSpeed);
  225. }
  226. }
  227.  
  228. void DRL_OFF()
  229. {
  230.  
  231. for (int j = 0; j <= ((NUM_LEDS/2)-1); j++)
  232. {
  233. leds[j] = CRGB(r, g, b);
  234. leds[j-1] = CRGB(r_dim, g_dim, b_dim);
  235. leds[(NUM_LEDS-1)-j] = CRGB(r, g, b);
  236. leds[(NUM_LEDS)-j] = CRGB(r_dim, g_dim, b_dim);
  237. FastLED.show();
  238. delay (StartupSpeed);
  239. }
  240.  
  241. leds[((NUM_LEDS/2)-1)] = CRGB(r_dim, g_dim, b_dim);
  242. leds[((NUM_LEDS/2)-1)+1] = CRGB(r_dim, g_dim, b_dim);
  243. FastLED.show();
  244.  
  245. for (int j = ((NUM_LEDS/2)-1); j >= 0; j--)
  246. {
  247. leds[j] = CRGB(r_dim, g_dim, b_dim);
  248. leds[j+1] = CRGB(0, 0, 0);
  249. leds[(NUM_LEDS/2-1)+((NUM_LEDS/2)-j)] = CRGB(r_dim, g_dim, b_dim);
  250. leds[(NUM_LEDS/2-1)+((NUM_LEDS/2)-j)-1] = CRGB(0, 0, 0);
  251. FastLED.show();
  252. delay (StartupSpeed);
  253. }
  254.  
  255. for (int j = 0; j <= ((NUM_LEDS/2)-1); j++)
  256. {
  257. leds[j] = CRGB(r_dim, g_dim, b_dim);
  258. leds[j-1] = CRGB(0, 0, 0);
  259. leds[(NUM_LEDS-1)-j] = CRGB(r_dim, g_dim, b_dim);
  260. leds[(NUM_LEDS)-j] = CRGB(0, 0, 0);
  261. FastLED.show();
  262. delay (StartupSpeed);
  263. }
  264.  
  265. leds[(NUM_LEDS/2)-1] = CRGB(0, 0, 0);
  266. leds[NUM_LEDS/2] = CRGB(0, 0, 0);
  267. FastLED.show();
  268. }
  269.  
  270. void AllOff()
  271. {
  272. for (int i = 0; i < NUM_LEDS; i++)
  273. {
  274. leds[i] = CRGB(0, 0, 0);
  275. }
  276. FastLED.show();
  277. }
  278.  
  279. void LeftOff()
  280. {
  281. for (int i = 0; i < (NUM_LEDS - BlinkerLEDs); i++)
  282. {
  283. leds[i] = CRGB(0, 0, 0);
  284. }
  285. FastLED.show();
  286. }
  287.  
  288. void RightOff()
  289. {
  290. for (int i = BlinkerLEDs; i < NUM_LEDS; i++)
  291. {
  292. leds[i] = CRGB(0, 0, 0);
  293. }
  294. FastLED.show();
  295. }
  296.  
  297. void MiddleOff()
  298. {
  299. for (int i = BlinkerLEDs; i < (NUM_LEDS - BlinkerLEDs); i++)
  300. {
  301. leds[i] = CRGB(0, 0, 0);
  302. }
  303. FastLED.show();
  304. }
  305.  
  306. void ParkFull()
  307. {
  308. for (int i = 0; i < NUM_LEDS; i++)
  309. {
  310. leds[i] = CRGB(r, g, b);
  311. }
  312. FastLED.show();
  313. }
  314.  
  315. void ParkMiddle()
  316. {
  317. for (int i = BlinkerLEDs; i < (NUM_LEDS - BlinkerLEDs); i++)
  318. {
  319. leds[i] = CRGB(60, 0, 0);
  320. }
  321. FastLED.show();
  322. }
  323.  
  324. void LeftBlinker()
  325. {
  326. for (int i = (BlinkerLEDs-1); i >= 0; i--)
  327. {
  328. leds[i] = CRGB(255, 165, 0);
  329. FastLED.show();
  330. delay (BlinkerSpeed);
  331. }
  332. }
  333.  
  334. void LeftDim()
  335. {
  336. for (int i = 0; i < BlinkerLEDs; i++)
  337. {
  338. leds[i] = CRGB(0, 0, 0);
  339. }
  340. FastLED.show();
  341. }
  342.  
  343. void LeftLit()
  344. {
  345. for (int i = 0; i < (NUM_LEDS - BlinkerLEDs); i++)
  346. {
  347. leds[i] = CRGB(r, g, b);
  348. }
  349. FastLED.show();
  350. }
  351.  
  352. void LeftFull()
  353. {
  354. for (int i = 0; i < (NUM_LEDS - BlinkerLEDs); i++)
  355. {
  356. leds[i] = CRGB(r, g, b);
  357. }
  358. FastLED.show();
  359. }
  360.  
  361. void RightBlinker()
  362. {
  363. for (int i = (NUM_LEDS - BlinkerLEDs); i < NUM_LEDS; i++)
  364. {
  365. leds[i] = CRGB(255, 165, 0);
  366. FastLED.show();
  367. delay (BlinkerSpeed);
  368. }
  369. }
  370.  
  371. void RightDim()
  372. {
  373. for (int i = (NUM_LEDS - BlinkerLEDs); i < NUM_LEDS; i++)
  374. {
  375. leds[i] = CRGB(0, 0, 0);
  376. }
  377. FastLED.show();
  378. }
  379.  
  380. void RightLit()
  381. {
  382. for (int i = BlinkerLEDs; i < NUM_LEDS; i++)
  383. {
  384. leds[i] = CRGB(r, g, b);
  385. }
  386. FastLED.show();
  387. }
  388.  
  389. void RightFull()
  390. {
  391. for (int i = BlinkerLEDs; i < NUM_LEDS; i++)
  392. {
  393. leds[i] = CRGB(r, g, b);
  394. }
  395. FastLED.show();
  396. }
  397.  
  398. void DualBlinker()
  399. {
  400. for (int i = (BlinkerLEDs-1); i >= 0; i--)
  401. {
  402. leds[i] = CRGB(255, 165, 0);
  403. leds[NUM_LEDS-1-i] = CRGB(255, 165, 0);
  404. FastLED.show();
  405. delay (BlinkerSpeed);
  406. }
  407. }
Advertisement
Add Comment
Please, Sign In to add comment