Матричний дисплей на MAX7219

дисплей

Мікросхема MAX7219 – готовий драйвер для семисегментних та матричних світлодіодних індикаторів. У семисегментному індикаторі я вже використовував її у контролері вентилятора та погодної станції. У цій статті я напишу про використання готових світлодіодних модулів з MAX7219.

Модулі 8×8 з MAX7219 продаються поштучно або готовими збираннями 8×32. Я брав окремі модулі 8×8 із ціною трохи більше долара за штуку. Так як при кількості більше 1 шт виходила платна доставка, не полінувався, зробив 8 замовлень.

MAX7219

У комплекті хустки з мікросхемою, сам індикатор, роз'єм для індикатора і для з'єднання кожної плати.

MAX7219

Розміри індикатора 3.2 см Х 3.2 см. Підключення до мікроконтролера SPI «в один кінець» по трьох проводах. Модулі підключаються каскадно - DIN-DOUT. Решта висновків запаралелена. Підключивши один модуль до ардуїнки (фоток не залишилося) вирішив одразу збирати дисплей. З двох конфігурацій 8×64 і 16×32 вибрав другу, оскільки вирішив зрештою робити годинник. Перший же це класичний «біжить рядок». Щоб менше возитися з проводами, розвів плату під дисплей (і чого б на неї відразу контролер не встановити?)

дисплей

MAX7219

Готовий зібраний екран підключив ESP8266. Для таких модулів зазвичай використовується ардуїнівська бібліотека LedControl. Але мені більше сподобався драйвер для модулів MAX7219 до графічної бібліотеки AdafruitGFX. На відміну від LedControl, де з кожному модулю звертаються за номером, Max72xxPanel дозволяє працювати з усіма модулями, як із єдиним піксельним дисплеєм. До ESP8266 підключення таке:

  • DIN -> GPIO13 (MOSI)
  • SCK -> GPIO14 (SCK)
  • CS -> GPIO16 (до будь-якого вільного)

У конструкторі об'єктуматриці визначаємо PinCS, а також кількість модулів по вертикалі та по горизонталі.

У секції SETUP програми потрібно налаштувати наш дисплей, тобто задати послідовність підключення модулів та орієнтацію кожного модуля.

Мікросхема MAX7219 підтримує 16 градацій яскравості світлодіодів. Ставимо максимальну:

Дисплей перетворюється на яскравий червоний ліхтар.

MAX7219

потужністю понад 12Вт

MAX7219

До того ж досить відчутно нагрівається

матричний

Власне дивуватися нема чому - все написано в датасіті на MAX7219, Максимальний струм на всіх сегментах одного модуля - 330мА, що при множенні на 8 і дає 2.6А. Мінімальний струм – 1/16 від цієї цифри. У нашому випадку близько 160мА. При встановленні інтенсивності струм змінюватимемося з кроком 1/16 від максимального. При такій яскравості дисплея не бачу сенсу встановлювати значення інтенсивності більше 7. Зі струмом розібралися, перейдемо до виведення інформації на наш дисплей. У прикладах до бібліотеки Max72xxPanel є простенька програма - виведення рядка, що біжить. За замовчуванням рядок видається стандартним шрифтом бібліотеки GFX 5×7. Русифікація цієї бібліотеки докладно розглянута тут. Сутність зводиться до того, що потрібно завантажити за посиланням архів, взяти звідти український фонт і покласти його в папку AdafruitGFX-master. Інші файли, це приклади, як перекодувати константи, введені в середовищі Arduino в UTF-8 кодування фонту 1251. Там є для цього функціяutf8rus

Невеликий відступ про кодування українських букв у середовищі Ардуїно

MAX7219

дисплей

Тепер якщо згодувати цей масив функції drawBitmap, отримуємо її на дисплеї