8 (800) 350-30-16

Подключение модуля с табло 16x16

Дата: / Категория: Дисплеи / Автор: DOC_tr

Давно никто ничего не писал в блог - были другие более важные дела, такие как оптимизация сайта, расширение доставки (теперь, как вы могли заметить, у нас появились пункты самовывоза в Москве и доставка почтой по всей России), создание партнерской программы и другие значительные изменения на сайте, чтобы сделать его максимально удобным для наших покупателей.

Но сейчас речь не об этом. Не так давно к нам пришла партия матричных табло 16х16 и, разумеется, первым делом мы опробовали их в полевых условиях. 

На самом дело табло не 16 на 16 - оно просто склеено из 4х 8 на 8, но это не делает его менее привлекательным. Тем более что они поставляются вместе с модулем, и кучей всяких запчастей (подробнее смотрите в разделе "комплектация").

Управляется вся эта система с помощью 4х сдвиговых регистров, что позволило сократить количество ног для управления до 8 штук.

Ну, вроде, с введением я закончил - приступим к подключению.

Так как дисплей достаточно мощная штука, нам потребуется отдельное питание в виде модуля питания.

А теперь подключим все по следующей схеме:

Вот так все это выглядит на столе:

Немного полазав по английским форумам, я наткнулся на удобную библиотеку LEDMatrix. Очень удобная, но есть один минус (хотя он, возможно, только у меня), но о нем я расскажу ниже. Также у этой библиотеки есть пример, который напишет вам "Hi !", но его вы можете просмотреть уже сами.

Так как разрешение нашего табло всего 16х16, особо разбежаться некуда. Но попробуем просто написать "R" и помигать ей.

Для перевода изображения в код можно воспользоваться кодом, который находится в данной статье (правда, его требуется немного переписать, но если вы обладаете базовыми знаниями PHP, это не составит труда).

Конструктор библиотеки принимает параметры в следующем порядке - D, C, B, A, G, DI, CLK, LAT и в нашем случае объявление будет следующим:

LedMatrixObject *led = new LedMatrixObject(44, 42, 40, 38, 36, 34, 32, 30);

А вот и весь код, с помощью которого мы будем моргать буквой "R":

#include "LedMatrixObject.h"

LedMatrixObject *led = new LedMatrixObject(44, 42, 40, 38, 36, 34, 32, 30);

unsigned char Scene[16][16] = {
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
},{1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1
},{1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1
},{1,1,1,0,0,1,1,1,0,0,0,1,1,1,1,1
},{1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1
},{1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1
},{1,1,1,0,0,1,1,1,0,0,0,1,1,1,1,1
},{1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1
},{1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1
},{1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1
},{1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1
},{1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1
},{1,1,1,0,0,1,1,1,1,1,0,0,1,1,1,1
},{1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1
},{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
},{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
};

unsigned char Scene_rev[16][16] = {
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},{0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0
},{0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0
},{0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,0
},{0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0
},{0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0
},{0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,0
},{0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0
},{0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0
},{0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0
},{0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0
},{0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0
},{0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0
},{0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0
},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
};

void setup(){

}

int seconds = 0;
int delays = 500;

void loop(){
seconds++;
led->clear();
if(seconds < delays){
led->setScene(Scene);
} else {
led->setScene(Scene_rev);
}
led->draw();

if(seconds == delays * 2){
seconds = 0;
}
}

Массивы немного не отформатированны - они были сгенерированы мной, но, думаю, что это не особо важно ;)

В коде функции loop вы можете заметить странную конструкцию - костыль. Все потому, что данная библиотека очень криво работает вместе с delay (хотя возможно, как я уже говорил, только у меня), поэтому пришлось заткнуть моего внутреннего перфекциониста и реализовать мигание через костыль.

На этом все. С наступающим всех Новым годом.

Надеюсь в следующем году радовать вас новыми статьями почаще ;)

Теги: #TE286, #светодиодное табло

Ваша оценка:

Рейтинг: 10.0 (Оценок: 3)

Комментарий:

Copyright © RobOM.ru 2016 г. Все права защищены