Я наверное как то не правильно выражаюсь среди знатаков програмирования, за что прошу прощения. Эта моя третья самоделка на ардуино и я практически ни чего не понимаю в програмировании. Попытаюсь обьяснить чего мне надо по другому. Вот кусок стандартного кода прошивки 2,1.
#define NUM_LEDS (120 ) // количество светодиодов (данная версия поддерживает до 410 штук)
#define CURRENT_LIMIT 4500 // лимит по току в МИЛЛИАМПЕРАХ, автоматически управляет яркостью (пожалей свой блок питания!) 0 - выключить лимит
byte BRIGHTNESS = 245; // яркость по умолчанию (0 - 255)
// ----- пины подключения
#define SOUND_R A2 // аналоговый пин вход аудио, правый канал
#define SOUND_L A1 // аналоговый пин вход аудио, левый канал
#define SOUND_R_FREQ A3 // аналоговый пин вход аудио для режима с частотами (через кондер)
#define BTN_PIN 3 // кнопка переключения режимов (PIN --- КНОПКА --- GND)
#if defined(AVR_ATmega32U4) // Пины для Arduino Pro Micro (смотри схему для Pro Micro на странице проекта!!!)
#define MLED_PIN 17 // пин светодиода режимов на ProMicro, т.к. обычный не выведен.
#define MLED_ON LOW
#define LED_PIN 9 // пин DI светодиодной ленты на ProMicro, т.к. обычный не выведен.
#else // Пины для других плат Arduino (по умолчанию)
#define MLED_PIN 13 // пин светодиода режимов
#define MLED_ON HIGH
#define LED_PIN 12 // пин DI светодиодной ленты
#endif
#define POT_GND A0 // пин земля для потенциометра
#define IR_PIN 2 // пин ИК приёмника
// ----- настройки радуги
float RAINBOW_STEP = 5.00; // шаг изменения цвета радуги
// ----- отрисовка
#define MODE 0 // режим при запуске
#define MAIN_LOOP 5 // период основного цикла отрисовки (по умолчанию 5)
// ----- сигнал
#define MONO 1 // 1 - только один канал (ПРАВЫЙ!!!!! SOUND_R!!!!!), 0 - два канала
#define EXP 1.4 // степень усиления сигнала (для более "резкой" работы) (по умолчанию 1.4)
#define POTENT 0 // 1 - используем потенциометр, 0 - используется внутренний источник опорного напряжения 1.1 В
byte EMPTY_BRIGHT = 0; // яркость "не горящих" светодиодов (0 - 255)
#define EMPTY_COLOR HUE_PURPLE // цвет "не горящих" светодиодов. Будет чёрный, если яркость 0
// ----- нижний порог шумов
uint16_t LOW_PASS = 100; // нижний порог шумов режим VU, ручная настройка
uint16_t SPEKTR_LOW_PASS = 40; // нижний порог шумов режим спектра, ручная настройка
#define AUTO_LOW_PASS 0 // разрешить настройку нижнего порога шумов при запуске (по умолч. 0)
#define EEPROM_LOW_PASS 1 // порог шумов хранится в энергонезависимой памяти (по умолч. 1)
#define LOW_PASS_ADD 13 // "добавочная" величина к нижнему порогу, для надёжности (режим VU)
#define LOW_PASS_FREQ_ADD 3 // "добавочная" величина к нижнему порогу, для надёжности (режим частот)
// ----- режим шкала громкости
float SMOOTH = 0.3; // коэффициент плавности анимации VU (по умолчанию 0.5)
#define MAX_COEF 1.8 // коэффициент громкости (максимальное равно срднему * этот коэф) (по умолчанию 1.8)
// ----- режим цветомузыки
float SMOOTH_FREQ = 0.8; // коэффициент плавности анимации частот (по умолчанию 0.8)
float MAX_COEF_FREQ = 1.2; // коэффициент порога для "вспышки" цветомузыки (по умолчанию 1.5)
#define SMOOTH_STEP 20 // шаг уменьшения яркости в режиме цветомузыки (чем больше, тем быстрее гаснет)
#define LOW_COLOR HUE_RED // цвет низких частот
#define MID_COLOR HUE_GREEN // цвет средних
#define MID_COLOR_1 HUE_YELLOW // цвет средних
#define HIGH_COLOR HUE_BLUE // цвет высоких
// ----- режим стробоскопа
uint16_t STROBE_PERIOD = 140; // период вспышек, миллисекунды
#define STROBE_DUTY 20 // скважность вспышек (1 - 99) - отношение времени вспышки ко времени темноты
#define STROBE_COLOR HUE_YELLOW // цвет стробоскопа
#define STROBE_SAT 0 // насыщенность. Если 0 - цвет будет БЕЛЫЙ при любом цвете (0 - 255)
byte STROBE_SMOOTH = 200; // скорость нарастания/угасания вспышки (0 - 255)
// ----- режим подсветки
byte LIGHT_COLOR = 0; // начальный цвет подсветки
byte LIGHT_SAT = 255; // начальная насыщенность подсветки
byte COLOR_SPEED = 100;
int RAINBOW_PERIOD = 1;
float RAINBOW_STEP_2 = 0.5;
// ----- режим бегущих частот
byte RUNNING_SPEED = 11;
// ----- режим анализатора спектра
byte HUE_START = 0;
byte HUE_STEP = 5;
#define LIGHT_SMOOTH 2
/*
Цвета для HSV
HUE_RED
HUE_ORANGE
HUE_YELLOW
HUE_GREEN
HUE_AQUA
HUE_BLUE
HUE_PURPLE
HUE_PINK
*/
// ----- КНОПКИ ПУЛЬТА WAVGAT -----
#if REMOTE_TYPE == 1
#define BUTT_UP 0xF39EEBAD
#define BUTT_DOWN 0xC089F6AD
#define BUTT_LEFT 0xE25410AD
#define BUTT_RIGHT 0x14CE54AD
#define BUTT_OK 0x297C76AD
#define BUTT_1 0x4E5BA3AD
#define BUTT_2 0xE51CA6AD
#define BUTT_3 0xE207E1AD
#define BUTT_4 0x517068AD
#define BUTT_5 0x1B92DDAD
#define BUTT_6 0xAC2A56AD
#define BUTT_7 0x5484B6AD
#define BUTT_8 0xD22353AD
#define BUTT_9 0xDF3F4BAD
#define BUTT_0 0xF08A26AD
#define BUTT_STAR 0x68E456AD
#define BUTT_HASH 0x151CD6AD
#endif
// ----- КНОПКИ ПУЛЬТА KEYES -----
#if REMOTE_TYPE == 2
#define BUTT_UP 0xE51CA6AD
#define BUTT_DOWN 0xD22353AD
#define BUTT_LEFT 0x517068AD
#define BUTT_RIGHT 0xAC2A56AD
#define BUTT_OK 0x1B92DDAD
#define BUTT_1 0x68E456AD
#define BUTT_2 0xF08A26AD
#define BUTT_3 0x151CD6AD
#define BUTT_4 0x18319BAD
#define BUTT_5 0xF39EEBAD
#define BUTT_6 0x4AABDFAD
#define BUTT_7 0xE25410AD
#define BUTT_8 0x297C76AD
#define BUTT_9 0x14CE54AD
#define BUTT_0 0xC089F6AD
#define BUTT_STAR 0xAF3F1BAD
#define BUTT_HASH 0x38379AD
#endif
// ----- КНОПКИ СВОЕГО ПУЛЬТА -----
#if REMOTE_TYPE == 3
#define BUTT_UP 0xE51CA6AD
#define BUTT_DOWN 0xD22353AD
#define BUTT_LEFT 0x517068AD
#define BUTT_RIGHT 0xAC2A56AD
#define BUTT_OK 0x1B92DDAD
#define BUTT_1 0x68E456AD
#define BUTT_2 0xF08A26AD
#define BUTT_3 0x151CD6AD
#define BUTT_4 0x18319BAD
#define BUTT_5 0xF39EEBAD
#define BUTT_6 0x4AABDFAD
#define BUTT_7 0xE25410AD
#define BUTT_8 0x297C76AD
#define BUTT_9 0x14CE54AD
#define BUTT_0 0xC089F6AD
#define BUTT_STAR 0xAF3F1BAD // *
#define BUTT_HASH 0x38379AD // #
#endif
// ------------------------------ ДЛЯ РАЗРАБОТЧИКОВ --------------------------------
#define MODE_AMOUNT 9 // количество режимов
#define STRIPE NUM_LEDS / 5 //разбиваем ленту на 5 равных частей
В первой строчке мы видим переменную с указанием количества светодиодов, в последней то место где идет первый опрос этой переменной .Вопрос возможно ли в этот кусок кода куда нибуть вставить код управления кнопкой , который сможет изменять цифру указвающую количество светодиодов в первой строке. Напоминаю что для этой программы подключена библиотека управления кнопками от всеми уважаемого Алекса Гайвера , что по идеи может превратить этот код в одну строчку.
Если это возможно , то хоть направьте в каком направлении двигаться, или хоть как помогите с кодом .Если это невозможно , то я закрываю тему. Всем откликнувшимся спасибо.