Как сделать бегущую строку на Ардуино и что для этого нужно

Бегущая строка — популярный способ донесения информации, который используется везде. Реализовать ее можно на микроконтроллере. Проще всего создается бегущая строка на «Ардуино», благодаря наличию необходимых библиотек и удобной распиновке платы.

Бегущая строка

Что потребуется для создания бегущей строки на «Ардуино»

Для реализации проекта требуются:

  1. Плата «Ардуино» (подойдет модель nano).
  2. Несколько модулей MAX7219, в комплект которых входят светодиодные матрицы (количество модулей выбирается самостоятельно).
  3. Провода для контакта модулей и платы.

Что представляет из себя модуль светодиодной матрицы с микросхемой MAX 7219

MAX7219 — драйвер управления динамической индикацией. Он представляет собой микросхему, к которой можно подключить LED-дисплеи, LED-матрицы и отдельные светодиоды (до 64 шт.) и независимо управлять ими.

Модуль индикации, необходимый для создания бегущей строки, состоит из:

  • микросхемы модели MAX с индексом 7219;
  • светодиодной сборки 8 на 8, по которой бежит текст (1 и более);
  • платы с SPI-интерфейсом, к которой крепятся эти элементы.
SPI-интерфейс позволяет связать матрицу через микросхему с микроконтроллером платы Arduino. Благодаря этому снижается количество линий, которые нужно задействовать для подключения светодиодной сборки 8 на 8: 3 (MOSI, SCK, CS) вместо 16 (8 для каждой строки и 8 для каждого столбца).

Библиотека MAX 72xxPanel

Программировать SPI-интерфейс для работы с несколькими микросхемами последовательно вручную не просто. Для облегчения работы существует библиотека Max72xxPanel.

Программирование бегущей строки

К коду она подключается стандартной строкой #include.

Благодаря функции Max72xxPanel можно 1 строкой скетча подключить целый дисплей из нескольких матриц по горизонтали и по вертикали.

У функции есть 3 аргумента:

  1. Номер вывода, к которому подключен контакт CS (выбор микросхемы).
  2. Число матриц по горизонтали.
  3. Количество светодиодных сборок по вертикали.

Как вывести текст

Вывести текст можно 2 способами:

  • создать массив символов/изображений и выводить его последовательно со смещением;
  • использовать скачанную библиотеку с функциями.

Чтобы вывести массив, надо в вечном цикле организовать цикл for с количеством итераций, равным длине текста в пикселях, и внутри него выводить сформированный массив.

Есть также библиотека Adafruit_GFX, в которой содержатся:

  1. Английские буквы в обоих типах регистра.
  2. Стандартные знаки препинания.
  3. Функции, позволяющие выводить окружности и отрезки.

Вывод текста

С помощью этой библиотеки можно даже управлять RGB-светодиодами, изменяя их цвет.

Чтобы с ее помощью вывести символ, нужно прописать функцию drawChar.

У этой функции следующие аргументы:

  • положение символа относительно верхнего левого угла;
  • символ в библиотеке;
  • цвет символа (для двухтонной сборки HIGH значит, что светодиод горит, LOW — потушен);
  • фон (для двухцветной матрицы LOW — черный фон, HIGH -инверсный);
  • размер (если по вертикали 1 диодная сборка, то размер равен 1).

Для вывода на дисплей окружности нужно указать функцию drawCircle (2 координаты центра, радиус, HIGH), отрезка — drawLine (координаты начала, конца, HIGH). HIGH в данном случае — цвет.

В стандартном виде Adafruit_GFX работает только с латинскими символами, но есть и версия библиотеки, в которую включен русский шрифт. Для вывода стандартного текста она подходит лучше всего.

Схема бегущей строки

Если в бегущей строке задействуется 1 матричный модуль, то подключается он так:

  1. Vcc, GND — к питанию +5 В (рекомендуется устанавливать параллельно конденсатор на 0,1 мкФ) и общему проводу соответственно.
  2. DIN — к MOSI на плате.
  3. CLK — к SCK на плате.
  4. CS — на контроллер управления к любому выводу на плате, ответственному за выбор микросхемы в интерфейсе SPI (назначается пользователем).

Схема

Если матричных модулей несколько, то выводы Vcc, GND, CS и CLK подключаются аналогично, а для последовательного объединения матриц выход (DOUT) 1 модуля подключается ко входу (DIN) 2, выход 2 — ко входу 3 и т.д.

Чем больше матриц выстроено по горизонтали, тем удобнее читать сообщение, выводимое на бегущей строке.

Программная часть

Код для работы с com-портом нужен в основном скетче для оперативной смены бегущих данных.

String COM_read()

{

unsigned char read_var; // переменная для чтения данных из COM-порта

String COM_string = «»; // формируемые данные

while (Serial.available() > 0)

{

read_var = COM_read (); // чтение символа в строке

if (read_var == ‘n’)

{

return COM_string; // возвращение строки

}

if (read_var == 0xB8)

read_var = read_var — 0x01;

if (read_var >= 0xBF && read_var <= 0xFF)

read_var = read_var — 0x01;

COM_string = COM_string + String(char(read_var)); // добавление данных в выводимую строку

}

return COM_string;

}

https: //qsy .by/begushhaya-stroka-arduino-max7219-i-para-provodov/ общий код бегущей строки здесь

Ссылка на основную публикацию