cat_ledm_06

LED панели на обычных регистрах типа 74HC595. Они выпускаются как монохромные так двух и полно цветные, особенность, что они предназначены для текстовой информации и имеют один уровень яркости. Общую яркость панелей легко регулировать, а вот если будет желание каждого пикселя, то тут надо извращаться. Для создания текстовых, бегущих строк это то что надо.

Мне попался в руки двухцветный модуль P10C4V12 (красные и зеленые светодиоды), с разрешением 16*35 RG.

Как они подключаются?cat_ledm_07 По питанию проблем не будет, тут все просто, колодка, с детальным описание GND и VСС напряжение питания номинальное 5 вольт. Для подключения в комплекте идут комплекте два силовых проводов красного и черного цвета, а также интерфейсный шлейф.

Интерфейс подключения, представляет собой 16 пиновый соединитель, назначение выводов следующее:

Номер Название Назначение
1 OE 0 – включено/ 1 – выключено (для всего модуля)
2 А Вход дешифратора выбора строк
3 AT OK
4 В Вход дешифратора выбора строк
5 GND
6
7 GND
8 CLK Синхронизация байта
9 GND
10 STB Синхронизация блока данных
11 GND
12 RED Вход данных для красного цвета
13 GND
14 GREEN Вход данных для зеленого цвета
15 GND
16

cat_ledm_10

Схема подключения к микроконтроллеру PIC24FJ64GA004 для тестирования двух модулей подключенных последовательно.

cat_ledm_24

После подключения наступает самое интересное, это каким образом регистры выведены на светодиоды!!? После определенного периода секса с модулями было выяснено:

cat_ledm_20

Электрическую схему я не разрисовывал, просто лень, главное понять принцип. Для работы модуля нужно лепить динамическую индикацию (как при работе с матрицами семисегментных индикаторов). Весь индикатор разбит скажем так на 4 ветки светодиодов + два цвета, это значит, что необходимо сделать развертку на 8 разрядов ( это применительно к семисегментным индикатором). На рисунке видно как китайцы за мудрили с подключением регистров, почему так я не понял, это видимо надо быть китайцем.

 

На рисунке мы видим, что имеются 4 (двухцветные линейки светодиодов), подключение регистров нарисовано стрелками, каждой группе дан условно номер. Надо понимать, что данные поступают например на 15 группу верхний ряд и по стрелкам проходят до нижней нулевой. Это если кому-то захочется создать свой алгоритм развертки. Какая особенность для переключения индикации строк нужно воспользоваться входами А и В, но самое главное в статике фокус не проходит, для того, чтобы получить индикацию, необходимо организовать постоянное переключение при загрузке каждой строки.

Сканы как выглядит работа библиотеки для управления индикацией на модуле:

cat_ledm_22

ОЕ – используется для регулировки яркости дисплея. А и В видно как используется для включения работы индикации. CLK – это синхронизация, в каждой группе это 32 байта (у меня два модуля соединенных последовательно). STB – это импульс окончания загрузки данных в регистры и после него данные появляются на светодиодах (ну и типа мы их видим). RED и GREEN это соответственно сами данные которые надо отобразить в красном или зеленом цвете. Библиотека написана, чтобы можно было отобразить 4 комбинации цвета точки 0 – черный, 1 – красный, 2 – зеленый, 3 – желтый. Но Желтый на этом модуле на маленьком расстоянии смотрится не очень, а так всё работает.

Загрузка одной строки в модуль выглядит так:

cat_ledm_09

Для загрузки всех светодиодов одного цвета надо 4 такие передачи (правда загрузку красного и зеленого цветов можно выполнять параллельно, но функция работы модуля, чтобы сделать индикацию гибкой этого не позволяет, поэтому тут будет описан вариант при необходимости загрузки двух цветов только в последовательном варианте). Для загрузки двух последовательно включенных модулей 16*64 будет выглядеть так:cat_ledm_11

 Общий вид имеет вид.

cat_ledm_12

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

Во всех конструкциях я предпочитаю делать обновление дисплеев не ниже 100 Гц. если ниже, то это уже видно мерцание и раздражает глаза, как на телевизорах или дисплеях где частота обновления 50-60 Гц. Поэтому у меня на PIC24 (почему 24, просто он был под рукой) частота получилась 125 Гц, так просто делители настроились в таймерах при тактовой 32 МГц.

Период развертки, можно видеть по сигналу B:





  • Внешний вид панели


  • Расположение свтиков


  • Входной буфер


  • Распиновка соединителя
  • cat_P10_1R_V706A_08

    cat_P10_1R_V706A_08
    Подтягивающие резисторы шин
  • cat_P10_1R_V706A_07

    cat_P10_1R_V706A_07


  • Колока подключения питания 5 вольт


  • Маркировка модуля


  • Вид на печатную плату


  • Вид на монтаж


  • Видна лицевую панель



Библиотека

Инициализация настройка, управление

void OpenSPI1(void);  – инициализация интерфейса SPI передача данных в матрицу

void PWM_Init(void);    – настройка Output Compare для работы в режиме ШИМ, регулировка общей яркости дисплея.

void indic (void);    – функция динамической индикации, её помещаем в цикл прерывания таймера

Вариант настройки таймера для тактовой 32 Мгц

void BrightnessControl(unsigned int brightness); – функция регулировка яркости значение 0-1000, для более менее получения плавности.

Рисование примитивов

void point (unsigned int X, unsigned int Y, unsigned int tip, unsigned int color);    – функция рисования точки
где :  X-Y координаторы точки, tip – тип прорисовки с цветом пикселя, color – 0-черный, 1-красный, 2-зеленый, 3- желтый.

void line ( int x0,  int y0,  int x1,  int x1,  int tip,  int color);      –  функция рисования линии алгоритм Брезенхема
где : x0, y0 – начальные координаторы линии, x1-x1 – конечные точки линии, tip – тип прорисовки с цветом пикселя, color – 0-черный, 1-красный, 2-зеленый, 3- желтый.

void Circle( int cx,  int cy , int radius,  int tip,  int color);         –  функция  рисования  окружности

где : cx, cy – координаторы центра, radius – радиус, tip – тип прорисовки с цветом пикселя, color – 0-черный, 1-красный, 2-зеленый, 3- желтый.

void rectangle ( int x0,  int y0,  int sh,  int vs,  int filling,  int tip,  int color); – функция рисования прямоугольника.
где :  X-Y координаторы точки, x1-x1 – ширина и высота прямоугольника, tip – тип прорисовки с цветом пикселя, color – 0-черный, 1-красный, 2-зеленый, 3- желтый.

Эффекты

void FAIDER (unsigned int speed, unsigned int mode); // файдер – функция плвного гашения и увеличения яркости дисплея.
void delaym (unsigned int delay); // регулируемый делай, для фейдера
void HRANSKRIN (void); // хранитель экрана, если необходима такая функция
void svernut (void); // свернуть экран, типа сворачивания изображения, для очистки
void FastClean (void); // быстрая очистка

Тестовые функции

void Cursor (char Xp, char Yp);
void Symbol (unsigned char cod, int shi, int vis, unsigned char ots, unsigned int tip, unsigned int color); // прорисовка символа
void scrolling(const char *str, unsigned int window, unsigned int color); //бегущая строка

void StringCur(const char *str, int shi, int vis, unsigned int tip, unsigned int color); //вывод строки с положения курсора
void String (const char *str, unsigned int shi, unsigned int vis, int X, unsigned int Y, unsigned int tip, unsigned int color) ; // String – вывод на дисплей строк c любой точки дисплея
// преобразование и вывод чисел
void BinDec(long data, char zap, char nul, char mes, char ras, int shi, int vis, int color); // вывод на дисплей/режим

Библиотека “картинок”

Дополнительные функции для прорисовки картинок

void PIC_BinDec(long data, int x, int y, int mode, int tip, int color); // вывод на дисплей/режим

void PIC_Symbol (int chislo, int x, int y, int tip, int color); // для больших цифр

void pictureRLE (const char *mas, int Xs, int Ys, int tip, int color); // прорисовка примитивов

Файлы для загрузки


Icon

LED модуль P10C4V12 — графическая библиотека v.1.2 12.41 KB 124 downloads

LED модуль P10C4V12 — графическая библиотека v.1.2 ...

Icon

LED модуль P10C4V12 — дополнение к графической библиотеки v.1.2 6.07 KB 88 downloads

LED модуль P10C4V12 — дополнение к графической библиотеки...


Продолжение возможно…


Это может быть интересно


  • Одноканальный емкостной сенсор – AT42QT1012Одноканальный емкостной сенсор – AT42QT1012
    Описание сенсора  Незаконченный проект, так-как сенсор не оправдал своего назначения, не рекомендую, просто выброшенные деньги. Особенности. • Количество сенсоров – один, режим переключения ( touch-on/touch-off ), а также программируемая автоматическая задержка выключения …
  • ESP32-первое знакомствоESP32-первое знакомство
    Музыкальная тема к статье, слушаем: Настало время познакомиться c ESP32 и для меня, для этого я приобрел в ГАММЕ отладочную плату с модулем ESP-WROOM-32 (ESP32-DevKitC). Первая задача, как он подключается, …
  • Светодиоды со встроенным драйвером WS2812BСветодиоды со встроенным драйвером WS2812B
    Производитель http://www.world-semi.com Краткое описание продукции фирмы Каталог продукции” catcatcat_ws_19 catcatcat_ws_15 catcatcat_ws_11 catcatcat_ws_07 catcatcat_ws_03 catcatcat_ws_18 catcatcat_ws_14 catcatcat_ws_10 catcatcat_ws_06 catcatcat_ws_02 catcatcat_ws_05 catcatcat_ws_09 catcatcat_ws_13 catcatcat_ws_17 catcatcat_ws_16 catcatcat_ws_12 catcatcat_ws_08 catcatcat_ws_04 catcatcat_ws_01 This jQuery slider was …
  • Самый простой индикатор уровня звукового сигналаСамый простой индикатор уровня звукового сигнала
    Демонстрационный проект создания индикаторов уровня с использованием WS2812B. Изучив этот проект вы сможете  самостоятельно изготавливать и конструировать свои индикаторы уровня звукового сигнала. Дополнительно читайте статью Бегущие огни на WS2812B по подключению …
  • Toyota Auto Fader – Модуль включения усилителяToyota Auto Fader – Модуль включения усилителя
    Toyota Auto Fader – Модуль включения усилителя. Часто автолюбители прибегают к замене штатного головного устройства на универсальное мультимедийное, в котором значительно расширены функциональные возможности. Если возникает желание оставить в работе …
  • Стабилизатор тока на SN3350, часть 2Стабилизатор тока на SN3350, часть 2
    Если вам необходимо разработать устройство с применением мощных светодиодов, то никак не обойтись без применения стабилизатора тока. На настоящий момент стабилизаторы тока являются самым эффективным механизмом, для питания светодиода в течение всего его цикла …
  • TM1650 драйвер LED семисегментного индикатораTM1650 драйвер LED семисегментного индикатора
    Китайский производитель Shenzhen Titan Micro Electronics Co., Ltd.  Выпускает широкую линейку драйверов управления светодиодными дисплеями, которые позволяют разгрузить микроконтроллер для основной работы, главная особенность этих драйверов не только в их …
  • CCP – модуль в режиме Compare на примере PIC18CCP – модуль в режиме Compare на примере PIC18
    CCP – модуль можно использовать в трех режимах: Capture – позволяет захватывать входной сигнал и определять его параметры (длительность или частоту). Дополнительно управлять внутренними модулями. Compare –  позволяет формировать импульсы …
  • Проект с использованием MCC часть 10Проект с использованием MCC часть 10
    Алгоритм управления освещением от нажатия кнопки. Обработка удержания кнопки: Мы должны проверить кнопка в настоящий момент нажата и флаг удержания установлен, если да Проверить таймер удержания “отработал” – это значит, …
  • Униполярный шаговый двигательУниполярный шаговый двигатель
        В приводах различных устройств часто применяются шаговые двигатели, Шаговый двигатели различают двух типов униполярные – когда обмотки коммутируются током текущим только в одну сторону, например при помощи обычных …



Tagged with →  
Share →
Translate »

Copyright © Catcatcat electronics 2013-2019. Все права защищены.
Копирование разрешается только с указанием активной ссылки на правообладателя.

e-mail: catcatcat.electronics@gmail.com