OlegAnadyr! По этой теме будет прошивка?
...Готового проекта пока нет ... (пока все паяю, переделываю),
а вот идею я вам дал.
А для "затравки" по объему освободившейся памяти:
#define MODE_AMOUNT 37 // количество режимов
void CMU_MODE_random() {
switch (CMU_MODE_random_rnd) {
case 0: CMU3new(); break;
case 1: CMU3new1(); break;
case 2: CMU3new2(); break;
case 3: CMU3(0, 0); break;
case 4: CMU3(1, 0); break;
case 5: CMU3(2, 0); break;
case 6: CMU3(0, 1); break;
case 7: CMU3(1, 1); break;
case 8: CMU3(2, 1); break;
case 9: CMU4new(); break;
case 10: CMU4new1(); break;
case 11: CMU4new2(); break;
case 12: CMU4(0, 0); break;
case 13: CMU4(1, 0); break;
case 14: CMU4(2, 0); break;
case 15: CMU4(0, 1); break;
case 16: CMU4(1, 1); break;
case 17: CMU4(2, 1); break;
case 18: VUleft(); break;
case 19: VUright(); break;
case 20: VUcentre(); break;
case 21: CMU7(0); break;
case 22: CMU7(1); break;
case 23: CMU7(2); break;
case 24: fireflies3(0); break;
case 25: fireflies4(0); break;
case 26: fireflies7(0); break;
case 27: fireflies_line3(0); break;
case 28: fireflies_line4(0); break;
case 29: fireflies_line7(0); break;
case 30: fireflies_line3new(0); break;
case 31: fireflies3(1); break;
case 32: fireflies4(1); break;
case 33: fireflies7(1); break;
case 34: fireflies_line3(1); break;
case 35: fireflies_line4(1); break;
case 36: fireflies_line7(1); break;
case 37: fireflies_line3new(1); break;
и
#define effect_AMOUNT 18 // количество световых эффектов
void effect_proc (byte effect) {
switch (effect) {
case 0: Fire(55, 120); break; // огонь из центра (не мое)
case 1: random_color_pop(1, 7, 255); break; // светлячки
case 2: new_rainbow_loop(); break; // Крутая плавная вращающаяся радуга (не мое)
case 3: random_color_pop(1, 255, 200); break; // светлячки
case 4: random_color_pop(7, 255, 20); break; // светлячки
case 5: rainbow_fade(); break; // Плавная смена цвета всей ленты (не мое)
case 6: breath_rnd(20); break; // "дыхание" случайным цветом
case 7: meteorite(2, 35, 15); break; // "метеориты" друг за другом (1 байт - 0-r, 1-g, 2-b; 2 байт - затухание (1-255); 3 байт - период (2-50))
case 8: meteoriteRGB(25, 20); break; // "метеориты RGB" друг за другом (1 байт - затухание (1-255); 2 байт - период (2-50))
case 9: meteoriteRGB(7, NUM_LEDS); break; // "метеориты RGB" друг за другом (1 байт - затухание (1-255); 2 байт - период (2-50))
case 10: meteoriteRandom(10, 25); break; // "метеориты random" друг за другом (1 байт - затухание (1-255); 2 байт - период (2-50))
case 11: meteoriteRandom(5, NUM_LEDS); break; // "метеориты random" друг за другом (1 байт - затухание (1-255); 2 байт - период (2-50))
case 12: EFFECT_fireflies7(50, 100, 0); break;
case 13: EFFECT_fireflies7(50, 100, 1); break;
case 14: EFFECT_fireflies_line3new(50, 200, 0); break;
case 15: EFFECT_fireflies_line3new(50, 200, 1); break;
case 16: EFFECT_fireflies_line7(10, 200, 0); break;
case 17: EFFECT_fireflies_line7(10, 200, 1); break;
case 18: EFFECT_CMU7(50, 300, 2); break;
}
}
// = Случайный выбор режима цветомузыки ================================================================================
// Условие срабатывания: каждые 5 секунд "И" наличие "УДАРНИКА" (НЧ (SV[0])) - чтобы не переключалось в паузы
#define CMU_MODE_random_delay 5000
unsigned long CMU_MODE_random_timer;
byte CMU_MODE_random_rnd = 0;