Распиновка матрицы 16x32

sonmax
Offline
Зарегистрирован: 30.06.2013

Здравствуйте!

Дернул меня черт купить вот такой девайс: 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. Не рабоает.

Спасибо.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Если я правильно понял, то это набор для сборки и там есть схема.

sonmax
Offline
Зарегистрирован: 30.06.2013

Схема есть. Пробовал делать по ней. Пока добился что загораются только ряды. Может кто работал с такой матрицей и есть какой-нибудь опыт?

maksim
Offline
Зарегистрирован: 12.02.2012

Конечно же нет, да и зачем кому то нужен опыт работы именно с этой матрицей. 

Все матрицы с динамической индикацией работают одинаково. Есть ряды, есть строки, а уж в какой последовательности, сколько, по сколько и как это не важно. В вашем случае, для управления анодами красного и зеленого цвета используются отделные 595 регистры, то есть 4 регистра для одного цвета и 4 регистра для другого, входы: RI(data красный), GI(data зеленый), CLK, STB, OE, а для упраления катодами 138 регистры, входы: A, B, C, D. Вывод данных осуществляется выводом инвертированных 32 бит в 595 регисты нужного цвета, то есть вывод ряда. И "поджегом" строки - установкой на входах A, B, C, D бинарной комбинации, соответствующей номеру строки.

sonmax
Offline
Зарегистрирован: 30.06.2013

Спасибо. Буду дальше разбираться.

В свое время делал только на 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 не пойму.

maksim
Offline
Зарегистрирован: 12.02.2012

Подключать управление катодами лучше всего к 4 младшим выводам порта, на UNO подобных платах, при использовании UART и SPI остается только PORTC, то есть выводы A0, A1, A2 и A3. Тогда строки можно будет перебирать напрямую, естественно предварительно настроив эти выводы на выход.

for(byte i = 0; i < 16; i++) 
{
   PORTC = i;
   delay(500);
}

Вы конечно можете "поиграться", но с digitalWrite'ами и shiftOut'ами далеко вы не уедите.

sonmax
Offline
Зарегистрирован: 30.06.2013

maksim, Вы меня не раз выручали, надеюсь в этот рз тоже.

Если не shiftOut, то что правильнее использовать? можно примерчик?

maksim
Offline
Зарегистрирован: 12.02.2012

Хардовый SPI. Ну а вообще организация работы с динамической индикацией примерно описана тут.