led matrix 16*16
- Войдите на сайт для отправки комментариев
Сб, 04/02/2017 - 12:34
В общем есть матрица 16*16 работающая от четырех 74HC595D. Два отвечают за анод и два за катод. Я начинаю писать код по образцам в интернете но вот проблема я не могу запустить все 4. Вот мой код
int latchPin = 6; //Пин подключен к ST_CP входу 74HC595 int clockPin = 7; //Пин подключен к SH_CP входу 74HC595 int dataPin2 = 4; int dataPin = 13; void setup() { //устанавливаем режим OUTPUT pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); pinMode(dataPin2, OUTPUT); } void loop() { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, 1); shiftOut(dataPin2, clockPin, LSBFIRST, 194); digitalWrite(latchPin, HIGH); }
Этот код зажигает 5 светодиодов. Допустим мне надо зажечь 10 светодиодов то я добавляю строчку shiftOut(dataPin2, clockPin, LSBFIRST, 194); и они горят но если мне надо зажечь 10*10 то уже не работает путем добавления строчки shiftOut(dataPin, clockPin, LSBFIRST, 194); shiftOut(dataPin, clockPin, LSBFIRST, 194);
что я делаю не так?
А вы читали это http://arduino.ru/Reference/ShiftOut
От туда:Выводит байт информации на порт вход/выхода последовательно (побитно).
У вас В общем есть матрица 16*16 работающая от четырех 74HC595D. Два отвечают за анод и два за катод.
Напоминаю. Байт это 8 бит и 74НС585D тоже 8 бит. А если у вас их две то надо вывести 16 бит.
Если использовать этот код то я могу управлять dataPin2 но не dataPin1 вот я и не пойму что не так То есть я не могу управлять всеми 4 только двумя
В каком смысле У вас матрица 16х16 , вот ей вы и управляете с помощью 2х (2х74HC595) каскадно сдвоеных . выставили 2 байта по вертикали 2 байта по горизонтали и вывели картинку на матрицу. http://arduino.ru/Tutorial/registr_74HC595
ПС: Разумеется информация в 32 байта не поместится в 4 байтах. Так что могут быть накладки в изображении. Так что надо сканирующий вывод картинки. По строкам или по колонкам.