Контролер світлодіодного табло

Було привезено з Китаю безіменне світлодіодне табло дозволом 192х32. Довжина близько 1.5 метрів.

Контролер світлодіодного табло

Всередині був безіменний контролер, зі стертою маркуванням, в комплекті порожній компакт диск на якому повинен був бути софт.
Після нетривалих пошуків робочого софта було вирішено замінити контролер на атмегу.

Щоб замовник не мучився з софтом і не приходив кожен раз щоб замінити картинку, вирішив додати підтримку microSD карти.
В процесі розробки виявив пару проблем:
1) Ліба читаюча microsd займає багато флеша (близько 11кбайт). да, я все одно люблю Ардуіно. погуглити, знайшов лібу fat16, яка в 2 рази менше, але не підтримує карти більш 2Гбайт. це обмеження визнав цілком прийнятним.
2) не вистачає ОЗУ. буфер екрана займає 768 байт, і Ліба для роботи з microSD / fat вимагає більш 800 байт під службовий кеш.

В результаті замість атмега8 довелося застосовувати atmega328 (замість 30 обійшлося 100рублей).
Табло може одночасно відображати тільки один рядок, тому робимо динамічну розгортку. Вдувати через послідовний порт 192 точки (один рядок) і защелкиваем стробом. Одночасно вдувається 2 рядки (1 і 17, 2 і 18, і т.д.).
У природі є двоцвітна модифікація такого табло, тоді вдувається 4 рядки. Але мій контролер на таке не розрахований.
Для ногодриганья замість гальмівних процедур Ардуіно використовуються макроси. У лібах виставлені настройки для оптимізації розміру коду.
прошивка зайняла 4.6кбайт

Після включення контролер шукає SD карту і на ній файл 1.bmp. Парсит вміст і намагається вивести на екран. Розуміє тільки тип бмп, монохромний, дозволом 192х32. Якщо не знаходить карту або файл - виводить відповідну помилку на табло.

сорци, схема, печатка в аттаче

бачив модулі 3х кольорові (НЕ РДБ) зі спеціальним контролером і начебто він навіть шим підтримує
хотів купити 2 рядки 1.5м десь і коштувати це повинно не дорожче 150 єврових

у моїх спеціальних контролер для динамічної індикації

Схожі статті