1.- Es útil introducir un delay() o utilizar millis() mientras no haya cambios en los valores de los displays?
2.- Hay una manera mas "elegante" de poner todos los #define? Parece un bloque poco estético al principio del sketch, jeje
Tu sabes como estan hechos algunos códigos por dentro?
El define no molesta, no se ve y es mucho mas estetico que poner
los números estan hechos en muchos sitios de displays de leds 7 segmemntos mira este link de Prometec
byte Digit[10][8] = // Arduino UNO va muy justo de memoria. Por eso lo
{ // definimos como byte y no como int
{ 1,1,1,1,1,1,0,0 }, // 0
{ 0,1,1,0,0,0,0,0 }, // 1
{ 1,1,0,1,1,0,1,0 }, // 2
{ 1,1,1,1,0,0,1,0 }, // 3
{ 0,1,1,0,0,1,1,0 }, // 4
{ 1,0,1,1,0,1,1,0 }, // 5
{ 1,0,1,1,1,1,1,0 }, // 6
{ 1,1,1,0,0,0,0,0 }, // 7
{ 1,1,1,1,1,1,1,0 }, // 8
{ 1,1,1,0,0,1,1,0 } // 9
};
Ahora este modo es mas como el que estas usando
// Segmentos que componen cada número
// Para CC.
const byte numbers[10] = { 0b0111111, 0b0000110, 0b1011011, 0b1001111, 0b1100110,
0b1101101, 0b1111101, 0b0000111, 0b1111111, 0b1101111};
// Para CA. descomentar las 2 líneas que siguen.
// const byte numbers[10] = { 0b1000000, 0b1111001, 0b0100100, 0b0110000, 0b0011001, 0b0010010,
// 0b0000010, 0b1111000, 0b0000000, 0b0010000};
Como ves CA Common Anode y CC Common Catode estan invertidos.
mira el 0 = 0b0111111 es tu definición
#define Numero0 SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F
puesta de este modo
#define Numero0 0b0000 0001|0b0000 0010|0b0000 0100|0b0000 1000|0b0001 0000|0b0010 0000|0b0100 0000 que sumados dan 0b0111111