Здравствуйте, помогите пожалуйста найти ошибку в коде. Опыты из набора матрешки в начале делаю сам, потом смотрю как сделано в описании разарботчиками, поэтому у меня немного не похоже на то что в методичке. Суть проблемы в том что спустя некоторое время после запуска программы 7-и сегментный индикатор перестает отображать корректно цифры. Выглядит это так - некоторое время цифры показываются как надо(до 160 примерно), потом все элементы начинают гореть в половину силы и с равным интервалом времени загорается ярким светом то верхний правый диод, то все диоды вместе. Скетч: Код (Text): //============================================= //ПРОГРАММА СЕКУНДОМЕР //============================================= #define FERST_SEGMENT_PIN 2 //Начальный пин #define PINS 7 //Всего пинов //============================================= byte NumberSegments[] = { 0b01110111, 0b01000100, 0b01101011, 0b01101110, 0b01011100, 0b00111110, 0b00111111, 0b01100100, 0b01111111, 0b01111110}; //Массив в котором содержатся числа в битовом представлении. В каждом //читсле закодирован номер светодиода - пин который мы либо включаем либо выключаем int LastTime = millis(); //Предыдущее время int value = 0; //Число которое выводим //============================================= void setup() { //Инициализация выходов микроконтролера for(int i = FERST_SEGMENT_PIN; i<=PINS + FERST_SEGMENT_PIN; i++) { pinMode(i, OUTPUT); } } void loop() { if(millis()-LastTime>=1000) //Если прошло более 1 секунду { LastTime = millis(); byte Segments = NumberSegments[value++%10]; for(int i = 0; i<PINS; i++) //Перебираем биты данных числа { int bitValye = bitRead(Segments, i); //Получаем значение бита(0 или 1) digitalWrite(i + FERST_SEGMENT_PIN, bitValye);//Выводим значение этого бита с свой светодиод } } }