esp12F controle un ws2812 de 179 led

bonjour a tous,
je me permet de vous demandez votre aide.j’ai un projet qui me tient a coeur je doit faire un chronométré contrôlable en wifi.j’ai donc opté pour un ESP12F avec une bande de led WS2812 .tout fonctionne presque parfaitement (j’ai pas encore fait la partie wifi :wink: ). mon problème et que le ESP12F reboot régulièrement et je n’arrive pas a trouvé la cause, je précise qu’il y as un régulateur dédier en 3.3V 1.5A qui l’alimente donc je ne pense pas a un problème d’alimentation. l’erreur qu’il me retourne sous hypertherm et dans le fichier text joint a ce topic:

mon programme :

#include <Adafruit_NeoPixel.h>
#include <math.h>
#define LED_PIN 5
#define LED_COUNT 149
#ifndef APSSID

#endif

/* Set these to your desired credentials. */

byte nombre=0b00000000;          //nombre des unité
byte nombre1=0b00000000;         //nombre des dixaine
byte nombre2=0b00000000;         //nombre des centaine
unsigned long currentTime=0;
unsigned long previousTime=0;
int temps=120;
int tempsbasculement=30;
int nbpixel=7;                  //nombre de pixel pr segments -1 (6=7pixels)
int nbledparaff=nbpixel*7;      //nombre de led par afficheur
int luminosite = 10;            //niveau de luminosité max 255
int color=0;
int rouge=0;
int vert=0;
int bleu=0;
int jaune=0;
int etape=1;
int tempsetapeun=10;
int tempsetapetrois=20;


Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
/* Just a little test message.  Go to http://192.168.4.1 in a web browser
connected to this access point to see it.
*/

//********************************************
//*******routine d'affichage *****************
//********************************************
void affichage(int t)
{
//  Serial.println("affichage");
//  Serial.print(t);
nombre=t%10;
nombre1=t/10%10;
nombre2=t/100%10;

nombre=convertion(nombre);
nombre1=convertion(nombre1);
nombre2=convertion(nombre2);

for (int i=0; i <= 6; i++){       //boucle  pour les 7 segments 
int c=i*nbpixel;
////////////////////////////////
// nombre  affichage des centaine
///////////////////////////////
//  Serial.print("affichage centaine:");
//  Serial.println(nombre2);
if (bitRead(nombre2,i)==1){           //si le bit i =1 alors on allume les led du segments
for (int r=0;r<=nbpixel-1;r++){
strip.setPixelColor(c+r,color);    
}
}
else{
for (int r=0;r<=nbpixel-1;r++)
{
strip.setPixelColor(c+r,0,0,0);    
}

}  //fin de la routine d'affichage des cenatines

/////////////////////////////////////////
// affichage des dixaine
//////////////////////////////////////////
// Serial.print("affichage dixaine:");
// Serial.println(nombre1);
if (bitRead(nombre1,i)==1){
for (int r=0;r<=nbpixel-1;r++){
strip.setPixelColor(c+r+nbledparaff*1,color);    
}
}
else{
for (int r=0;r<=nbpixel-1;r++)
{
strip.setPixelColor(c+r+nbledparaff*1,0,0,0);    
}

}  //fin de la routine d'affichage des dixaine

/////////////////////////////////////////
// affichage des unitées
//////////////////////////////////////////
//  Serial.print("affichage unitée:");
//  Serial.println(nombre);
if (bitRead(nombre,i)==1){
for (int r=0;r<=nbpixel-1;r++){
strip.setPixelColor(c+r+nbledparaff*2,color);    
}
}
else{
for (int r=0;r<=nbpixel-1;r++)
{
strip.setPixelColor(c+r+nbledparaff*2,0,0,0);    
}
} //fin de la routine d'affichage des unitées
}//fin de la routine des 7 segments
}//fin de la routine d'affichage



//*********************************************
//*****routine de formation des nombres********
//*********************************************
int convertion(int nombre)
{
//Serial.print("convertion:");
//Serial.println(nombre);

switch (nombre) {
case 1:
return 0b00000110;
// statements
break;
case 2:
return 0b01011011;
break;
case 3:
return 0b01001111;
break;
 case 4:
return 0b01100110;
break;
 case 5:
return 0b01101101;
break;
 case 6:
return 0b01111101;
break;
 case 7:
return 0b00000111;
break;
 case 8:
return 0b01111111;
break;
 case 9:
return 0b01101111;
break;
 case 0:
return 0b00111111;
break;
default:
// statements
break;
}
}

void setup() {
delay(1000);
Serial.begin(115200);
strip.begin();           // initialisation des led
strip.show();            // extinction des led
strip.setBrightness(luminosite); // reglage de la luminosité

temps=temps+1;
//***************************
//***definition des couleur RGB
//******************************
rouge=strip.Color(255,0,0);
vert=strip.Color(0,255,0);
bleu=strip.Color(0,0,255);
jaune=strip.Color(255,255,0);
//**********************
//****test des leds ****
//**********************
color=rouge;
for (int r=0;r<=LED_COUNT;r++){
strip.setPixelColor(r,color); 
strip.show();   
delay(1); 
}
color=vert;
for (int r=0;r<=LED_COUNT;r++){
strip.setPixelColor(r,color);
strip.show();   
delay(1);     
}
color=bleu;
for (int r=0;r<=LED_COUNT;r++){
strip.setPixelColor(r,color);    
strip.show();   
delay(1); 
}
//*********************
//*fin du test des led*
//**********************
previousTime=millis();
}

void loop() {
switch (etape) {
case 1:
   if (millis()>(previousTime+(tempsetapeun*1000))){
   etape=2;
   Serial.println("etape 2");
   previousTime=millis();
   }     
   if (((previousTime+(tempsetapeun*1000))-millis())/1000%1000>=0){
   affichage(888);
   color=rouge;
   }
   
break;

case 2:
   if (millis()>(previousTime+(temps*1000))){
   etape=3;
    Serial.println("etape 3");
   previousTime=millis();

   }

   if (((previousTime+(temps*1000))-millis())/1000%1000<=tempsbasculement){
   color=jaune;
   }
   else
   {
   color=vert;
   }
   affichage(((previousTime+(temps*1000))-millis())/1000%1000);
   
   break;

case 3:
   if (millis()>(previousTime+(tempsetapetrois*1000))){
   etape=1;
   Serial.println("etape 1");
   previousTime=millis();
   } 
   if (((previousTime+(tempsetapetrois*1000))-millis())/1000%1000>=0){
   affichage(888);
   color=rouge;
   }
break;

default:
// statements
break;
}

strip.show();
}

PS; je suis débutant en programmation alors indulgence svpl!!!

merci d’avance de vos reponce

erreur.txt (7.47 KB)

Tu es aussi débutant sur le forum, car tu as posté au mauvais endroit. Demande au modérateur de déplacer ton message, avec le bouton 'report to moderator', et profite pour lire les messages épinglés en haut du forum pour savoir comment formater un code (entre balises CODE). Il faut aussi nous donner le message qui s'affiche dans la console lorsque l'esp reboote.

je viens de le signalé merci et désolé

j'ai ceci qui s'affiche dans la console de debug:

Exception 29: StoreProhibited: A store referenced a page mapped with an attribute that does not permit stores
PC: 0x4000e1c3
EXCVADDR: 0x00000018

Decoding stack results
0x40212fea: ip4_output_if at core/ipv4/ip4.c line 1550
0x4010073f: umm_free_core(void*) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x401009c3: free(void*) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x4020b190: lwip_cyclic_timer at core/timeouts.c line 233
0x401009f8: malloc(size_t) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x4020b135: sys_timeout_abs at core/timeouts.c line 189
0x40201efc: loop_task(ETSEvent*) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 205

Exception 29: StoreProhibited: A store referenced a page mapped with an attribute that does not permit stores

C'est un problème de mémoire. Ton code veut stocker des données en un endroit où ce n'est pas permis.
Que se passe-t-il si tu définis par exemple :

#define LED_COUNT 50

(au passage édite ton premier message pour mettre le code entre balises, comme ci-dessus)

EDIT : ajoute cette ligne dans les case du switch de ta loop (voir ici pour plus d'info) :

Serial.printf("case %d heap size: %u\n", nombre,ESP.getFreeHeap());

et dis nous ce qui s'affiche sur la console.

Message déplacé...

Il faut mettre le code entre balises dans le premier message.... sinon >>> poubelle

bonjour, encore désolé j'apprend au fur et a mesure même sur le forum :wink: je viens de modifier le premier message avec les "quote".

On voit bien la mémoire disponible diminuer fortement au passage de 7 à 125.

Je le suis trompé, je voulais dire

Serial.printf("case %d heap size: %u\n", etape,ESP.getFreeHeap());

à mettre dans chaque case de la loop

EDIT : tu as effacé ta réponse ?

voici les derniere ligne qu'il me remonte dans l'hypertherminal:

ase 111 heap size: 3904
case 111 heap size: 3904
case 111 heap size: 3600
case 111 heap size: 3600
case 111 heap size: 3600
case 111 heap size: 3600
case 111 heap size: 3296
case 111 heap size: 3296
case 111 heap size: 3296
case 111 heap size: 3296
case 111 heap size: 2992
case 111 heap size: 2992
case 111 heap size: 2992
case 111 heap size: 2992
case 111 heap size: 2688
case 111 heap size: 2688
case 111 heap size: 2688
case 111 heap size: 2688
case 127 heap size: 2384
case 127 heap size: 2384
case 127 heap size: 2384
case 127 heap size: 2384
case 127 heap size: 2080
case 127 heap size: 2080
case 127 heap size: 2080
case 127 heap size: 2080
case 127 heap size: 1776
case 127 heap size: 1776
case 127 heap size: 1776
case 127 heap size: 1776
case 127 heap size: 1776
case 127 heap size: 1472
case 127 heap size: 1472
case 127 heap size: 1472
case 127 heap size: 1168
case 127 heap size: 1168
case 127 heap size: 1168
case 127 heap size: 1168
case 127 heap size: 864
case 127 heap size: 864
case 127 heap size: 864
case 127 heap size: 864
case 127 heap size: 560
case 127 heap size: 560
case 127 heap size: 560
case 127 heap size: 560
case 127 heap size: 256
case 127 heap size: 256
case 127 heap size: 256
case 127 heap size: 256

et dans la console de débugage j'ai ceci:

Exception 29: StoreProhibited: A store referenced a page mapped with an attribute that does not permit stores
PC: 0x4000e1c3
EXCVADDR: 0x00000018

Decoding stack results
0x4020b3b8: lwip_cyclic_timer at core/timeouts.c line 233
0x40100a6c: malloc(size_t) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x4020b35d: sys_timeout_abs at core/timeouts.c line 189
0x40202164: loop_task(ETSEvent*) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 205
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x402074c7: pgm_read_byte_inlined at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/sys/xtensa/sys/pgmspace.h line 72
0x402075e5: memcpy_P at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/sys/xtensa/string_pgmspace.c line 137
0x4020991e: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40205d3d: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 194
0x4020991e: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x40209854: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 180
0x40205e68: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 246
0x4020991e: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x40209b08: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 531
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40201748: Adafruit_NeoPixel::show() at C:\Users\eca\Documents\Arduino\libraries\Adafruit_NeoPixel\Adafruit_NeoPixel.cpp line 2222
0x40201745: Adafruit_NeoPixel::show() at C:\Users\eca\Documents\Arduino\libraries\Adafruit_NeoPixel\Adafruit_NeoPixel.cpp line 2219
0x402018f4: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/HardwareSerial.h line 165
0x40201b9c: Print::printf(char const*, ...) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\Print.cpp line 74
0x402030b9: uart_write(uart_t*, char const*, size_t) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\uart.cpp line 509
0x402018e8: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/HardwareSerial.h line 164
0x401002fc: millis() at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_wiring.cpp line 188
0x40201aed: Print::write(char const*) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/Print.h line 62
0x4020174e: Adafruit_NeoPixel::show() at C:\Users\eca\Documents\Arduino\libraries\Adafruit_NeoPixel\Adafruit_NeoPixel.cpp line 2222
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100225: esp_schedule() at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 125
0x40202315: loop_wrapper() at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 199

voila ce" que ca me donne:

case 3 heap size: 1120
case 3 heap size: 816
case 3 heap size: 816
case 3 heap size: 816
case 3 heap size: 816
case 3 heap size: 512
case 3 heap size: 512
case 3 heap size: 512
case 3 heap size: 512
case 3 heap size: 208
case 3 heap size: 208
case 3 heap size: 208

et sur la console de debug :

Exception 29: StoreProhibited: A store referenced a page mapped with an attribute that does not permit stores
PC: 0x4000e1c3
EXCVADDR: 0x00000018

Decoding stack results
0x4020b3b0: lwip_cyclic_timer at core/timeouts.c line 233
0x40100a6c: malloc(size_t) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40213c7c: mem_malloc at core/mem.c line 210
0x4020b355: sys_timeout_abs at core/timeouts.c line 189
0x4020215c: loop_task(ETSEvent*) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 205
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x4020984c: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 180
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40205e4a: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 242
0x40205d35: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 194
0x4020984c: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 180
0x40209b00: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 531
0x40209916: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x40205d35: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 194
0x40209916: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x4020984c: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 180
0x40205e60: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 246
0x40209916: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x40209b00: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 531
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40201740: Adafruit_NeoPixel::show() at C:\Users\eca\Documents\Arduino\libraries\Adafruit_NeoPixel\Adafruit_NeoPixel.cpp line 2222
0x4020173d: Adafruit_NeoPixel::show() at C:\Users\eca\Documents\Arduino\libraries\Adafruit_NeoPixel\Adafruit_NeoPixel.cpp line 2219
0x402018ec: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/HardwareSerial.h line 165
0x40201b94: Print::printf(char const*, ...) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\Print.cpp line 74
0x402030b1: uart_write(uart_t*, char const*, size_t) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\uart.cpp line 509
0x402018e0: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/HardwareSerial.h line 164
0x401002fc: millis() at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_wiring.cpp line 188
0x40201ae5: Print::write(char const*) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/Print.h line 62
0x40201746: Adafruit_NeoPixel::show() at C:\Users\eca\Documents\Arduino\libraries\Adafruit_NeoPixel\Adafruit_NeoPixel.cpp line 2222
0x40100204: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100225: esp_schedule() at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 125
0x4020230d: loop_wrapper() at C:\Users\eca\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 199

Oui toujours le même problème de mémoire disponible.

Je pense que le problème se trouve dans ta fonction affichage. Tu dois avoir une valeur qui est supérieure au nombre de leds.

Peux tu mettre des Serial.print pour faire afficher les valeurs de t, nombre, nombre1 et nombre2 au début, puis dans tes boucles les valeurs des premiers arguments de la fonction setPixelColor ?

Ensuite copie le contenu de la console dans ta réponse...

plusieurs test effectué et le pb viens jamais de la même étape, pire ...... toutes les étape se fond sans problème puis replante dans une étape qu'il avait déjà fait sans pb quelque seconde plutôt.(j'ai était obligé d'enlever des lignes car trop volumineux pour le forum)

case 2 heap size: 24552
case 2 heap size: 24552
case 2 heap size: 24552
case 2 heap size: 24552
case 2 heap size: 24248
case 2 heap size: 24248
case 2 heap size: 24248
case 2 heap size: 24248
case 2 heap size: 23944
case 2 heap size: 23944
case 2 heap size: 23944
case 2 heap size: 23944
case 2 heap size: 23640
case 2 heap size: 23640
case 2 heap size: 23640
case 2 heap size: 23640
case 2 heap size: 23336
case 2 heap size: 23336
case 2 heap size: 23336
case 2 heap size: 23336
case 2 heap size: 23032
case 2 heap size: 23032
case 2 heap size: 23032
case 2 heap size: 23032
case 2 heap size: 22728
case 2 heap size: 22728
case 2 heap size: 22728
case 2 heap size: 22424
case 2 heap size: 20296
case 2 heap size: 20296
case 2 heap size: 20296
case 2 heap size: 19992
case 2 heap size: 19992
case 2 heap size: 19992
case 2 heap size: 19992
case 2 heap size: 19688
case 2 heap size: 19688
case 2 heap size: 19688
case 2 heap size: 19688
case 2 heap size: 19384
case 2 heap size: 19384
case 2 heap size: 19384
case 2 heap size: 19384
case 2 heap size: 18776
case 2 heap size: 10872
case 2 heap size: 10872
case 2 heap size: 10872
case 2 heap size: 10872
case 2 heap size: 10872
case 2 heap size: 10568
case 2 heap size: 10568
case 2 heap size: 10568
case 2 heap size: 10264
case 2 heap size: 10264
case 2 heap size: 10264
case 2 heap size: 10264
case 2 heap size: 9960
case 2 heap size: 9048
case 2 heap size: 9048
case 2 heap size: 9048
case 2 heap size: 9048
case 2 heap size: 9048
case 2 heap size: 9048
case 2 heap size: 9048
case 2 heap size: 9048
case 2 heap size: 8744
case 2 heap size: 8744
case 2 heap size: 8744
case 2 heap size: 8744
case 2 heap size: 8744
case 2 heap size: 8744
case 2 heap size: 8744
case 2 heap size: 7224
case 2 heap size: 7224
case 2 heap size: 7224
case 2 heap size: 7224
case 2 heap size: 7224
case 2 heap size: 7224
case 2 heap size: 7224
case 2 heap size: 6920
case 2 heap size: 6920
case 2 heap size: 6920
case 2 heap size: 6920
case 2 heap size: 6616
case 2 heap size: 6616
case 2 heap size: 6616
case 2 heap size: 6616
case 2 heap size: 6312
case 2 heap size: 6312
case 2 heap size: 6312
case 2 heap size: 6312
case 2 heap size: 6008
case 2 heap size: 6008
case 2 heap size: 6008
case 2 heap size: 6008
case 2 heap size: 5704
case 2 heap size: 5704
case 2 heap size: 5704
case 2 heap size: 5704
case 2 heap size: 5400
case 2 heap size: 5400
case 2 heap size: 5400
case 2 heap size: 5400
case 2 heap size: 5096
case 2 heap size: 5096
case 2 heap size: 5096
case 2 heap size: 5096
case 2 heap size: 4792
case 2 heap size: 4792
case 2 heap size: 4792
case 2 heap size: 4792
case 2 heap size: 4488
case 2 heap size: 4488
case 2 heap size: 4488
case 2 heap size: 4488
case 2 heap size: 4184
case 2 heap size: 4184
case 2 heap size: 4184
case 2 heap size: 4184
case 2 heap size: 3880
case 2 heap size: 3880
case 2 heap size: 3880
case 2 heap size: 3880
case 2 heap size: 3576
case 2 heap size: 3576
case 2 heap size: 3576
case 2 heap size: 3576
case 2 heap size: 3272
case 2 heap size: 3272
case 2 heap size: 3272
case 2 heap size: 3272
case 2 heap size: 2968
case 2 heap size: 2968
case 2 heap size: 2968
case 2 heap size: 2968
case 2 heap size: 2664
case 2 heap size: 2664
case 2 heap size: 2664
case 2 heap size: 2360
case 2 heap size: 2360
case 2 heap size: 2360
case 2 heap size: 2360
case 2 heap size: 2360
case 2 heap size: 2056
case 2 heap size: 2056
case 2 heap size: 2056
case 2 heap size: 2056
case 2 heap size: 1752
case 2 heap size: 1752
case 2 heap size: 1752
case 2 heap size: 1448
case 2 heap size: 1448
case 2 heap size: 1448
case 2 heap size: 1448
case 2 heap size: 1144
case 2 heap size: 1144
case 2 heap size: 1144
case 2 heap size: 1144
case 2 heap size: 840
case 2 heap size: 840
case 2 heap size: 840
case 2 heap size: 840
case 2 heap size: 536
case 2 heap size: 536
case 2 heap size: 536
case 2 heap size: 536
case 2 heap size: 232
case 2 heap size: 232
case 2 heap size: 232
case 2 heap size: 232

je sais pas si c'est ca pour l'instant mais tu as raison car j'ai 3 afficheur de 7 segments de 7 led=>773=147
pas 149 je ne devait pas être réveiller a ce moment la

j'aurais bien mis une photo de mon décompteur mais j'y arrive pas..

castro34:
j'aurais bien mis une photo de mon décompteur mais j'y arrive pas..

C'est expliqué ici, message 10

castro34:
plusieurs test effectué et le pb viens jamais de la même étape, pire … toutes les étape se fond sans problème puis replante dans une étape qu’il avait déjà fait sans pb quelque seconde plutôt.(j’ai était obligé d’enlever des lignes car trop volumineux pour le forum)

case 2 heap size: 840

case 2 heap size: 840
case 2 heap size: 536
case 2 heap size: 536
case 2 heap size: 536
case 2 heap size: 536
case 2 heap size: 232
case 2 heap size: 232
case 2 heap size: 232
case 2 heap size: 232

Ce n’est pas très étonnant, car ce qui se passe en interne peut varier. Mais la taille mémoire diminue très vite et devient trop faible pour travailler.

Fais ce que j’ai demandé en 10…

Le code de la fonction affichage est assez alambiqué. Ce serait une bonne idée de le découper en sous-fonction.

  • affichageNombre: reçoit un nombre en argument et sépare les digits appelle affichageDigit
  • affichageDigit: reçoit un chiffre et un numéro de digit en argument et identifie la valeur à mettre dans chaque segment et appelle affichageSegment
  • affichageSegment: reçoit un numéro de segment , un numéro de digit, et un état allumé ou éteint en argument.
    Le découpage en sous-fonctions permet de tester morceau par morceau et de voir plus rapidement où cela coince. Et par pitié utilise des noms de variable explicite.

Bonsoir,

Afin de lever toute ambiguïté, déclarer les variables destinées à recevoir des couleurs avec le type 'uint32_t'.

Votre fonction conversion peut aisément être remplacée par un tableau de 10 variables,

Slt tout le monde,
Bon alors bonne nouvelle ça plante beaucoup moins mais ça plante toujours…

Bonjour,
Lesept je fait faire ta manip dans la journée !pour ce qui et du tableau je voit pas comment vous voulez faire avec?
Encore merci de votre aide a tous