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

Committer:
Rhamao
Date:
Tue Jun 30 23:32:09 2020 +0000
Revision:
4:22b0f282731b
Parent:
3:f486b56187e2
version publique

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhamao 0:754bf033bd47 1 #include "neoPixelRing12.h"
Rhamao 0:754bf033bd47 2 #include "mbed.h"
Rhamao 0:754bf033bd47 3 #include "string.h"
Rhamao 0:754bf033bd47 4
Rhamao 0:754bf033bd47 5 NeoPixelRing12::NeoPixelRing12(DigitalOut _digitalOutPin):digitalOutPin(_digitalOutPin)
Rhamao 0:754bf033bd47 6 {
Rhamao 0:754bf033bd47 7 }
Rhamao 0:754bf033bd47 8
Rhamao 0:754bf033bd47 9 bool NeoPixelRing12::rst( )
Rhamao 0:754bf033bd47 10 {
Rhamao 0:754bf033bd47 11 digitalOutPin=0;
Rhamao 0:754bf033bd47 12 wait_us(RST_TIME_IN_US);
Rhamao 0:754bf033bd47 13 return true;
Rhamao 0:754bf033bd47 14 }
Rhamao 0:754bf033bd47 15
Rhamao 0:754bf033bd47 16 bool NeoPixelRing12::rgbToDataStructure(char* rgbCode){
Rhamao 0:754bf033bd47 17 uint8_t i = 0;
Rhamao 0:754bf033bd47 18 uint8_t offset = 0;
Rhamao 0:754bf033bd47 19
Rhamao 0:754bf033bd47 20 //Red
Rhamao 0:754bf033bd47 21 for (i=0; i<6; i++) {
Rhamao 0:754bf033bd47 22 if(i==0)
Rhamao 0:754bf033bd47 23 offset=11;
Rhamao 0:754bf033bd47 24 if(i==1)
Rhamao 0:754bf033bd47 25 offset=15;
Rhamao 0:754bf033bd47 26 if(i==2)
Rhamao 0:754bf033bd47 27 offset=3;
Rhamao 0:754bf033bd47 28 if(i==3)
Rhamao 0:754bf033bd47 29 offset=7;
Rhamao 0:754bf033bd47 30 if(i==4)
Rhamao 0:754bf033bd47 31 offset=19;
Rhamao 0:754bf033bd47 32 if(i==5)
Rhamao 0:754bf033bd47 33 offset=23;
Rhamao 0:754bf033bd47 34 switch (rgbCode[i]) {
Rhamao 0:754bf033bd47 35 case '0':
Rhamao 0:754bf033bd47 36 //////////cout << "0000";
Rhamao 0:754bf033bd47 37 rgbDataStructure[offset]=false;
Rhamao 0:754bf033bd47 38 rgbDataStructure[offset-1]=false;
Rhamao 0:754bf033bd47 39 rgbDataStructure[offset-2]=false;
Rhamao 0:754bf033bd47 40 rgbDataStructure[offset-3]=false;
Rhamao 0:754bf033bd47 41 break;
Rhamao 0:754bf033bd47 42 case '1':
Rhamao 0:754bf033bd47 43 ////////////////////cout << "0001";
Rhamao 0:754bf033bd47 44 rgbDataStructure[offset]=true;
Rhamao 0:754bf033bd47 45 rgbDataStructure[offset-1]=false;
Rhamao 0:754bf033bd47 46 rgbDataStructure[offset-2]=false;
Rhamao 0:754bf033bd47 47 rgbDataStructure[offset-3]=false;
Rhamao 0:754bf033bd47 48 break;
Rhamao 0:754bf033bd47 49 case '2':
Rhamao 0:754bf033bd47 50 ////////cout << "0010";
Rhamao 0:754bf033bd47 51 rgbDataStructure[offset]=false;
Rhamao 0:754bf033bd47 52 rgbDataStructure[offset-1]=true;
Rhamao 0:754bf033bd47 53 rgbDataStructure[offset-2]=false;
Rhamao 0:754bf033bd47 54 rgbDataStructure[offset-3]=false;
Rhamao 0:754bf033bd47 55 break;
Rhamao 0:754bf033bd47 56 case '3':
Rhamao 0:754bf033bd47 57 ////////cout << "0011";
Rhamao 0:754bf033bd47 58 rgbDataStructure[offset]=true;
Rhamao 0:754bf033bd47 59 rgbDataStructure[offset-1]=true;
Rhamao 0:754bf033bd47 60 rgbDataStructure[offset-2]=false;
Rhamao 0:754bf033bd47 61 rgbDataStructure[offset-3]=false;
Rhamao 0:754bf033bd47 62 break;
Rhamao 0:754bf033bd47 63 case '4':
Rhamao 0:754bf033bd47 64 ////////cout << "0100";
Rhamao 0:754bf033bd47 65 rgbDataStructure[offset]=false;
Rhamao 0:754bf033bd47 66 rgbDataStructure[offset-1]=false;
Rhamao 0:754bf033bd47 67 rgbDataStructure[offset-2]=true;
Rhamao 0:754bf033bd47 68 rgbDataStructure[offset-3]=false;
Rhamao 0:754bf033bd47 69 break;
Rhamao 0:754bf033bd47 70 case '5':
Rhamao 0:754bf033bd47 71 ////////cout << "0101";
Rhamao 0:754bf033bd47 72 rgbDataStructure[offset]=true;
Rhamao 0:754bf033bd47 73 rgbDataStructure[offset-1]=false;
Rhamao 0:754bf033bd47 74 rgbDataStructure[offset-2]=true;
Rhamao 0:754bf033bd47 75 rgbDataStructure[offset-3]=false;
Rhamao 0:754bf033bd47 76 break;
Rhamao 0:754bf033bd47 77 case '6':
Rhamao 0:754bf033bd47 78 ////////cout << "0110";
Rhamao 0:754bf033bd47 79 rgbDataStructure[offset]=false;
Rhamao 0:754bf033bd47 80 rgbDataStructure[offset-1]=true;
Rhamao 0:754bf033bd47 81 rgbDataStructure[offset-2]=true;
Rhamao 0:754bf033bd47 82 rgbDataStructure[offset-3]=false;
Rhamao 0:754bf033bd47 83 break;
Rhamao 0:754bf033bd47 84 case '7':
Rhamao 0:754bf033bd47 85 ////////cout << "0111";
Rhamao 0:754bf033bd47 86 rgbDataStructure[offset]=true;
Rhamao 0:754bf033bd47 87 rgbDataStructure[offset-1]=true;
Rhamao 0:754bf033bd47 88 rgbDataStructure[offset-2]=true;
Rhamao 0:754bf033bd47 89 rgbDataStructure[offset-3]=false;
Rhamao 0:754bf033bd47 90 break;
Rhamao 0:754bf033bd47 91 case '8':
Rhamao 0:754bf033bd47 92 ////////cout << "1000";
Rhamao 0:754bf033bd47 93 rgbDataStructure[offset]=false;
Rhamao 0:754bf033bd47 94 rgbDataStructure[offset-1]=false;
Rhamao 0:754bf033bd47 95 rgbDataStructure[offset-2]=false;
Rhamao 0:754bf033bd47 96 rgbDataStructure[offset-3]=true;
Rhamao 0:754bf033bd47 97 break;
Rhamao 0:754bf033bd47 98 case '9':
Rhamao 0:754bf033bd47 99 ////////cout << "1001";
Rhamao 0:754bf033bd47 100 rgbDataStructure[offset]=true;
Rhamao 0:754bf033bd47 101 rgbDataStructure[offset-1]=false;
Rhamao 0:754bf033bd47 102 rgbDataStructure[offset-2]=false;
Rhamao 0:754bf033bd47 103 rgbDataStructure[offset-3]=true;
Rhamao 0:754bf033bd47 104 break;
Rhamao 0:754bf033bd47 105 case 'A':
Rhamao 0:754bf033bd47 106 case 'a':
Rhamao 0:754bf033bd47 107 ////////cout << "1010";
Rhamao 0:754bf033bd47 108 rgbDataStructure[offset]=false;
Rhamao 0:754bf033bd47 109 rgbDataStructure[offset-1]=true;
Rhamao 0:754bf033bd47 110 rgbDataStructure[offset-2]=false;
Rhamao 0:754bf033bd47 111 rgbDataStructure[offset-3]=true;
Rhamao 0:754bf033bd47 112 break;
Rhamao 0:754bf033bd47 113 case 'B':
Rhamao 0:754bf033bd47 114 case 'b':
Rhamao 0:754bf033bd47 115 ////////cout << "1011";
Rhamao 0:754bf033bd47 116 rgbDataStructure[offset]=true;
Rhamao 0:754bf033bd47 117 rgbDataStructure[offset-1]=true;
Rhamao 0:754bf033bd47 118 rgbDataStructure[offset-2]=false;
Rhamao 0:754bf033bd47 119 rgbDataStructure[offset-3]=true;
Rhamao 0:754bf033bd47 120 break;
Rhamao 0:754bf033bd47 121 case 'C':
Rhamao 0:754bf033bd47 122 case 'c':
Rhamao 0:754bf033bd47 123 ////////cout << "1100";
Rhamao 0:754bf033bd47 124 rgbDataStructure[offset]=false;
Rhamao 0:754bf033bd47 125 rgbDataStructure[offset-1]=false;
Rhamao 0:754bf033bd47 126 rgbDataStructure[offset-2]=true;
Rhamao 0:754bf033bd47 127 rgbDataStructure[offset-3]=true;
Rhamao 0:754bf033bd47 128 break;
Rhamao 0:754bf033bd47 129 case 'D':
Rhamao 0:754bf033bd47 130 case 'd':
Rhamao 0:754bf033bd47 131 ////////cout << "1101";
Rhamao 0:754bf033bd47 132 rgbDataStructure[offset]=true;
Rhamao 0:754bf033bd47 133 rgbDataStructure[offset-1]=false;
Rhamao 0:754bf033bd47 134 rgbDataStructure[offset-2]=true;
Rhamao 0:754bf033bd47 135 rgbDataStructure[offset-3]=true;
Rhamao 0:754bf033bd47 136 break;
Rhamao 0:754bf033bd47 137 case 'E':
Rhamao 0:754bf033bd47 138 case 'e':
Rhamao 0:754bf033bd47 139 ////////cout << "1110";
Rhamao 0:754bf033bd47 140 rgbDataStructure[offset]=false;
Rhamao 0:754bf033bd47 141 rgbDataStructure[offset-1]=true;
Rhamao 0:754bf033bd47 142 rgbDataStructure[offset-2]=true;
Rhamao 0:754bf033bd47 143 rgbDataStructure[offset-3]=true;
Rhamao 0:754bf033bd47 144 break;
Rhamao 0:754bf033bd47 145 case 'F':
Rhamao 0:754bf033bd47 146 case 'f':
Rhamao 0:754bf033bd47 147 ////////cout << "1111";
Rhamao 0:754bf033bd47 148 rgbDataStructure[offset]=true;
Rhamao 0:754bf033bd47 149 rgbDataStructure[offset-1]=true;
Rhamao 0:754bf033bd47 150 rgbDataStructure[offset-2]=true;
Rhamao 0:754bf033bd47 151 rgbDataStructure[offset-3]=true;
Rhamao 0:754bf033bd47 152 break;
Rhamao 0:754bf033bd47 153 default:
Rhamao 0:754bf033bd47 154 return false;
Rhamao 0:754bf033bd47 155 }
Rhamao 0:754bf033bd47 156 }
Rhamao 0:754bf033bd47 157 return true;
Rhamao 0:754bf033bd47 158 }
Rhamao 0:754bf033bd47 159
Rhamao 0:754bf033bd47 160 bool NeoPixelRing12::bit(bool value){
Rhamao 0:754bf033bd47 161 if(!value){
Rhamao 0:754bf033bd47 162 digitalOutPin = 1;
Rhamao 0:754bf033bd47 163 wait_ns(190);
Rhamao 0:754bf033bd47 164 digitalOutPin = 0;
Rhamao 0:754bf033bd47 165 wait_ns(740);
Rhamao 0:754bf033bd47 166 }
Rhamao 0:754bf033bd47 167 else{
Rhamao 0:754bf033bd47 168 digitalOutPin = 1;
Rhamao 4:22b0f282731b 169 wait_ns(440);
Rhamao 0:754bf033bd47 170 digitalOutPin = 0;
Rhamao 4:22b0f282731b 171 wait_ns(440);
Rhamao 0:754bf033bd47 172 }
Rhamao 0:754bf033bd47 173 return true;
Rhamao 0:754bf033bd47 174 }
Rhamao 0:754bf033bd47 175
Rhamao 0:754bf033bd47 176 bool NeoPixelRing12::setLights(int nbOfLeds, char* rgbCode){
Rhamao 1:76fb4b762ab1 177 initLights();
Rhamao 1:76fb4b762ab1 178 rgbToDataStructure(rgbCode);
Rhamao 1:76fb4b762ab1 179 for(int i=0; i<nbOfLeds; i++){
Rhamao 1:76fb4b762ab1 180 for(int y=0; y<24; y++){
Rhamao 1:76fb4b762ab1 181 bit(rgbDataStructure[y]);
Rhamao 1:76fb4b762ab1 182 }
Rhamao 1:76fb4b762ab1 183 }
Rhamao 1:76fb4b762ab1 184 rst();
Rhamao 1:76fb4b762ab1 185 return true;
Rhamao 1:76fb4b762ab1 186 }
Rhamao 1:76fb4b762ab1 187
Rhamao 1:76fb4b762ab1 188 bool NeoPixelRing12::setLights(char RGBmap[12][7]){
Rhamao 1:76fb4b762ab1 189 char* buffer;
Rhamao 4:22b0f282731b 190 //initLights();
Rhamao 1:76fb4b762ab1 191 for(int i=0; i<12; i++){
Rhamao 1:76fb4b762ab1 192 buffer=&RGBmap[i][0];
Rhamao 1:76fb4b762ab1 193 rgbToDataStructure(buffer);
Rhamao 1:76fb4b762ab1 194 for(int y=0; y<24; y++){
Rhamao 1:76fb4b762ab1 195 bit(rgbDataStructure[y]);
Rhamao 1:76fb4b762ab1 196 }
Rhamao 1:76fb4b762ab1 197 }
Rhamao 1:76fb4b762ab1 198 rst();
Rhamao 1:76fb4b762ab1 199 return true;
Rhamao 1:76fb4b762ab1 200 }
Rhamao 1:76fb4b762ab1 201
Rhamao 1:76fb4b762ab1 202
Rhamao 1:76fb4b762ab1 203 bool NeoPixelRing12::initLights(){
Rhamao 1:76fb4b762ab1 204 for(int y=0; y<24; y++){
Rhamao 1:76fb4b762ab1 205 bit(0);
Rhamao 1:76fb4b762ab1 206 }
Rhamao 1:76fb4b762ab1 207 rst();
Rhamao 1:76fb4b762ab1 208 return true;
Rhamao 1:76fb4b762ab1 209 }
Rhamao 1:76fb4b762ab1 210
Rhamao 2:327eb27271b0 211 bool NeoPixelRing12::setLightsNoReset(int nbOfLeds, char* rgbCode){
Rhamao 2:327eb27271b0 212 rgbToDataStructure(rgbCode);
Rhamao 2:327eb27271b0 213 for(int i=0; i<nbOfLeds; i++){
Rhamao 2:327eb27271b0 214 for(int y=0; y<24; y++){
Rhamao 2:327eb27271b0 215 bit(rgbDataStructure[y]);
Rhamao 2:327eb27271b0 216 }
Rhamao 2:327eb27271b0 217 }
Rhamao 2:327eb27271b0 218 return true;
Rhamao 2:327eb27271b0 219 }
Rhamao 2:327eb27271b0 220
Rhamao 1:76fb4b762ab1 221 bool NeoPixelRing12::circleUpAnimations(){
Rhamao 1:76fb4b762ab1 222 char buffer=0;
Rhamao 1:76fb4b762ab1 223 uint32_t rgb=0;
Rhamao 1:76fb4b762ab1 224 char str[7];
Rhamao 2:327eb27271b0 225 char redBuffer[256][7], greenBuffer[256][7], blueBuffer[256][7];
Rhamao 1:76fb4b762ab1 226 int i, y, z, x;
Rhamao 1:76fb4b762ab1 227 for(i=0; i<36; i++){
Rhamao 1:76fb4b762ab1 228 buffer+=7;
Rhamao 1:76fb4b762ab1 229 rgb = (buffer<<16);
Rhamao 1:76fb4b762ab1 230 sprintf(str, "%06x", rgb & 0xffffff);
Rhamao 1:76fb4b762ab1 231 strcpy(redBuffer[i], str);
Rhamao 1:76fb4b762ab1 232 rgb = (buffer<<8);
Rhamao 1:76fb4b762ab1 233 sprintf(str, "%06x", rgb & 0xffffff);
Rhamao 1:76fb4b762ab1 234 strcpy(greenBuffer[i], str);
Rhamao 1:76fb4b762ab1 235 rgb = buffer;
Rhamao 1:76fb4b762ab1 236 sprintf(str, "%06x", rgb & 0xffffff);
Rhamao 1:76fb4b762ab1 237 strcpy(blueBuffer[i], str);
Rhamao 1:76fb4b762ab1 238 }
Rhamao 1:76fb4b762ab1 239 x=0;
Rhamao 1:76fb4b762ab1 240 for(y=0; y<3; y++){
Rhamao 1:76fb4b762ab1 241 for(i=0; i<12; i++){
Rhamao 1:76fb4b762ab1 242 x++;
Rhamao 1:76fb4b762ab1 243 initLights();
Rhamao 1:76fb4b762ab1 244 for(z=0; z<i; z++)
Rhamao 1:76fb4b762ab1 245 setLightsNoReset(1, redBuffer[x-z]);
Rhamao 1:76fb4b762ab1 246 setLightsNoReset(1, redBuffer[x]);
Rhamao 1:76fb4b762ab1 247 rst();
Rhamao 1:76fb4b762ab1 248 wait(0.07);
Rhamao 1:76fb4b762ab1 249 }
Rhamao 1:76fb4b762ab1 250 for(i=1; i<=12; i++){
Rhamao 1:76fb4b762ab1 251 initLights();
Rhamao 1:76fb4b762ab1 252 setLightsNoReset(i, "000000");
Rhamao 1:76fb4b762ab1 253 rst();
Rhamao 1:76fb4b762ab1 254 wait(0.07);
Rhamao 1:76fb4b762ab1 255 }
Rhamao 1:76fb4b762ab1 256 }
Rhamao 1:76fb4b762ab1 257 x=0;
Rhamao 1:76fb4b762ab1 258 for(y=0; y<3; y++){
Rhamao 1:76fb4b762ab1 259 for(i=0; i<12; i++){
Rhamao 1:76fb4b762ab1 260 x++;
Rhamao 1:76fb4b762ab1 261 initLights();
Rhamao 1:76fb4b762ab1 262 for(z=0; z<i; z++)
Rhamao 1:76fb4b762ab1 263 setLightsNoReset(1, greenBuffer[x-z]);
Rhamao 1:76fb4b762ab1 264 setLightsNoReset(1, greenBuffer[x]);
Rhamao 1:76fb4b762ab1 265 rst();
Rhamao 1:76fb4b762ab1 266 wait(0.07);
Rhamao 1:76fb4b762ab1 267 }
Rhamao 1:76fb4b762ab1 268 for(i=1; i<=12; i++){
Rhamao 1:76fb4b762ab1 269 initLights();
Rhamao 1:76fb4b762ab1 270 setLightsNoReset(i, "000000");
Rhamao 1:76fb4b762ab1 271 rst();
Rhamao 1:76fb4b762ab1 272 wait(0.07);
Rhamao 1:76fb4b762ab1 273 }
Rhamao 1:76fb4b762ab1 274 }
Rhamao 1:76fb4b762ab1 275 x=0;
Rhamao 1:76fb4b762ab1 276 for(y=0; y<3; y++){
Rhamao 1:76fb4b762ab1 277 for(i=0; i<12; i++){
Rhamao 1:76fb4b762ab1 278 x++;
Rhamao 1:76fb4b762ab1 279 initLights();
Rhamao 1:76fb4b762ab1 280 for(z=0; z<i; z++)
Rhamao 1:76fb4b762ab1 281 setLightsNoReset(1, blueBuffer[x-z]);
Rhamao 1:76fb4b762ab1 282 setLightsNoReset(1, blueBuffer[x]);
Rhamao 1:76fb4b762ab1 283 rst();
Rhamao 1:76fb4b762ab1 284 wait(0.07);
Rhamao 1:76fb4b762ab1 285 }
Rhamao 1:76fb4b762ab1 286 for(i=1; i<=12; i++){
Rhamao 2:327eb27271b0 287 setLights(i, "000000");
Rhamao 1:76fb4b762ab1 288 wait(0.07);
Rhamao 1:76fb4b762ab1 289 }
Rhamao 1:76fb4b762ab1 290 }
Rhamao 1:76fb4b762ab1 291 return true;
Rhamao 1:76fb4b762ab1 292 }
Rhamao 1:76fb4b762ab1 293
Rhamao 2:327eb27271b0 294 bool NeoPixelRing12::ironManRepulsorBlastAnimations(){
Rhamao 2:327eb27271b0 295 char buffer=0;
Rhamao 2:327eb27271b0 296 uint32_t rgb=0;
Rhamao 2:327eb27271b0 297 char str[7];
Rhamao 2:327eb27271b0 298 char rgbBuffer[256][7];
Rhamao 2:327eb27271b0 299 int i, y;
Rhamao 2:327eb27271b0 300 for(i=0; i<256; i++){
Rhamao 2:327eb27271b0 301 buffer++;
Rhamao 2:327eb27271b0 302 rgb = (buffer<<16) + (buffer<<8) + buffer;
Rhamao 2:327eb27271b0 303 sprintf(str, "%06x", rgb & 0xffffff);
Rhamao 2:327eb27271b0 304 strcpy(rgbBuffer[i], str);
Rhamao 2:327eb27271b0 305 }
Rhamao 2:327eb27271b0 306 for(i=0; i<50; i++){
Rhamao 2:327eb27271b0 307 setLights(12, rgbBuffer[i]);
Rhamao 2:327eb27271b0 308 wait(0.02);
Rhamao 2:327eb27271b0 309 }
Rhamao 2:327eb27271b0 310 setLights(12, "000000");
Rhamao 2:327eb27271b0 311 wait(0.1);
Rhamao 2:327eb27271b0 312 setLights(12, "ffffff");
Rhamao 2:327eb27271b0 313 wait(0.1);
Rhamao 2:327eb27271b0 314 setLights(12, "000000");
Rhamao 2:327eb27271b0 315 wait(0.1);
Rhamao 2:327eb27271b0 316 setLights(12, "ffffff");
Rhamao 2:327eb27271b0 317 wait(0.1);
Rhamao 2:327eb27271b0 318 for(y=0; y<5; y++){
Rhamao 2:327eb27271b0 319 for(i=0; i<50; i++){
Rhamao 2:327eb27271b0 320 setLights(12, rgbBuffer[i]);
Rhamao 2:327eb27271b0 321 wait(0.045);
Rhamao 2:327eb27271b0 322 }
Rhamao 2:327eb27271b0 323 for(i=50; i>=0; i--){
Rhamao 2:327eb27271b0 324 setLights(12, rgbBuffer[i]);
Rhamao 2:327eb27271b0 325 wait(0.045);
Rhamao 0:754bf033bd47 326 }
Rhamao 0:754bf033bd47 327 }
Rhamao 0:754bf033bd47 328 return true;
Rhamao 0:754bf033bd47 329 }
Rhamao 0:754bf033bd47 330
Rhamao 3:f486b56187e2 331 bool NeoPixelRing12::rainbowAnimations(){
Rhamao 3:f486b56187e2 332 char buffer=0;
Rhamao 3:f486b56187e2 333 uint32_t rgb=0;
Rhamao 3:f486b56187e2 334 char redBuffer[12][7]= {{"660000"},{"663300"},{"666600"},{"3366"},
Rhamao 3:f486b56187e2 335 {"006600"},{"006633"},{"006666"},{"003366"},
Rhamao 3:f486b56187e2 336 {"000066"},{"330066"},{"660066"},{"660033"}};
Rhamao 3:f486b56187e2 337 int i, y, z, x;
Rhamao 3:f486b56187e2 338 for(i=0; i<12; i++){
Rhamao 3:f486b56187e2 339 initLights();
Rhamao 3:f486b56187e2 340 for(z=0; z<i; z++)
Rhamao 3:f486b56187e2 341 setLightsNoReset(1, redBuffer[i-z]);
Rhamao 3:f486b56187e2 342 setLightsNoReset(1, redBuffer[i]);
Rhamao 3:f486b56187e2 343 rst();
Rhamao 3:f486b56187e2 344 wait(0.07);
Rhamao 3:f486b56187e2 345 }
Rhamao 3:f486b56187e2 346 for(i=1; i<=12; i++){
Rhamao 3:f486b56187e2 347 initLights();
Rhamao 3:f486b56187e2 348 setLightsNoReset(i, "000000");
Rhamao 3:f486b56187e2 349 rst();
Rhamao 3:f486b56187e2 350 wait(0.07);
Rhamao 3:f486b56187e2 351 }
Rhamao 3:f486b56187e2 352 return true;
Rhamao 3:f486b56187e2 353 }
Rhamao 0:754bf033bd47 354