Светодиодная матрица 8x8
Среди бесчисленных деталей давным-давно у меня пылилась китайская светодиодная матрица, шедшая в комплект с каким-то набором модулей, заказанным на али. Все никак не доходили руки до нее. 16 контактов казались каким-то безумным количеством для подключения к ардуинке.
Но недавно я обзавелся сдвиговыми регистрами, призванными устранить сие недоразумение.

Сей тип матриц — один из самых популярных на просторах алиэксперса. Мне она досталось в качестве подарка.
8 контактов столбцов и 8 контактов строк, 2 сдвиговых регистра 74HC595 справятся с этой задачей отлично. По-хорошему нужно использовать транзисторную сборку для катодов матрицы, но токи совсем небольшие, так что можно и голый регистр запихать. И так сойдет…

Кое-как разместил все на двух бредбордах. На такую конструкцию опасно чихать. Ножки резисторов оказались очень тонкими и чуть что — контакт теряется.

Даже не стал проверять, есть ли там готовые библиотеки для работы с матрицами через сдвиговые регистры, или нет их там. Так не интересно. Дело это не затейливое и я написал свою библиотеку с блэкджеком и ….
Для отображения применяется динамическая индикация. Изображение выводится по строкам, меняющихся с огромной частотой. Глупый человек не видит этого.
Небольшой кусок кода, отвечающих за вывод изображения. Тут buffer_
— массив, который хранит в себе колонки, а row_
— битовая маска, она отправляется на сдвиговый регистр, отвечающий за контроль строк.
void Matrix8::draw() { row_ = 1; for (int i = 0; i < MATRIX_SIZE; i++) { // Lock latch pin digitalWrite(latch_pin_, 0); // Write row shift register shiftOut(data_pin_, clock_pin_, LSBFIRST, ~row_); // Write column shift register shiftOut(data_pin_, clock_pin_, LSBFIRST, buffer_[i]); // Unlock latch pin digitalWrite(latch_pin_, 1); // Switch to next row row_ <<= 1; } }
Ссылка на всю библиотеку — вот туть.
Естественно, что столь хрупкая конструкция — не для глаз публики. Поэтому было решено припаять все на одну макетную плату.


Резисторы размещены под матрицей (в целях экономии места).


Паялось замечательно и ровненько. Да вот жаль, что про провода я начисто забыл. Дальнейшая конструкция получилась нереально нелепой. Но рабочей.

По такой вакханалии пришлось пройтись тестером на предмет замыканий и контакта.

А с лицевой стороны — все няшно и красиво.
