(11-10-2025, 01:27 PM)Lolo69 a écrit : Pour le coup au lieu de faire des boucles imbriquées avec des if et etc je vais rentrer le pattern manuellement ( avec l aide d excel) dans un tableau ca permettra de faire une répartition parfaite sur les périodes optimales en s assurant d avoir autant de moins que de plus quitte à supprimer un ON , l impact sur la puissance sera quasi invisible car le régulateur rattrapera . Ce tableau une fois saisi ne bougera plus, et pas besoin de se triturer les neurones pour le remplir en automatique;-)
En plus ça rendra le code beaucoup plus lisible et rapide
Bonjour,
quelques comme ça :
Code :
uint8_t tabPulseSinusTotal[101] = { 2,
64,49,33,50,40,33,43,50,22,20,55,50,46,43,40,50,41,39,42,10,
38,41,26,50, 8,46,37,50,62,20,58,50,55,47,40,50,54,42,41,10,
39,62,14,50,40,37,34,50,47, 4,47,50,34,37,40,50,14,62,39,10,
41,42,54,50,40,47,55,50,58,20,62,50,37,46, 8,50,26,41,38,10,
42,39,41,50,40,43,46,50,55,20,22,50,43,33,40,50,33,49,64, 2
};
uint8_t tabPulseSinusOn[101] = { 0,
1, 1, 1, 2, 2, 2, 3, 4, 2, 2, 6, 6, 6, 6, 6, 8, 7, 7, 8, 2,
8, 9, 6,12, 2,12,10,14,18, 6,18,16,18,16,14,18,20,16,16, 4,
16,26, 6,22,18,17,16,24,23, 2,24,26,18,20,22,28, 8,36,23, 6,
25,26,34,32,26,31,37,34,40,14,44,36,27,34, 6,38,20,32,30, 8,
34,32,34,42,34,37,40,44,49,18,20,46,40,31,38,48,32,48,63, 2
};
uint64_t tabsequenceMultiSinus[101] = {0x0000000000000000,
0x8000000000000000,0x0001000000000000,0x0000000100000000,0x0003000000000000,0x000000C000000000,0x0000000180000000,0x0000020000180000,0x0003000001800000,0x0000000000300000,0x00000000000C0000,
0x0060001800060000,0x000300018000C000,0x000030006000C000,0x0000060018006000,0x000000C006003000,0x0003003003003000,0x0000008060180600,0x0000002018060180,0x00000300C0300C00,0x0000000000000300,
0x00000030180C0600,0x0000008181818180,0x00000000030180C0,0x0003030303030300,0x00000000000000C0,0x00000060C183060C,0x000000183060C180,0x0003060C183060C0,0x3060C183060C1830,0x00000000000C1830,
0x000C30C30C30C30C,0x00030C30C30C30C0,0x0061861861861860,0x0000618618618618,0x00000006318C6318,0x000018C6318C6318,0x00018C6318C6318C,0x00000318C6318C60,0x0000018C6318C630,0x0000000000000318,
0x0000006318C6318C,0x0033333333333330,0x000000000000318C,0x0000333333333330,0x0000000CCCCCCCCC,0x0000000999999998,0x0000000333333330,0x0003333333333330,0x0000266666666666,0x000000000000000C,
0x0000666666666666,0x00000036DB6DB6DB,0x000000000DB6DB6C,0x000000006DB6DB6C,0x000000036DB6DB6C,0x000001B6DB6DB6DB,0x00000000000006DB,0x001B6DB6DB6DB6DB,0x00000005B6DB6DB6,0x000000000000036C,
0x00000016DB6DB6DB,0x0000006DB6DB6DB6,0x0006DB6DB6DB6DB6,0x00006DB6DB6DB6DB,0x000000DB6DB6DB6C,0x00002DB6DB6DB6DB,0x006DB6DB6DB6DB6C,0x00036DB6DB6DB6DB,0x000000FFFFFFFFFF,0x00000000000DB6DB,
0x00000FFFFFFFFFFF,0x0000000FFFFFFFFF,0x000000000FFFFFFE,0x00000003FFFFFFFF,0x00000000000000DB,0x0000003FFFFFFFFF,0x00000000000FFFFF,0x00000001FFFFFFFE,0x000000003FFFFFFF,0x00000000000000FF,
0x00000003FFFFFFFF,0x00000001FFFFFFFE,0x00000007FFFFFFFE,0x000003FFFFFFFFFF,0x00000003FFFFFFFF,0x0000003FFFFFFFFE,0x000000FFFFFFFFFF,0x00000FFFFFFFFFFF,0x0003FFFFFFFFFFFE,0x000000000003FFFF,
0x00000000000FFFFF,0x00003FFFFFFFFFFF,0x000001FFFFFFFFFE,0x00000000FFFFFFFE,0x0000003FFFFFFFFF,0x0000FFFFFFFFFFFF,0x00000001FFFFFFFE,0x0001FFFFFFFFFFFE,0x7FFFFFFFFFFFFFFF,0x0000000000000003
};
c'est bien plus compact que le code qui le génère (faut savoir d'où ça vient et les paramètres considérés)
on peut sûrement optimiser encore un peu
Merci André
,
Routeur V15.09b (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions
Panneaux 1680Wc
1 Triac : ECS 2000W
1 SSR (multi) : ECS 1800W
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W
1 SSR (multi) : circuit d'eau 1500W
1 SSR (multi) : Ultime 2000W

Routeur V15.09b (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions
Panneaux 1680Wc
1 Triac : ECS 2000W
1 SSR (multi) : ECS 1800W
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W
1 SSR (multi) : circuit d'eau 1500W
1 SSR (multi) : Ultime 2000W