Bidouille2Geek

Panneau LED Bidouille2geek.fr

Sep 27th, 2019
245
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. int decalage;
  2. int LEDmortes;
  3. int positionLogoX=30;
  4. int tourDe=0;
  5. int red=0;
  6. int green=0;
  7. int blue=255;
  8. int stop=0;
  9.  
  10. #include <Adafruit_NeoPixel.h>
  11.  
  12. #define PIXEL_PIN 3 // On définit le pin où est connecté la patte DATA du bandeau
  13. #define PIXEL_COUNT 238 // On définit le nombre de LED compris sur le Ruban de LED soit 150 pour le ruban de 5m50
  14. Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); // Paramètre l'objet strip qui correspond à toute les LED du ruban
  15.  
  16. void allumerTout(int luminosite, int red, int green, int blue)
  17. {
  18.   /*
  19.       Allume toutes les LEDs en fonction de la luminosité et du choix des couleurs
  20.   */
  21.  
  22.   strip.setBrightness(luminosite);  //Défini la luminosité en fonction de la variable luminosité obtenue à partir du potentiomètre
  23.   for (int i = 0 ; i < PIXEL_COUNT ; i++)
  24.   {
  25.   strip.setPixelColor(i, red, blue, green); //Défini la couleur de chaque LED (de 0 à PIXEL_COUNT --> nombre de LEDs défini) en fonction des couleurs choisies
  26.   }
  27. }
  28.  
  29. void allumerLED(int luminosite, int x, int y, int red, int green, int blue)
  30. {
  31.   strip.setBrightness(luminosite);
  32.   if(((y==2)&&(x<2))||(x<0)||(x>23))
  33.   {
  34.     LEDmortes=0;
  35.   }else{
  36.     LEDmortes=1;
  37.   }
  38.   if(y>1)
  39.   {
  40.     decalage=2;
  41.   }else{
  42.     decalage=0;
  43.   }
  44.   if(LEDmortes==1)
  45.   {
  46.     strip.setPixelColor(y*24+x-decalage, strip.Color(red,blue,green));
  47.   }
  48. }
  49.  
  50. void ligneHoriz(int luminosite, int x1, int x2, int y, int red, int green, int blue)
  51. {
  52.   for(int i=x1;i<x2;i++)
  53.   {
  54.     allumerLED(luminosite,i,y,red,green,blue);
  55.   }
  56. }
  57.  
  58. boolean spriteA[][8] =
  59. {
  60.     {0,1,1,1,0},
  61.     {1,0,0,0,1},
  62.     {1,0,0,0,1},
  63.     {1,1,1,1,1},
  64.     {1,0,0,0,1},
  65.     {1,0,0,0,1},
  66.     {1,0,0,0,1},
  67.     {1,0,0,0,1}
  68. };
  69.  
  70. boolean spriteB[][8] =
  71. {
  72.     {1,1,1,1,0},
  73.     {1,0,0,0,1},
  74.     {1,0,0,0,1},
  75.     {1,1,1,1,0},
  76.     {1,0,0,0,1},
  77.     {1,0,0,0,1},
  78.     {1,0,0,0,1},
  79.     {1,1,1,1,0}
  80. };
  81.  
  82. boolean spriteC[][8] =
  83. {
  84.     {0,1,1,1,0},
  85.     {1,0,0,0,1},
  86.     {1,0,0,0,0},
  87.     {1,0,0,0,0},
  88.     {1,0,0,0,0},
  89.     {1,0,0,0,0},
  90.     {1,0,0,0,1},
  91.     {0,1,1,1,0}
  92. };
  93.  
  94. boolean spriteD[][8] =
  95. {
  96.     {1,1,1,0,0},
  97.     {1,0,0,1,0},
  98.     {1,0,0,0,1},
  99.     {1,0,0,0,1},
  100.     {1,0,0,0,1},
  101.     {1,0,0,0,1},
  102.     {1,0,0,1,0},
  103.     {1,1,1,0,0}
  104. };
  105.  
  106. boolean spriteE[][8] =
  107. {
  108.     {1,1,1,1,1},
  109.     {1,0,0,0,0},
  110.     {1,0,0,0,0},
  111.     {1,1,1,1,0},
  112.     {1,0,0,0,0},
  113.     {1,0,0,0,0},
  114.     {1,0,0,0,0},
  115.     {1,1,1,1,1}
  116. };
  117.  
  118. boolean spriteF[][8] =
  119. {
  120.     {1,1,1,1,1},
  121.     {1,0,0,0,0},
  122.     {1,0,0,0,0},
  123.     {1,1,1,1,0},
  124.     {1,0,0,0,0},
  125.     {1,0,0,0,0},
  126.     {1,0,0,0,0},
  127.     {1,0,0,0,0}
  128. };
  129.  
  130. boolean spriteG[][8] =
  131. {
  132.     {0,1,1,1,0},
  133.     {1,0,0,0,1},
  134.     {1,0,0,0,0},
  135.     {1,0,0,0,0},
  136.     {1,0,1,1,1},
  137.     {1,0,0,0,1},
  138.     {1,0,0,0,1},
  139.     {0,1,1,1,0}
  140. };
  141.  
  142. boolean spriteH[][8] =
  143. {
  144.     {1,0,0,0,1},
  145.     {1,0,0,0,1},
  146.     {1,0,0,0,1},
  147.     {1,1,1,1,1},
  148.     {1,0,0,0,1},
  149.     {1,0,0,0,1},
  150.     {1,0,0,0,1},
  151.     {1,0,0,0,0}
  152. };
  153.  
  154. boolean spriteI[][8] =
  155. {
  156.     {1,1,1,1,1},
  157.     {0,0,1,0,0},
  158.     {0,0,1,0,0},
  159.     {0,0,1,0,0},
  160.     {0,0,1,0,0},
  161.     {0,0,1,0,0},
  162.     {0,0,1,0,0},
  163.     {1,1,1,1,1}
  164. };
  165.  
  166. boolean spriteJ[][8] =
  167. {
  168.     {1,1,1,1,1},
  169.     {0,0,0,1,0},
  170.     {0,0,0,1,0},
  171.     {0,0,0,1,0},
  172.     {0,0,0,1,0},
  173.     {0,0,0,1,0},
  174.     {1,0,0,1,0},
  175.     {0,1,1,0,0}
  176. };
  177.  
  178. boolean spriteK[][8] =
  179. {
  180.     {1,0,0,0,1},
  181.     {1,0,0,1,0},
  182.     {1,0,1,0,0},
  183.     {1,1,0,0,0},
  184.     {1,0,1,0,0},
  185.     {1,0,0,1,0},
  186.     {1,0,0,0,1},
  187.     {1,0,0,0,1}
  188. };
  189.  
  190. boolean spriteL[][8] =
  191. {
  192.     {1,0,0,0,0},
  193.     {1,0,0,0,0},
  194.     {1,0,0,0,0},
  195.     {1,0,0,0,0},
  196.     {1,0,0,0,0},
  197.     {1,0,0,0,0},
  198.     {1,0,0,0,0},
  199.     {1,1,1,1,1}
  200. };
  201.  
  202. boolean spriteM[][8] =
  203. {
  204.     {1,0,0,0,1},
  205.     {1,1,0,1,1},
  206.     {1,0,1,0,1},
  207.     {1,0,0,0,1},
  208.     {1,0,0,0,1},
  209.     {1,0,0,0,1},
  210.     {1,0,0,0,1},
  211.     {1,0,0,0,1}
  212. };
  213.  
  214. boolean spriteN[][8] =
  215. {
  216.     {1,0,0,0,1},
  217.     {1,1,0,0,1},
  218.     {1,1,0,0,1},
  219.     {1,0,1,0,1},
  220.     {1,0,1,0,1},
  221.     {1,0,0,1,1},
  222.     {1,0,0,1,1},
  223.     {1,0,0,0,1}
  224. };
  225.  
  226. boolean spriteO[][8] =
  227. {
  228.     {0,1,1,1,0},
  229.     {1,0,0,0,1},
  230.     {1,0,0,0,1},
  231.     {1,0,0,0,1},
  232.     {1,0,0,0,1},
  233.     {1,0,0,0,1},
  234.     {1,0,0,0,1},
  235.     {0,1,1,1,0}
  236. };
  237.  
  238. boolean spriteP[][8] =
  239. {
  240.     {1,1,1,1,0},
  241.     {1,0,0,0,1},
  242.     {1,0,0,0,1},
  243.     {1,0,0,0,1},
  244.     {1,1,1,1,0},
  245.     {1,0,0,0,0},
  246.     {1,0,0,0,0},
  247.     {1,0,0,0,0}
  248. };
  249.  
  250. boolean spriteQ[][8] =
  251. {
  252.     {0,1,1,1,0},
  253.     {1,0,0,0,1},
  254.     {1,0,0,0,1},
  255.     {1,0,0,0,1},
  256.     {1,0,0,0,1},
  257.     {1,0,1,0,1},
  258.     {1,0,0,1,0},
  259.     {0,1,1,0,1}
  260. };
  261.  
  262. boolean spriteR[][8] =
  263. {
  264.     {1,1,1,1,0},
  265.     {1,0,0,0,1},
  266.     {1,0,0,0,1},
  267.     {1,0,0,1,0},
  268.     {1,1,1,0,0},
  269.     {1,0,0,1,0},
  270.     {1,0,0,0,1},
  271.     {1,0,0,0,1}
  272. };
  273.  
  274. boolean spriteS[][8] =
  275. {
  276.     {0,1,1,1,0},
  277.     {1,0,0,0,1},
  278.     {1,0,0,0,1},
  279.     {0,1,1,0,0},
  280.     {0,0,0,1,0},
  281.     {1,0,0,0,1},
  282.     {1,0,0,0,1},
  283.     {0,1,1,1,0}
  284. };
  285.  
  286. boolean spriteT[][8] =
  287. {
  288.     {1,1,1,1,1},
  289.     {0,0,1,0,0},
  290.     {0,0,1,0,0},
  291.     {0,0,1,0,0},
  292.     {0,0,1,0,0},
  293.     {0,0,1,0,0},
  294.     {0,0,1,0,0},
  295.     {0,0,1,0,0}
  296. };
  297.  
  298. boolean spriteU[][8] =
  299. {
  300.     {1,0,0,0,1},
  301.     {1,0,0,0,1},
  302.     {1,0,0,0,1},
  303.     {1,0,0,0,1},
  304.     {1,0,0,0,1},
  305.     {1,0,0,0,1},
  306.     {1,0,0,0,1},
  307.     {0,1,1,1,0}
  308. };
  309.  
  310. boolean spriteV[][8] =
  311. {
  312.     {1,0,0,0,1},
  313.     {1,0,0,0,1},
  314.     {1,0,0,0,1},
  315.     {1,0,0,0,1},
  316.     {1,0,0,0,1},
  317.     {1,0,0,0,1},
  318.     {0,1,0,1,0},
  319.     {0,0,1,0,0}
  320. };
  321.  
  322. boolean spriteW[][8] =
  323. {
  324.     {1,0,0,0,1},
  325.     {1,0,0,0,1},
  326.     {1,0,0,0,1},
  327.     {1,0,0,0,1},
  328.     {1,0,0,0,1},
  329.     {1,0,1,0,1},
  330.     {1,0,1,0,1},
  331.     {0,1,0,1,0}
  332. };
  333.  
  334. boolean spriteX[][8] =
  335. {
  336.     {1,0,0,0,1},
  337.     {1,0,0,0,1},
  338.     {0,1,0,1,0},
  339.     {0,0,1,0,0},
  340.     {0,0,1,0,0},
  341.     {0,1,0,1,0},
  342.     {1,0,0,0,1},
  343.     {1,0,0,0,1}
  344. };
  345.  
  346. boolean spriteY[][8] =
  347. {
  348.     {1,0,0,0,1},
  349.     {1,0,0,0,1},
  350.     {0,1,0,1,0},
  351.     {0,1,0,1,0},
  352.     {0,0,1,0,0},
  353.     {0,0,1,0,0},
  354.     {0,0,1,0,0},
  355.     {0,0,1,0,0}
  356. };
  357.  
  358. boolean spriteZ[][8] =
  359. {
  360.     {1,1,1,1,1},
  361.     {0,0,0,0,1},
  362.     {0,0,0,1,0},
  363.     {0,0,1,0,0},
  364.     {0,0,1,0,0},
  365.     {0,1,0,0,0},
  366.     {1,0,0,0,0},
  367.     {1,1,1,1,1}
  368. };
  369.  
  370. boolean sprite2[][8] =
  371. {
  372.     {0,1,1,1,0},
  373.     {1,0,0,0,1},
  374.     {1,0,0,0,1},
  375.     {0,0,0,1,0},
  376.     {0,0,1,0,0},
  377.     {0,1,0,0,0},
  378.     {1,0,0,0,0},
  379.     {1,1,1,1,1}
  380. };
  381.  
  382.  
  383. void dessiner(int luminosite, char sprite[], int x, int y, int red, int green, int blue)
  384. {
  385.   for(int j=0;j<8;j++)
  386.   {
  387.     for(int i=0;i<5;i++)
  388.     {
  389.      
  390.      
  391.       if(sprite=="A")
  392.       {
  393.         if(spriteA[j][i]==1)
  394.         {
  395.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  396.         }
  397.       }
  398.      
  399.       if(sprite=="B")
  400.       {
  401.         if(spriteB[j][i]==1)
  402.         {
  403.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  404.         }
  405.       }
  406.      
  407.       if(sprite=="C")
  408.       {
  409.         if(spriteC[j][i]==1)
  410.         {
  411.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  412.         }
  413.       }
  414.      
  415.       if(sprite=="D")
  416.       {
  417.         if(spriteD[j][i]==1)
  418.         {
  419.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  420.         }
  421.       }
  422.      
  423.       if(sprite=="E")
  424.       {
  425.         if(spriteE[j][i]==1)
  426.         {
  427.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  428.         }
  429.       }
  430.      
  431.       if(sprite=="F")
  432.       {
  433.         if(spriteF[j][i]==1)
  434.         {
  435.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  436.         }
  437.       }
  438.      
  439.       if(sprite=="G")
  440.       {
  441.         if(spriteG[j][i]==1)
  442.         {
  443.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  444.         }
  445.       }
  446.      
  447.       if(sprite=="H")
  448.       {
  449.         if(spriteH[j][i]==1)
  450.         {
  451.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  452.         }
  453.       }
  454.      
  455.       if(sprite=="I")
  456.       {
  457.         if(spriteI[j][i]==1)
  458.         {
  459.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  460.         }
  461.       }
  462.      
  463.       if(sprite=="J")
  464.       {
  465.         if(spriteJ[j][i]==1)
  466.         {
  467.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  468.         }
  469.       }
  470.      
  471.       if(sprite=="K")
  472.       {
  473.         if(spriteK[j][i]==1)
  474.         {
  475.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  476.         }
  477.       }
  478.      
  479.       if(sprite=="L")
  480.       {
  481.         if(spriteL[j][i]==1)
  482.         {
  483.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  484.         }
  485.       }
  486.      
  487.       if(sprite=="M")
  488.       {
  489.         if(spriteM[j][i]==1)
  490.         {
  491.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  492.         }
  493.       }
  494.      
  495.       if(sprite=="N")
  496.       {
  497.         if(spriteN[j][i]==1)
  498.         {
  499.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  500.         }
  501.       }
  502.      
  503.       if(sprite=="O")
  504.       {
  505.         if(spriteO[j][i]==1)
  506.         {
  507.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  508.         }
  509.       }
  510.      
  511.       if(sprite=="P")
  512.       {
  513.         if(spriteP[j][i]==1)
  514.         {
  515.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  516.         }
  517.       }
  518.      
  519.       if(sprite=="Q")
  520.       {
  521.         if(spriteQ[j][i]==1)
  522.         {
  523.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  524.         }
  525.       }
  526.      
  527.       if(sprite=="R")
  528.       {
  529.         if(spriteR[j][i]==1)
  530.         {
  531.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  532.         }
  533.       }
  534.      
  535.       if(sprite=="S")
  536.       {
  537.         if(spriteS[j][i]==1)
  538.         {
  539.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  540.         }
  541.       }
  542.      
  543.       if(sprite=="T")
  544.       {
  545.         if(spriteT[j][i]==1)
  546.         {
  547.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  548.         }
  549.       }
  550.      
  551.       if(sprite=="U")
  552.       {
  553.         if(spriteU[j][i]==1)
  554.         {
  555.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  556.         }
  557.       }
  558.      
  559.       if(sprite=="V")
  560.       {
  561.         if(spriteV[j][i]==1)
  562.         {
  563.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  564.         }
  565.       }
  566.      
  567.       if(sprite=="W")
  568.       {
  569.         if(spriteW[j][i]==1)
  570.         {
  571.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  572.         }
  573.       }
  574.      
  575.       if(sprite=="X")
  576.       {
  577.         if(spriteX[j][i]==1)
  578.         {
  579.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  580.         }
  581.       }
  582.      
  583.       if(sprite=="Y")
  584.       {
  585.         if(spriteY[j][i]==1)
  586.         {
  587.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  588.         }
  589.       }
  590.      
  591.       if(sprite=="Z")
  592.       {
  593.         if(spriteZ[j][i]==1)
  594.         {
  595.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  596.         }
  597.       }
  598.      
  599.       if(sprite=="2")
  600.       {
  601.         if(sprite2[j][i]==1)
  602.         {
  603.           allumerLED(luminosite,x+i,y+j,red,blue,green);
  604.         }
  605.       }
  606.        
  607.      
  608.     }
  609.   }
  610. }
  611.  
  612.  
  613. void animationB2G(int luminosite)
  614. {
  615.  
  616.   if(positionLogoX!=3)
  617.   {
  618.     positionLogoX--;
  619.   }else{
  620.     stop++;
  621.     if(stop==100)
  622.     {
  623.       stop=0;
  624.       positionLogoX--;
  625.     }
  626.   }
  627.  
  628.   if(positionLogoX<-30)
  629.   {
  630.     positionLogoX=30;
  631.   }
  632.   allumerTout(0,0,0,0);
  633.   dessiner(luminosite,"B",positionLogoX,1,255,255,255);
  634.   dessiner(luminosite,"2",positionLogoX+6,1,255,100,0);
  635.   dessiner(luminosite,"G",positionLogoX+12,1,50,50,255);
  636.  
  637.   if(tourDe==0)
  638.   {
  639.     red+=10;
  640.     blue-=10;
  641.     if(red>255)
  642.     {
  643.       tourDe=1;
  644.       blue=0;
  645.     }
  646.   }
  647.   if(tourDe==1)
  648.   {
  649.     red-=10;
  650.     green+=10;
  651.     if(green>255)
  652.     {
  653.       tourDe=2;
  654.       red=0;
  655.     }
  656.   }
  657.   if(tourDe==2)
  658.   {
  659.     green-=10;
  660.     blue+=10;
  661.     if(blue>255)
  662.     {
  663.       tourDe=0;
  664.       green=0;
  665.     }
  666.   }
  667.  
  668.   ligneHoriz(luminosite,0,23,0,red,green,blue);
  669.   ligneHoriz(luminosite,0,23,9,red,green,blue);
  670.   delay(25);
  671. }
  672.  
  673. void animationJN(int luminosite)
  674. {
  675.  
  676.   if(positionLogoX!=3)
  677.   {
  678.     positionLogoX--;
  679.   }else{
  680.     stop++;
  681.     if(stop==100)
  682.     {
  683.       stop=0;
  684.       positionLogoX--;
  685.     }
  686.   }
  687.  
  688.   if(positionLogoX<-150)
  689.   {
  690.     positionLogoX=30;
  691.   }
  692.   allumerTout(0,0,0,0);
  693.   dessiner(luminosite,"B",positionLogoX,1,255,255,255);
  694.   dessiner(luminosite,"I",positionLogoX+6,1,255,100,0);
  695.   dessiner(luminosite,"E",positionLogoX+12,1,50,50,255);
  696.   dessiner(luminosite,"N",positionLogoX+18,1,50,50,255);
  697.   dessiner(luminosite,"V",positionLogoX+24,1,50,50,255);
  698.   dessiner(luminosite,"E",positionLogoX+30,1,50,50,255);
  699.   dessiner(luminosite,"N",positionLogoX+36,1,50,50,255);
  700.   dessiner(luminosite,"U",positionLogoX+42,1,50,50,255);
  701.   dessiner(luminosite,"E",positionLogoX+48,1,50,50,255);
  702.   dessiner(luminosite,"J",positionLogoX+60,1,50,50,255);
  703.   dessiner(luminosite,"O",positionLogoX+66,1,50,50,255);
  704.   dessiner(luminosite,"Y",positionLogoX+72,1,50,50,255);
  705.   dessiner(luminosite,"C",positionLogoX+78,1,50,50,255);
  706.   dessiner(luminosite,"A",positionLogoX+84,1,50,50,255);
  707.   dessiner(luminosite,"E",positionLogoX+96,1,50,50,255);
  708.   dessiner(luminosite,"T",positionLogoX+102,1,50,50,255);
  709.   dessiner(luminosite,"N",positionLogoX+108,1,50,50,255);
  710.   dessiner(luminosite,"E",positionLogoX+114,1,50,50,255);
  711.   dessiner(luminosite,"O",positionLogoX+120,1,50,50,255);
  712.   dessiner(luminosite,"X",positionLogoX+126,1,50,50,255);
  713.   dessiner(luminosite,"I",positionLogoX+132,1,50,50,255);
  714.  
  715.  
  716.   if(tourDe==0)
  717.   {
  718.     red+=10;
  719.     blue-=10;
  720.     if(red>255)
  721.     {
  722.       tourDe=1;
  723.       blue=0;
  724.     }
  725.   }
  726.   if(tourDe==1)
  727.   {
  728.     red-=10;
  729.     green+=10;
  730.     if(green>255)
  731.     {
  732.       tourDe=2;
  733.       red=0;
  734.     }
  735.   }
  736.   if(tourDe==2)
  737.   {
  738.     green-=10;
  739.     blue+=10;
  740.     if(blue>255)
  741.     {
  742.       tourDe=0;
  743.       green=0;
  744.     }
  745.   }
  746.  
  747.   ligneHoriz(luminosite,0,23,0,red,green,blue);
  748.   ligneHoriz(luminosite,0,23,9,red,green,blue);
  749.   delay(25);
  750. }
  751.  
  752.  
  753. void setup()  //Initialisation
  754. {
  755.   Serial.begin(9600);   //Ouverture du serial pour débugguer si besoin
  756.   strip.begin(); //fonction d'initialisation du bandeau LEDs
  757. }
  758.  
  759. void loop()
  760. {
  761.   //animationB2G(20);
  762.   animationJN(20);
  763.   //dessiner(3,"A",0,0,0,255,0);
  764.  
  765.   strip.show();
  766. }
RAW Paste Data