Недавно таки пришла посылка из Гонконга с заветной матрицей. Это практически моя последняя надежда потому как те электронные компоненты, из которых более-менее реально самостоятельно собрать аналогическую матрицу, продаются в Китае только оптом и с доставкой DHL, что подразумевает попадание на растаможку, выход за рамки бюджета и затягивание сроков.
В этой части расскажу про проблемы, возникшие при подключении матрицы к Arduino.
Пара слов о посылке - был приятно удивлен стильной упаковкой, не ожидал такого от китайцев.
Сама матрица имеет размеры 640х1280, сзади находятся два разъема для управления (SPI-like) и питания платы. Для управления используются контакты:
1 - CS1
2 - CS2
5 - WR
7 - DATA
Питание:
11 - GND
12 - +5V
Первым делом я принялся искать готовые библиотеки для работы с этой матрицей, были найдены проекты HT1632-for-Arduino и ht1632c, но они у меня упорно отказывались работать - на матрице попросту ничего не выводилось. В какой-то момент я даже подумал что матрица испорчена. Искал по форумам, пробовал разные скетчи и наткнулся на архив в котором находился код, таки заставивший засиять матрицу тремя цветами. Судя по комментариям в исходном коде - используется переделанная библиотека Sure Electronics для другой матрицы.
Убрал из кода все лишнее (благо лицензия позволяет) и оформил в виде отдельного модуля, попутно сделав тест матрицы. Вот как это выглядит:
В самом модуле основной функцией является включения одного светодиода определенного цвета по указанным координатам:
В этой части расскажу про проблемы, возникшие при подключении матрицы к Arduino.
Пара слов о посылке - был приятно удивлен стильной упаковкой, не ожидал такого от китайцев.
1 - CS1
2 - CS2
5 - WR
7 - DATA
Питание:
11 - GND
12 - +5V
Первым делом я принялся искать готовые библиотеки для работы с этой матрицей, были найдены проекты HT1632-for-Arduino и ht1632c, но они у меня упорно отказывались работать - на матрице попросту ничего не выводилось. В какой-то момент я даже подумал что матрица испорчена. Искал по форумам, пробовал разные скетчи и наткнулся на архив в котором находился код, таки заставивший засиять матрицу тремя цветами. Судя по комментариям в исходном коде - используется переделанная библиотека Sure Electronics для другой матрицы.
Убрал из кода все лишнее (благо лицензия позволяет) и оформил в виде отдельного модуля, попутно сделав тест матрицы. Вот как это выглядит:
Схема подключения матрицы к Arduino Mega 2560:
На всякий случай распиновка:
49pin - DATA (7)
47pin - WR (5)
48pin - CS (1)
46pin - CLK (2)
// x 0-31
// y 0-15
// color: 0 - black, 1 - green, 2 - red, 3 - orange
ht1632_plot(int x, int y, int color);
Весь скетч:#include "ht1632.h"
void setup () {
ht1632_setup();
Serial.begin(115200);
ht1632_clear();
}
int color = 1;
void loop () {
for (int i=0; i<32; i++){
for (int j=0; j<16; j++){
ht1632_plot(i, j, color);
}
}
if (color < 3){
color++;
}else{
color = 1;
}
}
После теста меня начала беспокоить скорость обновления матрицы, надеюсь там есть куда оптимизировать код.