Interfaçage NeoPixel Ring 12, LPRO MECSE, Arnaud A.
Diff: neoPixelRing12.cpp
- 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;