Распиновка матрицы 16x32
- Войдите на сайт для отправки комментариев
Вс, 14/06/2015 - 14:30
Здравствуйте!
Дернул меня черт купить вот такой девайс: http://www.ebay.com/itm/16x32-Red-Green-Dual-Color-Dot-Matrix-Stable-DIY-Kit-Control-Display-Module-/221667633154?pt=LH_DefaultDomain_0&hash=item339c6ba802. У меня есть проект с матрицей 16х24 отлично работает через SPI. Делал все полностью сам. Здесь же не хотелось связываться с проектированием. Вот и взял "рабочий" девайс.
Нужна помощь, нигде не могу найти распиновку подключения к Uno или Mega.
Да и вообще нет никакой информации. Пробовал разные варианты, с записью напрямую и через SPI. Не рабоает.
Спасибо.
Если я правильно понял, то это набор для сборки и там есть схема.
Схема есть. Пробовал делать по ней. Пока добился что загораются только ряды. Может кто работал с такой матрицей и есть какой-нибудь опыт?
Конечно же нет, да и зачем кому то нужен опыт работы именно с этой матрицей.
Все матрицы с динамической индикацией работают одинаково. Есть ряды, есть строки, а уж в какой последовательности, сколько, по сколько и как это не важно. В вашем случае, для управления анодами красного и зеленого цвета используются отделные 595 регистры, то есть 4 регистра для одного цвета и 4 регистра для другого, входы: RI(data красный), GI(data зеленый), CLK, STB, OE, а для упраления катодами 138 регистры, входы: A, B, C, D. Вывод данных осуществляется выводом инвертированных 32 бит в 595 регисты нужного цвета, то есть вывод ряда. И "поджегом" строки - установкой на входах A, B, C, D бинарной комбинации, соответствующей номеру строки.
Спасибо. Буду дальше разбираться.
В свое время делал только на 75HC595 регистрах, 138 мне пока незнакомы.
Подключаю следующим образом:
//Пин подключен к ST_CP (в данном случае STB) int latchPin = 9; //Пин подключен к SH_CP (в данном случае CLK) int clockPin = 13; //Пин подключен к DS (в данном случае R) int dataPinR = 11; //Пин подключен к DS (в данном случае G) int dataPinG = 10; uint8_t d2[8] = {0x0C,0x12,0x02,0x02,0x04,0x08,0x10,0x1E}; uint8_t row[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; ... // записывал таким образом for (int i = 0; i < 8; i++) { digitalWrite(latchPin, HIGH); shiftOut(dataPinR, clockPin, MSBFIRST, d2[i]); shiftOut(dataPinR, clockPin, MSBFIRST, row[i]); //dataPinG - будет зеленым digitalWrite(latchPin, LOW); }Но каким образом прикрутить a,b,c,d не пойму.
Подключать управление катодами лучше всего к 4 младшим выводам порта, на UNO подобных платах, при использовании UART и SPI остается только PORTC, то есть выводы A0, A1, A2 и A3. Тогда строки можно будет перебирать напрямую, естественно предварительно настроив эти выводы на выход.
for(byte i = 0; i < 16; i++) { PORTC = i; delay(500); }Вы конечно можете "поиграться", но с digitalWrite'ами и shiftOut'ами далеко вы не уедите.
maksim, Вы меня не раз выручали, надеюсь в этот рз тоже.
Если не shiftOut, то что правильнее использовать? можно примерчик?
Хардовый SPI. Ну а вообще организация работы с динамической индикацией примерно описана тут.