Interfaçage NeoPixel Ring 12, LPRO MECSE, Arnaud A.

Revision:
2:327eb27271b0
Parent:
1:76fb4b762ab1
Child:
3:f486b56187e2
--- a/neoPixelRing12.cpp	Mon Jun 22 20:58:34 2020 +0000
+++ b/neoPixelRing12.cpp	Mon Jun 22 21:54:01 2020 +0000
@@ -208,11 +208,21 @@
     return true;
 }
 
+bool NeoPixelRing12::setLightsNoReset(int nbOfLeds, char* rgbCode){
+    rgbToDataStructure(rgbCode);
+    for(int i=0; i<nbOfLeds; i++){
+        for(int y=0; y<24; y++){
+            bit(rgbDataStructure[y]);
+        }
+    }
+    return true;
+}
+
 bool NeoPixelRing12::circleUpAnimations(){
     char buffer=0;
     uint32_t rgb=0;
     char str[7];
-    char redBuffer[255][7], greenBuffer[255][7], blueBuffer[255][7];
+    char redBuffer[256][7], greenBuffer[256][7], blueBuffer[256][7];
     int i, y, z, x;
      for(i=0; i<36; i++){
         buffer+=7;
@@ -274,20 +284,45 @@
             wait(0.07); 
         }
         for(i=1; i<=12; i++){
-            initLights();
-            setLightsNoReset(i, "000000");
-            rst();
+            setLights(i, "000000");
             wait(0.07); 
         }
     }   
     return true;
 }
 
-bool NeoPixelRing12::setLightsNoReset(int nbOfLeds, char* rgbCode){
-    rgbToDataStructure(rgbCode);
-    for(int i=0; i<nbOfLeds; i++){
-        for(int y=0; y<24; y++){
-            bit(rgbDataStructure[y]);
+bool NeoPixelRing12::ironManRepulsorBlastAnimations(){
+    char buffer=0;
+    uint32_t rgb=0;
+    char str[7];
+    char rgbBuffer[256][7];
+    int i, y;
+     for(i=0; i<256; i++){
+        buffer++;
+        rgb = (buffer<<16) + (buffer<<8) + buffer;
+        sprintf(str, "%06x", rgb & 0xffffff);
+        strcpy(rgbBuffer[i], str);
+    } 
+    for(i=0; i<50; i++){
+        setLights(12, rgbBuffer[i]);
+        wait(0.02);
+    }
+    setLights(12, "000000");
+    wait(0.1);
+    setLights(12, "ffffff");
+    wait(0.1);
+    setLights(12, "000000");
+    wait(0.1);    
+    setLights(12, "ffffff");
+    wait(0.1);
+    for(y=0; y<5; y++){
+        for(i=0; i<50; i++){
+            setLights(12, rgbBuffer[i]);
+            wait(0.045);
+        }
+        for(i=50; i>=0; i--){
+            setLights(12, rgbBuffer[i]);
+            wait(0.045);
         }
     }
     return true;