Добрый день! Ковырялся с 7-значным индикатором и воткнулся в следующую проблему с кодом: Подключил к пинам Arduino Uno с 0 по 6 диоды индикатора (с а по g, DP оставляю пустым). Хотел по нажатию кнопки "заливать" через цикл for заранее забитые в массив параметры для соответствующих цифр (переменная Num): Код (Text): int ArrPins[11][7] = { //A,B,C,D,E,F,G LEDs {1,1,1,1,1,1,0}, //Number 0 {0,1,1,0,0,0,0}, //Number 1 {1,1,0,1,1,0,1}, //Number 2 {1,1,1,1,0,0,1}, //Number 3 {0,1,1,0,0,1,1}, //Number 4 {1,0,1,1,0,1,1}, //Number 5 {1,0,1,1,1,1,1}, //Number 6 {1,1,1,0,0,0,0}, //Number 7 {1,1,1,1,1,1,1}, //Number 8 {1,1,1,1,0,1,1}, //Number 9 {1,0,0,1,1,1,1}, //Symbol E }; И цикл for у меня не работает с digitalWrite(). Код (Text): for (int i = 0; i > 6; i++) { digitalWrite(i, ArrPins[Num][i]); } Хуже, думая, что проблема с массивом, пробовал циклом заливать просто HIGH: Код (Text): for (int i = 0; i > 6; i++) { digitalWrite(i, HIGH); } И тоже не работает. Я уже вынес digitalWrite из цикла, меняя в цикле лишь переменные. Даже с массивом все заработало. Но неужели нельзя делать digitalWrite из цикла, выбирая номер пина не глобальной переменной, а локальной i?
Можно. Ваш цикл никогда не выполнится. Код (Text): for (int i = 0; i > 6; i++) { digitalWrite(i, HIGH); } Скорее всего были просто не внимательны - int i = 0; i > 6; i++. Если не понимаете в чем ошибка, гляньте тут - http://arduino.ru/Reference/For. Поясню i инициализируется как 0, затем идет проверка i > 6 (i больше 6, если да он будет выполнен 1 раз) , затем будет добавлен 1 к i (i++) и дальше проверка и т.д.