Взаимодействие Arduino Mega 2560 и 74HC4067

FastCat
Offline
Зарегистрирован: 30.01.2014

Есть Arduino Mega 2560.
Пытаюсь освоить демультиплексор 74HC4067.

Соединения такие:
Выводы 10, 11, 14, 15 (S0, S1, S2, S3) ---> выводы arduino 8, 9, 10, 11 (pwm)
Вывод 1 ---> на +5в.
Вывод 15 ---> на землю

Пишу так:

byte controlPins[] = {B00000000, 
                      B10000000,
                      B01000000,
                      B11000000,
                      B00100000,
                      B10100000,
                      B01100000,
                      B11100000,
                      B00010000,
                      B10010000,
                      B01010000,
                      B11010000,
                      B00110000,
                      B10110000,
                      B01110000,
                      B11110000 }; 
 
void setup()
{
  DDRD = B11111111;
}
 
void setPin(int outputPin)
 
{
  PORTD = controlPins[outputPin];
}
 
void loop()
{
  for (int i = 0; i < 16; i++)
  {
    setPin(i);
    delay(250);
  }
}

При этом (по задумке) на 16 выходах, последовательно должна появиться лог. "1". Т.е. последовательно светодиоды должны загораться.
Но ничего не происходит.

Подскажите pls, что не так сделано ?

MaksMS
Offline
Зарегистрирован: 11.03.2013

Вывод Z (1 нога) подключена на минус или плюс ?

MaksMS
Offline
Зарегистрирован: 11.03.2013

А вижу, подключено.

Не верно задан массив чисел ,младший байт в конце  ,т.е. B00001111 ,а не В11110000. Ознакомтесь с http://arduino.ru/forum/obshchii/pin-mapping-sootvetstvie-vyvodov-i-registrov

И вообще не нужны тут никакие массивы ..Можно сделать все проще. При текущем подходе нельзя будет использовать другие выводы порта D

FastCat
Offline
Зарегистрирован: 30.01.2014

MaksMS пишет:
Можно сделать все проще.

Если Вам не трудно. Покажите pls, как проще ?