3

Arduino без вложений. Proteus [2]

Как работать с протеусом мы разобрались в первом посте.

Теперь попробуем сделать что-нибудь, что делают новички на ардуино. Запрограммируем микроконтроллер на работу с матрицей светодиодов через микросхему Max7219. Собственно, подобный шилд часто можно встретить в наборе новичка.

Напоминаю: подробная инструкция по работе с протеусом присутствует в первом посте.

У микросхемы есть несколько контактных групп, а именно:

Красным - контакты ввода
Зеленым - контакты вывода столбца на матрицу
Синим - контакты выбора столбца, который именно мы будем вводить (микросхема сама бегает плюсом по этой контактной группе, а мы на самом деле заполняем ее внутренние буферы)

Для данного проекта мы будем использовать цифровые выводы 2, 3 и 4.

Соединяем микроконтроллер с микросхемой:
Цифровой выход 2 (4-я нога) с DIN (DataIN)

Цифровой выход 3 (5-я нога) с LOAD

Цифровой выход 4 (6-я нога) с CLK (Clock)

А так же соединяем саму микросхему с матрицей: 

зеленую группу с зеленой, синюю с синей (на первом скриншоте они выделены).

Настало время написать программу (ссылка на полный листинг программы в конце поста). 

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

Первым делом создадим виртуальную область, в которую будем "выводить изображение" для последующего копирования его на микросхему-матрицу - это БУФЕР (buf).

Так же создадим то, что мы будем выводить в буфер, я решил на первый раз обойтись пиктограммами 8х8 в нужном количестве. Создал массив im (от сокращенного image), и заполнил его всем знакомыми буквами ("Pikabu ").

Так же на скриншоте ниже я подробно описал несколько дополнительных переменных, которые я использовал для работы.

А вот и то самое расстояние между пиктограммами:

Основная функция программы - loop, она выполняется раз за разом, пока питание будет подключено.

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

Затем нам можно уже работать с буфером, сдвигаем его на 1 столбец влево. После чего мы должны заполнить последний столбец новыми данными. Если расстояние между пиктограммами еще не прошло - заполняем последний столбец пустотой, а если сейчас очередь пиктограммы - заполняем последний столбец буфера нужным столбцом пиктограммы.

(нынешнего*)

И так, после заливки программы и запуска, я обнаружил, что массив смещен на 1 строку циклично вниз. Да, именно строку, ибо матрица по умолчанию повернута на 90 градусов по часовой.

"Покурив мануалы" (даташит) я быстро обнаружил проблему: оказалось что вывод DP выполняет роль нулевого контакта, в то время как А - 1, B - 2 и т.д.

Быстро поменяв контакты местами, я решил проблему.

Элементарная бегущая строка на одной матрице готова!


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


В следующий раз я покажу как объединить несколько таких матриц, для создания уже полноценной бегущей строки, покажу как пользоваться виртуальным осциллографом. Код претерпит множество изменений.


Листинг: http://pastebin.com/qxvSV3yL


С вами был RadioNoob, специально для

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества