Проблема с изменением digitalWrite пинов из цикла for

Тема в разделе "Arduino & Shields", создана пользователем Александр А., 31 июл 2015.

  1. Добрый день!
    Ковырялся с 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?
     
  2. Alex19

    Alex19 Гуру

    Можно.

    Ваш цикл никогда не выполнится.

    Код (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++) и дальше проверка и т.д.
     
    Александр А. нравится это.
  3. DrProg

    DrProg Вечный нерд

    Ищите тут : i > 6 ))
     
  4. vvr

    vvr Инженерище

    i <= 6 :)
     
  5. Позор) Спасибо)
     
  6. vvr

    vvr Инженерище

    да ладно, и у профи такое случается, шо они, святые:)