Бегущая строка на окно своими руками

Обновлено: 03.05.2024

Материалы и инструменты:
-Фрезер;
-Аккумуляторная дрель;
-Электрический лобзик;
-Зажимы;
-Струбцины;
-Лобзик;
-Рулетка;
-Нож;
-Линейка;
-Клеевой пистолет;
-Мультиметр;
-Паяльные принадлежности;
-Кусачки;
-"Третья рука";
-Стриппер;
-Фанера 6 мм;
-Шурупы;
-Столярный клей;
-Масло;
-Эпоксидная смола;
-Изолента ;
-Наждачная бумага;
-Силиконовые ножки;
-Ардуино Нано;
-Светодиодная матрица 8Х8 - 2 шт;
-Защищенный литий-ионный аккумулятор 18650;
-Держатель батареи;
-Регулятор напряжения;
-Выключатель;
-Макетная плата;
-Провода;


Шаг второй: регулировка напряжения
Предварительно собирает устройство и регулирует плату напряжения. Выходное напряжение на плате должно быть не выше 5 В.


Шаг третий: программное обеспечение
Теперь переходит к программному обеспечению. Загружает его.
Программное обеспечение Arduino


Дальше производит настройку. При первом запуске программного обеспечения Arduino выбирает тип Arduino. В данном случае это Arduino Nano (1-е фото). Затем открывает окно Serial Monitor (2-е фото).
Выбирает USB-порт, к которому подключен Arduino.


Теперь код нужно сгенерировать код. На фото показаны этапы компиляции. Вставляет код и нажимает кнопку загрузки - программа начинает компиляцию и загрузку кода.


Аккумулятор емкостью 3000 мАч на уровне 5 яркости дисплея, должен проработать более 20 часов, при 10 - более 14 часов и при 15 - более 12 часов. Также можно включать его от блока питания.


Шаг четвертый: сборка
Теперь нужно соединить две светодиодные матрицы. Мастер обрезает контакты и припаивает провода по следующей схеме:
Первый дисплей верх - второй дисплей низ
VCC - VCC
GND до - GND
DOUT до - DIN
CS до - CS
CLK до - CLK
Термоклеем приклеивает матрицу к окошку.


Припаивает к матрице провода и их же к Ардуино, по следующей схеме:
VCC - 5 В
GND - GND
От DIN - D12
От CLK - D11
CS - D10
Припаивает провода от регулятора напряжения к Ардуино:
VOUT + - VIN
VOUT- - GND


На двусторонний скотч приклеивает детали внутри корпуса, вставляет батарею в отсек и проверяет работу устройства.

Favorite

В закладки

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

В этом году предлагаю вам сделать очень крутую гирлянду-матрицу, которую можно повесить на окно или балкон, чтобы радовать не только себя, но и всех соседей в округе.

Зачем так рано

Большую часть компонентов такой гирлянды не найти в обычных магазинах. Чтобы собрать весь необходимый комплект, потребуется потратить много времени и обойти несколько магазинов электроники или радиорынков.

Лучше всего заказать все и сразу на AliExpress. Компоненты успеют прийти к новогодним праздникам и вы с легкостью повторите данный проект на зависть всем соседям.

В прошлом году мы уже делали подобную гирлянду на окно. Лично меня данная штука радовала всю зиму, соседи и просто прохожие часто останавливались перед окнами, чтобы понаблюдать за причудливыми анимациями и световыми эффектами.

В этот раз предлагаю модернизировать уже знакомый проект и собрать более крутую гирлянду. Если прошлая версия состояла всего из 100 светодиодов, то новый проект будет содержать минимум 1000 RGB адресных светодиодов! Это позволяет выводить не только более детализированные эффекты, но и демонстрировать GIF-ки, анимацию и даже специально подготовленное видео.

По сути мы превратим окна квартиры или балкона в LEG-панель с небольшим разрешением.

Что нужно заказать для данного проекта



Так выглядела моя посылка с пятьюдесятью кусками диодной ленты

▸ Первое и самое важное – это адресные светодиоды. Чтобы паять меньше проводов и диодов, чем в прошлом году, предлагаю сразу купить диоды на ленте.

Отлично подойдут ленты с плотностью 30 диодов на метр. Расстояние между ними на ленте составляет примерно 3 см, значит крепить такие ленты на окно лучше всего с шагом 3 см. Так получится равномерная матрица с правильными пропорциями картинки.

Исходя из этих данных рассчитываем необходимое количество лент для заказа. Покупаем самую доступную ленту WS1218B на белой основе с классом влагозащиты IP30.

Более защищенная и дорогая лента нам не нужна, крепить ее мы будем внутри помещения. Метровый кусок такой ленты стоит 100 рублей.

Учитывая большое количество заказываемых лент и всевозможные купоны мы неплохо сэкономим.



Не экономьте на блоке питания, берите с запасом мощности

▸ Чтобы запитать такую матрицу потребуется мощный блок питания. Рассчитать запас мощности можно исходя из приведенной таблицы.


Закладывайте минимум 3A на каждые 100 диодов. При построении матрицы на 1000 диодов выбирайте блок на 5В 30А, а лучше сразу на 40А с запасом.

Такой адаптер питания обойдется от 990 рублей.



Wemos D1 mini и комбинированный модуль времени + кардридер

▸ Для управления матрицей понадобится плата на базе микроконтроллера ESP8266 NodeMCU или Wemos D1 mini. Ни одна модель Arduino такую матрицу не потянет.

▸ Для пайки компонентов подойдет паяльник SH72 – от 976 руб.

▸ Не забывайте про канифоль и олово для пайки – от 270 руб.

Как спаять все компоненты



Тестовая сборка на макетной плате

Данную самоделку будем делать по базовому проекту Алекса Гайвера и дальшейшему развитию данной идеи в виде проекта GyverPanelWiFi от vvip-68.

Изначально разработчики предлагают достаточно сложную схему:



Схема с использованием платы NodeMcu

Однако, все возможности проекта нужны далеко не каждому пользователю. Можете запросто убрать динамик (он используется для будильника), плату с разъемом для карты памяти (она нужна для GIF-ок и видео), дисплей для индикации режимов и кнопку для их ручного переключения.

Если упростить проект, будет достаточно собрать нечто подобное:



Схема с использованием платы Wemos D1 mini

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

Получается, что нужно всего лишь соединить управляющую плату с диодной лентой и подать питание на оба элемента. Кнопка переключения режимов здесь используется опционально.


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

Если длина ленты окажется слишком большой, рекомендую подавать питание не в начале или конце, а подкинуть контакты с блока питания в разрыв примерно посередине.


На сборку прошлогодней матрицы у меня ушло несколько часов, а гирлянду из этого проекта собрал за 45 минут. Все благодаря китайцам, которые вместо спаянных диодов начали выпускать готовые ленты с коннекторами. А ведь количество “лампочек” в гирлянде увеличилось в 10 раз!

Не забудьте предусмотреть разъем для быстрого включения и отключения блока управления, чтобы при необходимости его можно было перепрошить.

Как прошить модуль управления


1. Если вы первый раз прошиваете подобные платы, потребуется скачать и установить приложение Arduino IDE на Mac или Windows.

Кроме этого могут потребоваться библиотеки Java Runtime Environment и драйвера для плат.


2. Подключаем прошиваемую плату к компьютеру и запускаем Arduino IDE.

3. В меню Инструменты – Плата выбираем тип используемой платы.

4. В меню Инструменты – Процессор выбираем тип процессора на плате. Проверяется методом перебора.

5. В меню Инструменты – Порт выбираем USB порт с подключенной платой.


6. Скачиваем архив проекта с GitHub (кнопка Clone – Download ZIP) и распаковываем его на компьютере.

7. В папке firmware находим последнюю версию прошивки GyverPanelWiFi и открываем в приложении Arduino IDE.

8. Из папки libraries с проектом импортируем все необходимые библиотеки через меню Скетч – Подключить библиотеку – Добавить .ZIP Библиотеку….


9. На вкладке a_def_hard.h настраиваем основные параметры подключаемой ленты (матрицы). Ее размер, способ подключения и угол подачи логического сигнала.


При желании можно пробежаться по другим вкладкам проекта и настроить эффекты под себя.

10. Загружаем проект на подключенную плату и устанавливаем ее в готовую сборку.

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

Синхронизация времени и получение прогноза погоды будет возможно при использовании убавляющий платы с Wi-Fi.

При использовании модуля с подключаемой картой памяти получится конвертировать и выводить на нашу матрицу GIF-ки и даже видео в соответствующем разрешении.

В результате соберете нечто подобное:

Останется лишь закрепить самоделку на окно и радовать всех проходящих соседей.

Favorite

В закладки

Favorite

В закладки

Делаем гирлянду своими руками. Такую не купишь

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

Такое украшение будет отлично смотреться на окне и радовать глаз не только хозяев, но и проходящих мимо людей.

Собрать такую гирлянду не так уж и сложно, главное раздобыть все необходимые компоненты.

Что мы получим в итоге

Гирлянда, которую мы будем делать, состоит из адресных светодиодов. От обычных данные диоды отличаются наличием логического контакта, через который осуществляется управление цветом и яркостью свечения.

Соответственно, для управления такой гирляндой нужны “мозги”. Плата управления будет несколько раз в секунду отправлять разные сигналы на каждый диод, что позволит получить красивые динамические эффекты и анимацию.

Если обычная гирлянда просто включает диоды по расписанию или может максимум выдавать эффект снегопада, то у нас получится сделать бегущую строку с текстом и более 20 эффектов. Каждый режим свечения будет настраиваемым с возможностью менять большинство параметров.

Что нужно купить на AliExpress


Для сборки данной матрицы нужно купить такие компоненты:

▸ плата Arduino Nano – от 132 руб. Берите сразу несколько, стоят “ардуинки” недорого, а проектов с их участием большое множество.

▸ лента с адресными диодами WS2812B – от 660 руб. Лента продается в мотках по 50 или 100 диодов. Для интересной и заметной матрицы нужно минимум сотня огоньков.


▸ для того, чтобы спаять компоненты, потребуется паяльник. Давно купил себе популярную модель TS100 – 3541 руб. За два года использования ни разу не пожалел, это до сих пор самый продвинутый паяльник для радиолюбителей.

Тем, кто паяет редко, для пары проектов подойдет самая простая и доступная модель – 275 руб.

▸ питать готовую конструкцию можно от мощной зарядки для смартфона (5В 3А минимум) – от 257 руб., можно подключить к Power Bank, который выдает подобную мощность.

▸ не забывайте про канифоль и олово для пайки – от 107 руб.

Последние компоненты найдете в любом радиомагазине.

Выбираем размер для гирлянды



Оптимальная схема подключения и расположение диодов на окне

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

Диоды в ленте уже спаяны между собой секциями провода по 10 см. Это достаточное расстояние между лампами по вертикали. Чтобы получить пропорциональную матрицу, нужно будет крепить вертикальные куски ленты на аналогичном расстоянии друг от друга.


Замеряем, сколько диодов поместится в одной вертикальной полосе на окне (учтите, что открывающиеся стеклопакеты имеют меньшую высоту стеклянного блока, чем “глухие”). Прикидываем, сколько вертикальных полос поместится на окнах. Не забывайте, что в месте перехода от одного окна к другому придется сделать более длинное соединение.

Лучше всего заполнить матрицей целое окно минимум из трех створок или все окна балкона.

Паяем все компоненты

На странице проекта (Спасибо Алексу Гайверу!) можно увидеть различные модификации гирлянды: от самой базовой, которую мы сейчас соберем, до продвинутой с кнопками управления или Blutooth-модулем для подключения со смартфона.



Самый простой вариант сборки

Собираем согласно приведенной схемы:

1. Последовательно спаиваем или соединяем коннекторами части диодной ленты (если взяли более одного сегмента).

2. Логический контакт от ленты через резистор припаиваем к “ноге” D6 на Arduino Nano.


3. Контакты питания паяем к коннектору блока питания или к питанию через USB-порт, если планируем подключать к Power Bank.

4. Наша матрица с блоком управления готова, осталось только загрузить нужную прошивку в Arduino.

В дельнейшем легко добавить другие модули и элементы к данному проекту.

Готовим Mac к работе с Arduino


1. Скачиваем среду разработки Arduino IDE для прошивки нашего модуля.

2. Извлекаем программу из архива и переносим в папку Приложения.


3. Скачиваем библиотеки Java Runtime Environment для работы приложения.

4. Монтируем образ и устанавливаем пакет.


5. Скачиваем кекст (драйвер) для работы с китайскими аналогами платы Arduino по ссылке. Выбираем последнюю версию 1.5. Владельцам оригинального модуля драйвер не потребуется.

6. Извлекаем установщик из архива и запускаем процесс инсталляции.


7. В процессе разрешаем установку от неподтвержденного разработчика и перезагружаем Mac.

Настраиваем среду разработки Arduino IDE

1. Подключаем Arduino к Mac и запускаем приложение Arduino IDE.


2. В меню Инструменты – Плата выбираем тип используемой платы Arduino.

3. В меню Инструменты – Процессор выбираем тип процессора на плате. Чаще всего это ATmega328P, но на старых платах может использоваться ATmega328P (Old Bootloader). Проверяется методом перебора.


4. В меню Инструменты – Порт выбираем USB порт с подключенной платой Arduino. Если плата не отображается, следует удалить и заново установить кексты по инструкции выше.

5. Проверяем подключение командой Инструменты – Получить информацию о плате.


Все, наше приложение готово и настроено для работы с платой Arduino.

Загружаем проект для гирлянды в Arduino


1. Скачиваем проект с сайта разработчика.

2. Распаковываем архив и находим файл проекта GyverMatrixOS_v1.12.ino (можете использовать боле старые версии или новые после их добавления автором).

3. Импортируем библиотеки, которые нужны для работы проекта через меню Скетч – Подключить библиотеку – Добавить .ZIP Библиотеку…

Потребуется поочередно импортировать четыре библиотеки из архива с проектом, которые лежат в папке GyverMatrixBT-master/libraries/ESP, ARDUINO/.

4. Вносим необходимые изменения в проект:


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

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


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

Для редактирования списка эффектов нужно перейти на вкладку Custom и удалить ненужные блоки начиная с “case” и заканчивая ” break;”


Эффекты можно менять местами или вставлять для повторения. Не забывайте про синтаксис.

Когда итоговый порядок эффектов будет определен, нужно еще раз проверить нумерацию от 0 до последнего пункта и обязательно изменить параметр MODES_AMOUNT на итоговое количество эффектов (считать вместе с нулевым).

Здесь же настраивается текст и цвет для бегущих строк.


В-четвертых, настраиваем дополнительные параметры для каждого из эффектов.

Часть настроек находится на главной вкладке проекта, а остальные – на вкладке effects.


5. Когда все настройки внесены, можем загружать прошивку на Arduino.

При возникновении ошибок они будут отображаться в сервисном окне снизу. Ошибки могут быть связаны с отсутствующими библиотеками (внимательно повторяем инструкцию по настройке Arduino IDE) или с нехваткой места на плате (об этом будет явно указано в консоли).


После прошивки отключаем плату от компьютера и подаем питание выбранным способом: через адаптер от сети или при помощи Power Bank.

Для внесение поправок или изменений в эффектах нужно будет снова подключить Arduino к Mac и загрузить измененную прошивку.

Остается только закрепить гирлянду на окно и дождаться темного времени суток. Скопление зевак и прохожих под окном гарантировано.

Favorite

В закладки


DIY

Ещё один проект разработчика AlexGyver. Матрица с увеличенным расстоянием между светодиодами для наблюдения с большого расстояния. В оригинале, матрица управляется по Bluetooth, но захотелось, чтобы по Wi-Fi. Не только мне этого захотелось, поэтому, всё уже было сделано. Оставалось только воплотить в железе на своём окне.

Проект этот праздничный, новогодний. Если Вы читаете статью сразу после её выхода, то ещё есть время, чтобы заказать комплектующие с Али и собрать сие изделие. Если значительно позже, то тоже не беда — Новый Год бывает каждый год.

Описание

Гирлянда на окно представляет собой такую же матрицу, как и та что использовалась в другом проекте — GyverLamp. Принцип сборки и управления схож, с тем лишь отличием, что В лампу устанавливалась готовая матрица, а для гирлянды матрицу нужно будет сформировать непосредственно на окне из ленты. Если быть точным, то из трёх лент.

Лента представляет собой адресные светодиоды скреплённые между собой 3-жильным плоским шлейфом. Расстояние между центрами соседних — 120 мм, между краями — 113 мм. В одной ленте 50 светодиодов. Вариантов шлейфа ленты несколько. Я выбрал прозрачный — он менее заметен, чем чёрный или трёхцветный.

Гирлянда на окно - GyverMatrix

Лента из адресных светодиодов

Одной ленты достаточно для покрытия одной секции стандартного окна в многоэтажном доме 121-й серии (97-й серии, думаю, тоже). Получается матрица 5х10. Я крепил ленту на большое окно, в котором 3 секции. Соответственно, понадобилось 3 ленты. В результате, как нетрудно догадаться, получилась матрица 15х10, как и в оригинальном проекте.

Комплектующие

Наименование и ссылкаК-воЦенаСумма
1Лента (Transparent wire)38002400
2 Контроллер Wemos D1 mini (D1 MINI)1160160
3Блок питания (5В, EU, 3А)1400400
4Разъём питания 5 мм x 2,1 мм18080
5Резистор 220 Ом111
6Конденсатор 6.3 В, 470 мФ177
7Печатный корпус1152152
ИТОГО3200
Смета

Сборка

Каждая лента оконечена разъёмами — «папа» с одной стороны, «мама» с другой. С помощью этих разъёмов ленты соединятся в одну. Разъём последней ленты отпаиваем и припаиваем его к плате контроллера. Таким образом получаем разъёмное соединение. Удобно.

Припаиваем и питающий разъём. Делал гирлянду в прошлом году, когда 3D-принтера в хозяйстве ещё не было. Поэтому плата на фото без корпуса и разъём питания не тот, что в таблице. Ссылки на печатный корпус нет по той же причине — нет ещё корпуса.

На этом, собственно, сборка и окончена. Осталось только закрепить ленту на окне. Крепить можно широким прозрачным скотчем.

С лентой у меня случилась незадача. Поскольку лента крепится зигзагом, то решил, что в местах поворота, из-за жёсткости шлейфа расстояние между светодиодами получится меньше, чем напрямом участке. Соответственно, изображение получится вытянутым по вертикали. Для того, чтобы этого не случилось, отпаивал кусочки шлейфа в критичных местах и припаивал провода подлиннее. Ещё немного ошибся в подсчётах. Не знаю, что это было, но перепаивал несколько раз. И в завершение всего ещё и неправильно приклеил на окно. Заметил это только в самом конце. Переделывать очень не хотелось. Хорошо, что Алекс сделал прошивку универсальной и настраиваемой. Поэтому, ничего не переклеивая, просто поправил параметр отвечающий за ориентацию ленты.

Такая гирлянда очень привлекает внимание. Это не просто тупое перемигивание цветными огоньками, а реальные крутые эффекты. Одна только Матрица чего стоит, ну и Огонь, конечно. Но с Огнём нужно быть аккуратнее — у особо впечатлительных соседей может сложиться впечатление, что в квартире пожар! А самая эффектная штука — это Бегущая строка. Казалось бы, уже все привыкли к таким вещам, но, когда это видишь не на каком то офисе, а на окне жилого дома, то возникает когнитивный диссонанс. Притом, текст то ведь свой. Например, у себя написал: «С Новым Годом, Северо-Восток!»

Ну и некоторые соседи интересовались тем, где купили такую вещь и кто-то даже попросил сделать такую же.

Заливка прошивки

Прошивку для выбранной платформы можно скачать на странице проекта. Подробная инструкция есть там же. Не вижу смысла повторять. Смысл статьи — обратить внимание на то, что такую вещь довольно просто собрать самому.

Видео с демонстрацией работы

Идеи по доработке

  1. Спроектировать и распечатать корпус для контроллера.
  2. Спроектировать и распечатать съёмное крепление для ленты.
  3. Убрать ненужные эффекты, например, часы.
  4. Убрать игры.
  5. Добавить какие-то свои эффекты.
  6. Упростить приложение.

Цель всех доработок — сделать коммерческий продукт. Это должна быть стабильно работающая вещь с не перегруженным интерфейсом приложения.

З.Ы. На днях решил запустить свою прошлогоднюю гирлянду, которая так и провисела на окне с прошлого года. Сразу не заработала… Бился, бился — в результате пересобрал заново. Заработала. Что было — непонятно, но ещё раз убедился, что зря камрады запихали в прошивку и приложение всё, что только можно. Надо резать.

Данная статья не претендует на толкование как единственно возможного метода отображения и прокрутки информации на светодиодной матрице. Я с удовольствием выслушаю ваши замечания и предложения по улучшению метода/функций. Данная статья – изложение личного опыта и описание результата, которого я добился.

Немного теории

image

В данной светодиодной матрице находится 64 красных светодиода. Если выводить контакты каждого светодиода отдельно, то понадобится 64 контакта на корпусе матрицы и микроконтроллер с 65 цифровыми портами ввода/вывода. Это нецелесообразно и невыгодно. Поэтому на заводе-изготовителе светодиоды объединяют в матрицы различных размеров (в нашем случае 8х8), то есть в 8 групп по строкам и столбцам следующим образом:

В таком случае нам понадобится лишь 16 цифровых вводов/выводов. Например, чтобы зажечь светодиод в левом верхнем углу, нам нужно на pin13 (см. картинку) подать лог 1, а на pin9 лог 0. Такой способ отображения называется статическая индикация.

«Хорошо, а если нам, например, нужно зажечь несколько светодиодов в разных позициях матрицы, а все остальные оставить выключенными?» — спросите Вы. При статической индикации это не представляется возможным. Для этого нужно использовать динамическую индикацию.

Динамическая индикация

Быстро мелькающий объект кажется человеческому глазу постоянно светящимся. Это свойство человеческого глаза – инертность. Как вы догадались, именно на этом свойстве и основан метод вывода информации в светодиодной матрице. Например, чтобы вывести на «экран» некий символ, нужно последовательно, проходя все «пиксели» матрицы с высокой скоростью, включать светодиод в нужном месте.

Условия, которые необходимо соблюдать при программировании матриц динамической индикации:
1. Длительность отображения каждого столбца/строки («пикселя» в моем случае) постоянна, одинакова для всех столбцов/строк («пикселей» в моем случае).
2. Частота смены столбцов/строк («пикселей» в моем случае) не меняется.

Принцип действия прошивки микроконтроллера

Признаюсь, когда у меня появилась отладочная плата на МК Atmega1280 и светодиодная матрица, я и понятия не имел что такое динамическая индикация и для чего она нужна. До понимания необходимости ее использования я дошел методом проб и методом «тыка».

Принцип действия прошивки:

1. Вывод символа на экран

Давайте представим, что наша светодиодная матрица – это двухмерный массив размерностью I на J, совпадающей с размерностью нашей матрицы. В нашем случае это 8 на 8 пикселей. Итак, есть двухмерный массив типа boolean. К примеру:

В цикле мы проверяем, если элемент массива A[i][j]=1, тогда включаем светодиод на матрице, находящийся в позиции (I;J), делаем паузу на отображения светодиода и выключаем светодиод в позиции (I;J). В результате работы программы по такому алгоритму на экране матрицы выведется символ «А» (в двумерном массиве именно этот символ отображен). Назовем этот алгоритм «Вывод на экран». Итак, с выводом информации на экран с помощью динамической индикации разобрались.

2. Прокрутка информации на экране

Конечно, классно выводить на экран неподвижную информацию, но было бы интереснее «оживить» ее – заставить передвигаться. Рассмотрим алгоритм перемещения информации:

В бесконечном цикле выполняем:
1. Вызываем алгоритм «Вывод на экран».
2. Берем 1й столбец матрицы А и записываем его в буфер (двухмерный массив BUFFER[8][1]).
3. Записываем содержимое матрицы с позиции A[i][j+1] в позицию A[i][j]. То есть мы по сути «сдвинули» матрицу влево на один столбец.
4. Записываем в последний столбец матрицы А (в свободный, так как мы сдвинули матрицу влево на один столбец) содержание буфера BUFFER. Назовем этот алгоритм «Прокрутка информации».

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

Подключение матрицы к отладочной плате

Каждый из 16ти выводов матрицы пронумерован. В соответствии этим номерам были подпаяны и выведены 8 контактов, отвечающих за строки, и 8 контактов, отвечающих за столбцы. У меня, например, матрица подключена так:

Выводы, отвечающие за строки 23,25,27,29,31,33,35,37 – это номера выводов ножек микроконтроллера;
Выводы, отвечающие за столбцы 39,41,43,45,47,49,51,53 — это номера выводов ножек микроконтроллера.

Программирование

Программирование и прошивка микроконтроллера производится в среде разработки Arduino IDE.

Что необходимо знать для понимания кода программы, написанного ниже:

Функция pinMode()
Устанавливает режим работы заданного вход/выхода(pin) как входа или как выхода.
pinMode(pin, mode), где pin: номер вход/выхода(pin), который Вы хотите установить; mode: режим одно из двух значение — INPUT или OUTPUT, устанавливает на вход или выход соответственно.

Функция digitalWrite()
Подает HIGH или LOW значение на цифровой вход/выход (pin).
digitalWrite(pin, value), где pin: номер вход/выхода(pin); value: значение HIGH или LOW

Функция delayMicroseconds()
Останавливает выполнение программы на заданное в параметре количество микросекунд (1 000 000 микросекунд в 1 секунде).
delayMicroseconds(us), где us: количество микросекунд, на которое приостанавливается выполнение программы. (unsigned int)

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

В функции setup() производятся настройки портов ввода/вывода МК, настройка подключенных устройств к МК, периферии МК, а так же выполняется все то, что нужно выполнить ОДИН раз.
В функции loop() пишется тело программы, которое будет выполняться циклически, пока микроконтроллер включен.

Выполним настройку выводов микроконтроллера. Состояний портов ввода/вывода существует два вида: настроен на вход либо на выход. В нашем случае нужно настроить на выход.

Давайте теперь реализуем алгоритмы, которые я описал выше. Итак, мы имеем двухмерный массив:

Напишем функцию, которая реализует алгоритм «Вывод на экран».

Напишем функцию, которая реализует алгоритм «Прокрутка информации».

Теперь приведу полный код программы:

Вот и все. Заливайте эту программу в свой микроконтроллер и наблюдайте, как буква «А» будет «бежать» влево. Добавлю, что массивом размерностью 8 на 8 элементов ограничиваться не стоит. Например, я использовал массив размером 8 на 86. Написал в нем целую фразу, как видно на этом видео.

Читайте также: