Недавно таки пришла посылка из Гонконга с заветной матрицей. Это практически моя последняя надежда потому как те электронные компоненты, из которых более-менее реально самостоятельно собрать аналогическую матрицу, продаются в Китае только оптом и с доставкой 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;
}
}
После теста меня начала беспокоить скорость обновления матрицы, надеюсь там есть куда оптимизировать код.
привет красивая работа! или я попытался сделать это, но я не могу программировать Arduino борту программе дает мне много проблем, а библиотеки или intallate! Я использую плату Arduino, но я не думаю, что это проблема! помогите мне! аспект вашего ответа, спасибо!
ReplyDeleteCheck your email
ReplyDeletethanks for the answer! but I still can not get it to work I use Arduino 2009! can you send me your program with the arduino libraries already made? thank you!
ReplyDeletebeautiful project!
You can find all project files at https://github.com/azhurb/LedMatrix
ReplyDeletewhat are the pins if you use Arduino 2009? thanks
ReplyDeleteim using Arduino mega 2560 with pins:
ReplyDelete49pin - DATA (7)
47pin - WR (5)
48pin - CS (1)
46pin - CLK (2)
on Arduino 2009 i believe you must use other digital pins and change it in led_matrix/ht1632.cpp
hello! nice project! I have the problem that the variable bytes in c pp is not declared! I use the program arduino 1.01 and my arduino arduino is two thousand! look forward to your answers
ReplyDeleteWhich file has the problem?
ReplyDeletewith the cpp
ReplyDelete