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

Бегущая строка STX AVR 4RGY – PDF

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

Бегущая строка STX-1 модификации Hobby и Intro 1 June 2009 Схема бегущей строки STX-1 разрабатывалась с учетом минимальной себестоимости и простоты конструкции. Она обладает следующими возможностями: -программирование

Подробнее

Основные параметры некоторых микроконтроллеров семейства AVR Автор: Романов А.С (г. Чебоксары) Микроконтроллеры (далее МК) прочно вошли в нашу жизнь, на просторах интернета можно встретить очень много

Подробнее

СВЕТОВОЙ КОНТРОЛЛЕР V1.1 ТЕХНИЧЕСКОЕ ОПИСАНИЕ 1 Apr 2009 1.Общие сведения. Световой контролер (далее Контроллер) используется для воспроизведения световых эффектов. Он является автономным устройством и

Подробнее

Программатор AVR910-USB Внутрисхемный программатор для AVR екомплект поставки: Плата программатора в сборе Кабель для внутрисхемного программирования Кабель для подключения к USB порту компьютера Краткое

Подробнее

Демонстрационно-отладочная плата Eval17. Техническое описание. 1. Общие положения. Демонстрационно-отладочная плата Eval17 (далее Eval17) предназначена для демонстрации функционирования микроконтроллеров

Подробнее

Демонстрационно-отладочная плата Eval12. Техническое описание. 1. Общие положения. 1.1. Демонстрационно-отладочная плата Eval12 (далее Eval12) предназначена для: 1.1.1. Демонстрации функционирования микроконтроллеров

Подробнее

Устройство тестирования, зарядки и тренировки аккумуляторов (УТЗТА) Руководство пользователя Разработал: Соколов А.В. 10.09.2010 1 Введение. Устройство тестирования, зарядки и тренировки аккумуляторов

Подробнее

AVR-ISP500 ВВЕДЕНИЕ: AVR-ISP500 это USB внутрисистемный программатор для AVR микроконтроллеров. Он осуществляет протокол STK500v2, как это определено Atmel, что делает его совместимым с набором инструментов,

Подробнее

Содержание Назначение и принцип работы Методика проверки на соответствие электрическим параметрам Приложение 1. Модуль управления. Схема электрическая принципиальная. Приложение 2. Модуль управления. Перечень

Подробнее

АВТОМАТ УПРАВЛЕНИЯ ОСВЕЩЕНИЕМ СТАРТ-2 (перепрограммируемый) ИНСТРУКЦИЯ ПО ЭКСПЛУАТАЦИИ Харьков 2011 15 Оглавление Назначение 2 Состав устройства 2 Работа устройства 3 Программируемые функции 3 Программирование

Подробнее

CoLinkEX программатор/отладчик Инструкция по эксплуатации rev. A Оглавление CoLinkEX программатор/отладчик Инструкция по эксплуатации… 1 Оглавление… 2 Введение… 3 1. Особенности CoLinkEX программатора:…

Подробнее

Лаборатория электроники и программирования Электронный журнал с приложениями 1 Засыпкин С.В., 2011 Автор Засыпкин С.В. 1. Учебные занятия. 1.1. Программирование на языке С на примере микроконтроллера ATmega16A.

Подробнее

Демонстрационно-отладочная плата Eval15. Техническое описание. 1. Общие положения. 1.1. Демонстрационно-отладочная плата Eval15 (далее Eval15) предназначена для: 1.1.1. Демонстрации функционирования микроконтроллеров

Подробнее

Источник: https://docplayer.ru/27249757-Begushchaya-stroka-stx-avr-4rgy.html

Светодиодная бегущая строка (помогите разобраться)

Попросили меня помочь с бегущей строкой, ну такая, как в автобусах ставят, например. А именно: строка заточена под работу через интернет, а нужно ее «переточить», чтобы она данные барала просто с ПК (короче говоря выкинуть полностью часть с модемом).

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

Итак, кто поможет в реверс-инжиниринге? 🙂 А может кто с такими работал уже, и у вас есть информация, доки?

Для начала вот как оно выглядит: Затянуто вышло, зачем-то пытался чипы заснять, потом подумал, что проще будет сфотографировать… Питание 5 вольт.

Сама бегущая строка состоит из 3-х секций, соединенных последовательно. По 4 светодиодных матрицы 8×8 на каждой секции.

Так же на каждой секции присуствуют следующие элементы:

1) toshiba japan tb62706bng 5e9ka 2шт. — 16BIT SHIFT REGISTER, LATCHES & CONSTANT CURRENT DRIVERS

2) 74hc138d 1шт. — 3-to-8 line decoder/demultiplexer; inverting 3)in74ac244 1шт. — Octal 3-State Noninverting Buffer/Line Driver/Line Receiver Ну и несколько других деталюшек. Собственно фото крупные тут:

www.dropbox.com/gallery/26973339/1/ledstr?h=cde8a5

В первую секцию втыкается (в разъем 2×8 пин) блок управления, на нем присутствуют:

1) atmega128L-8au 1шт — так понимаю, она и командует парадом

2) at45db041b-tu 1шт — флеш-память 3) 74act244 1шт — Octal Non-Inverting Buffers/Line Drivers with 3-State Outputs 4) 74hc573d 1шт — Octal D-type transparent latch; 3-state

5) BSI BS62LV256SCP70 1шт — Very Low Power CMOS SRAM, 32K X 8 bit

6) motorola g24 data module model: f6423aac 1шт — модем Так же на блоке управления имеем разъем для симки и три штыревых разъема: 1) 2×8 — втыкается в бегущую строку На вид: два крайних левых контакта — минус питания следующие два слева — замкнуты между собой, идут к 74act244 затем следующие два по два вообще ни к чему не идут (на просвет не видно, плата на просвет вроде как двуслойная всего) затем следующие два — снова замкнуты, идут к 74act244 затем 4 контакта — идут к 74act244 два крайних правых — соответственно плюс питания

2) 2×3 — я сразу подумал «ISP», а нифига! На самом деле и правда ISP, а я опять — сам дурак.

Пока что вызвонил: — +питания — земля — 2 и 3 ноги меги — 11 нога меги SCK — 20 нога меги RESET 3) 1×4 — я сразу подумал «UART», а тоже мимо! — земля — 7, 8, и 9 ноги меги О_о Теряюсь в догадках, гм, может это разъем для покдлючения кнопок управления? При включенном питании на двух из них висит 3,3 вольта, а на последней 0,03 вольта. При беглом осмотре видно, что мега на прямую управляет: 1) модемом 2) BS62LV256SCP70 (кроме адреса) 3) флеш-память 4) 74act244 (74act244 далее подключена к разъему 2×8) 5) 74hc573d (74hc573d далее подключена к порту A (адрес) BS62LV256SCP70)

Варианты решения задачи:

1) Разобраться в системе команд родных мозгов и заставить их данные на строку выводить без коннекта по модему, просто с ком порта ПК 2) Если первый вариант обломается, полностью избавиться от мозгов (желтой платы), вместо них развести свою со своими мозгами

3) Update: написать собственную прошивку и залить ее в мозги, правда жалко тогда будет зря модем на платке простаивать

Перво-наперво, думается, нужно попробовать подключиться по UART. Видимо не выйдет, так как это не УАРТ оказался, а просто на нем же и ISP висит…

Кто что скажет, посоветует?

Update1: Так как разъем 2×3 таки оказался ISP, как я сначала и подумал, подключился к нему и слил прошивку (смотреть в аттаче, внизу). Вот тут бы мне, наверное, пригодились бы знания ассемблера и умения дизассемблировать и т.п., но, грешен — каюсь, я этого всего не знаю и не умею… В связи с этим появился 3 вариант решения (см. выше).

Заодно вот такие фузы: High C9 Low BF Ext FF Lock 3F

Update2: (Вот, появилось времячко, сел помозговать.) Как изначально и планировал — плюнул на родные мозги и стал изучать разъем 2×8 на предмет самостоятельного управления этой фигней.

На самом деле на этом разъемы мы имеем: > 2 линии — питание (5.2 вольт) > 6 линий — управление (все подтянуты резюками на 6 или 12 кОм к +, то есть управляем — перетягивая к минусу): >> 3 линии — управление строками 2^3=8 строк, т.е.

при их различной комбинации горит определенная строка >> 3 линии — управление столбцами (а тут имеем сдвиговый регистр): >>> 1 линия — данные >>> 1 линия — клок/такт >>> 1 линия — enable+latch Вот и всего делов 🙂 Алгоритм простой: 1) Отпускаем Enable 2) Выдаем 96 бит данных (первую строку) в линию данных (тактируем через клок) 3) Выдаем нужную комбинацию на линии управления строками, чтобы зажечь первую строку 4) Даем Enable 5) Повторяем пункты 1-4 для остальных 7 строк 6) PROFIT 🙂 Теперь надо железку разработать. То есть железка-то простая до мозга костей. Короче, пошел думать над железкой. В наличии есть меги 8 и 16, в идеале было бы сделать на V-USB, чтобы переходник на ком-порт не плодить, но это не так критично на самом деле. Ну и софт писать. 🙂

Update3: Рано я радовался, уточнил мне тут человечек, что ему нужно не просто с компа работать, а чтобы с компа только выгружать данные, а работать оно автономно потом должно. Елки…

Значит фишка простого решения в лоб уже не прокатит. Значит нужна память и т.п.

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

Update4: Хм, ну пока суд да дело (мне обещали программу выслать, которая формирует данные для строки, и с которой хотели как раз бы работать, жду), подзапилил своего кода немножко: заставил строку работать от своих мозгов (не не в прямом конечно смысле, хотя) с ПК (с программулины на Delphi).

Алгоритм такой: 1) Делфи выводит на картинку текст, далее побайтово картинку читает и отправляет эти байты (12×8=96) по UART 2) МК по прерыванию от таймера постоянно рисует то, что в 1 буфере на экран, а по прерыванию от UART пишет то, что пришло во 2 буфер 3) Как только 2 буфер полностью заполняется, МК меняет буферы местами 4) Делфи сдвигает надпись на картинке, и снова пункт 1 Вот что вышло: Бежит строка нормально, черные пропуски — это просто так частота камеры с обновлением строк совпала 🙂

Читайте также:  Изготовление трансформатора для ра

Update5: В итоге пришел к следующему: ATmega328 + SD карта. Кажется поставленная задача выполнена. Автономность и простота: берем SD карту, вставляем в ПК, в программе, которую мне предоставил владелец строки, создаем скрипт и сохраняем на карту (благо в той программе есть такая функция, хотя могли сделать и просто сохранение в файл, но нет же, только на карту памяти, причем с карты при этом все удаляется, накой черт? О_о). Далее запускаем небольшую программку, которая файл скрипта маленько модифицирует (уж больно у оригинального файла структура не оптимальная). Затем карту вставляем в бегущую строку, включаем строку, PROFIT? Кажется да.

Вот:

Update6 (последний): в качестве логического завершения прилагаю фото, как теперь сзади выглядит светодиодная строка:

Вроде даже вполне аккуратненько вышло, плохо правда, что платка с разъемом SD открытая, но мне откровенно говоря лень было придумывать к ней «упаковку»… Да и так всегда видна подпись «создателя» 😉
А вот мозги — внтури (фото не сделал почему-то).

Источник: http://we.easyelectronics.ru/JustACat/svetodiodnaya-beguschaya-stroka-pomogite-razobratsya.html

Термометр и бегущая строка в вентиляторе

Эффект “висящего в воздухе” текста или изображения завораживает. Устройств, использующих эффект “POV” (Persistence of vision) создано уже много. Вот еще одно, созданное с помощью AVR-BASCOM. Оно показывает температуру и бегущую строку над лопастями вентилятора.

Для создания устройства я выбрал вентилятор “VP-30C” фирмы “Fagor”. Он один из немногих настенных и имеет пульт д/у. При цене в 800р это просто подарок.

Схема устройства:

Процессор взят ATmega8L. Подойдет любой другой с объемом памяти не менее 8Кб и аппаратным SPI. Текст бегущей строки хранится в AT25256 (в нее уместился словарик на 1000 слов). Можно взять другие из 25 или 45 серий. Для измерения температуры выбран DS18B20 только из-за точности в 0,5 градуса. В качестве датчика положения – датчик Холла SS526D.

Он один из немногих имеет цифровой выход. Можно взять с аналоговым выходом или использовать пару ИК-светодиод-фотодиод с установкой на корпусе флажка-прерывателя. И то и другое потребует формирователя импульса. ВАЖНО!!! SS526D имеет дополнительную функцию – “направление движения”, поэтому требует ДВА магнита – “север” и “юг”.

Для индикации применены белые сверхяркие SMD-светодиоды шириной 1,5мм. В каждом разряде по два параллельно. Ток через пару около 100мА. По 50мА на светодиод – несколько многовато, но допустимо, учитывая импульсный режим их работы и хороший обдув. На время наладки устройства рекомендую, все-таки, установить токоограничительные резисторы по 100 Ом вместо штатных 47 Ом.

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

Типоразмеры их у меня оказались разными, но здесь это не столь важно. Ток для питания схемы вырабатывает генератор из 8 катушек, вращающихся над восьмиполюсным магнитом от тонвала видеомагнитофона. Для изготовления катушек использованы выходные трансформаторы от телефонов PANAFON. Они имеют размер 10х10мм. Замыкающие пластины убираются, оставляются только Ш-образные.

На каркас наматывается 1200 витков провода ПЭВ-0,1. Трансформаторы приклеиваются на плату по кругу через 45 градусов. Соседние катушки соединяются встречно-последовательно. Образованные таким образом четыре пары соединяются параллельно. Готовый генератор должен выдавать около 8 вольт на холостом ходу и не менее 5 вольт при токе нагрузки 150мА.

Для стабилизации напряжения применен аналог мощного стабилитрона на VR1-TL431 и Q1-2SB962. Обух корпуса (коллектор) Q1 припаян к шине массы и, поэтому, не требует радиатора. Выпрямительные диоды – SS12. Можно использовать любые Шоттки на ток не менее 0,5А. Дроссель L1 не менее 10мГ и должен быть рассчитан на ток до 800мА.

Соединения дачиков температуры и Холла с процессором, учитывая сильные магнитные наводки в плате, выполнены экранированным проводом. Плата устройства:

Кронштейн покрашен под цвет лопастей крыльчатки:

Для балансировки платы использованы ось и подшипники от головки видеомагнитофона. (Противовесы из припоя – регулировка паяльником):

Плата привинчена к крыльчатке шестью саморезами:

 

После сборки еще раз балансируем:

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

Восьмиполюсной магнит к пластиковой гайке крепления задней сетки приклеен “Квинтолом” (другого под рукой не было). Вообще-то он не клеит ферриты и полиэтилен, но как ни странно, держит:

Задняя сетка установлена и закреплена гайкой с магнитом. На ось надеты текстолитовые шайбы для установки зазора между магнитом и катушками. Магнит для датчика положения состоит из двух половинок север-юг (слева от оси):

Крыльчатка надета на ось и закреплена гайкой:

Текст бегущей строки набирается обычным “Блокнотом” WINDOWS. Каждая фраза с новой строки:

Каждая новая фраза от предыдущей отделяется шестью пробелами, для удобства восприятия. Следует заметить, что “Блокнот” каждую строку завершает байтом “0D” – Carriage Return и “0A” – Line Feed, “AkelPad” – только Line Feed, “Word” при сохранении в “txt”- формате спрашивает, чем завершать строку.

Наше устройство при индикации заменит эти символы пробелами, таким образом, их станет 6+2=8 или 6+1=7 (для “AkelPad”). Размер файла текста должен быть точно равен 32768 байт. Для прошивки его в AT25256 (например, программатором PONYPROG) следует поменять расширение “txt” на “bin”.

При прошивке процессора достаточно одного фьюза – внутренний RC-генератор на 8МГц. Можно еще BOD на 2,7В.

Пояснения к программе: Текст воспроизводится восемью сдвоенными светодиодами Led0-Led7. Круг разделен на 256 секторов. 8-разрядный таймер0 используется для подсчета времени оборота между импульсами датчика Холла. Работает он на частоте 31250Гц (8МГц/256). При скорости вращения 600…

3000 об/мин восьми разрядов недостаточно (за один оборот число импульсов может превысить 3000), поэтому использована переменная T0_slave для регистрации кол-ва переполнений таймера. По окончании оборота содержимое T0_slave заносится в регистр Compare1a таймера1. 16-разрядный таймер1 работает на частоте 8Мгц (т.е. в 256 раз выше таймера0) в режиме сравнения.

В подпрограмме обслуживания его прерываний происходит отображение данных текущего сектора. По достижении Compare1a таймер сбрасывается и начинает отображение нового сектора. После 244 сектора таймер останавливается и программа ожидает завершения оборота. С приходом импульса от датчика Холла программа возвращается к нулевому сектору.

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

В установившемся режиме это вообще не сказывается на картинке, а при торможении/ускорении соответственно расширение/сужение текста составляет менее 1%, что практически не заметно на глаз (см. working.avi начиная с 40 секунды). В переменной Transfer хранится кол-во оборотов. На 0-м обороте происходит запрос DS18B20 на измерение температуры.

На 60-м обороте (по прошествии более 3 сек) эта температура считывается, преобразуется в десятичный вид и отображается. Еще через 18 оборотов переменная Transfer сбрасывается в 0 и процесс повторяется снова. Время 3 секунды необходимо для исключения “мельтешения” показаний, кроме того, DS18B20 требует до 0,75сек для измерения, что с запасом перекрывает это время.

Шина 1-wire довольно медленная, поэтому обмен по ней происходит между 224 и 244 секторами, когда изображение не выводится. Считывание данных из AT25256 происходит аппаратным SPI : по Spiout посылается адрес байта, по Spiin – байт принимается. Обмен происходит на скорости 2Мгц (строка “Clockrate = 4”).

Если Ваша микросхема поддерживает скорость обмена в 4Мгц, то можно установить флаг регистра “Spsr = 1” (удвоение скорости SPI). Данный вентилятор имеет три скорости. На первой скорости (самой медленной) напряжения, вырабатываемого генератором, оказалось недостаточно, поэтому на ней отображается только температура (строка If Compare1a > 1950).

И даже при этом напряжение составляет около 3,5В и светодиоды горят не в полную силу. На второй скорости отображается и температура и текст, но без подсветки (строки Compare1a < 1720). Напряжение полное - 5В - светодиоды горят в полный накал. На третьей скорости запаса напряжения хватает на подсветку текста. Температуру - синим, латиницу- красным, киррилицу - зеленым.

Читайте также:  Подсветка для выключателя

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

ПОЭТОМУ, прежде чем повторять этот проект, сначала соберите “обратный” стендик – магнит вращается, а плата с катушками закреплена. Так можно замерить напряжения, проверить под нагрузкой и т.д. В знакогенераторе пропущены некоторые редкоупотребляемые символы (представлены пробелом), поэтому при наборе своих текстов удостоверьтесь в их наличии и, при необходимости, отредактируйте знакогенератор.

Архив с программой и всем остальным.

Удачи в творчестве! MrShilov.

Источник: http://bascom.at.ua/publ/termometr_i_begushhaja_stroka_v_ventiljatore/1-1-0-21

Проект “Бегущая строка с механической разверткой”

МУНИЦИПАЛЬНОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ ДЕТЕЙ

«ДОМ ДЕТСКОГО ТВОРЧЕСТВА ИМЕНИ Л.Ю. КАРКОВОЙ»

Выполнил: Ермаков Андрей

Руководитель: Князьков И.П.

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

Один “пустой” столбец между ними разделяет символы. Такое устройство можно изготовить из микросхемы ПЗУ, к восьми выходам которой подключены светодиоды, и генератора тактовых импульсов со счетчиком, перебирающим адресные сигналы на входах ПЗУ.

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

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

Необходимую для изображения того или иного символа последовательность вспышек светодиодов микроконтроллер формирует самостоятельно. Управление светодиодами организовано так, что при вращении платы с частотой 20 с-1 за один ее оборот можно отобразить до 50 символов.

Схема устройства изображена на рис. 1

Фото печатной платы — на рис. 2.

Микроконтроллер DD1 работоспособен в указанном на схеме интервале напряжения питания. Светодиоды в чип-корпусе от подсветки LCD сотового телефона — белого цвета свечения. Их можно заменять любыми с максимальным углом излучения.

В зависимости от типа примененных светодиодов и напряжения питания ограничительные резисторы R1—R8 следует подобрать такими, чтобы ток через светодиоды не превышал допустимого для них и выходов микроконтроллера значения (обычно 20 мА).

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

      Конструкция “бегущей строки” показана на рис. 3.

В качестве привода применен электродвигатель от компьютерного жесткого диска, с ротора которого удалены магнитные диски. Оставлена только плата управления. Частота вращения вала должна находиться в пределах 1000…3000 мин”1. Это достигается применением регулируемого блока питания.

Один из трудоемких элементов конструкции — узел подвода питающего напряжения к вращающейся плате.

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

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

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

ЛИТЕРАТУРА1. Гирлин А. Световое табло с круговой механической разверткой. — Радио, 2007, № 9, с. 45—48.

2. Мельник В. Пишем в воздухе свето-диодами. — Радио, 2006, № 10, с. 59, 60.

3. А. БЕСПЛЕМЕННОВ, г. Владикавказ
“Радио” №2 2009г.

Источник: https://infourok.ru/proekt-beguschaya-stroka-s-mehanicheskoy-razvertkoy-919836.html

Бегущая строка на AT90S2313 (ATtiny2313)

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

К сожалению,так как размер EEPROM AT90S2313 – 128 байт,удалось реализовать вывод сообщения длинной всего 125 символов.Протокол обмена по RS232 реализован тоже не лучшим образом. Нет обратной связи МК с PC и поэтому нет контроля передаваемых данных.

Другими словами – сообщение с компьютера в устройство иногда передается с ошибками.

Изначально идея проекта строилась на том,чтобы подключить к МК матрицу светодиодов (слева).

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

Из подручных деталей была собрана следующая схема:

  • Для вывода информации на столбцы индикатора – применен сдвиговый регистр с последовательной загрузкой и параллельной выгрузкой данных,собранный на пяти микросхемах 74HC595.
  • Для управления строками индикатора – применен дешифратор 74HC259.
  • Сборка транзисторов ULN2003 используется для “умощнения” выходов дешифратора. Т.к. максимальный ток строки индикатора может достигать 400 мА.
  • На микросхеме DA1 собран типичный стабилизатор напряжения +5V.
  • Транзистор VT1 используется для согласования уровней RS232 и AVR при подключении к PC.

Вывод информации на индикатор осуществляется построчно. Таким образом для управления индикатором достаточно всего шести выводов микроконтроллера. Программа для МК написана на Си с использованием компилятора CodeVision.

  Работает это гениальное суперустройство следующим образом:Сообщение для вывода на индикатор хранится в энергонезависимой памяти МК (EEPROM).После подачи питания – сразу же осуществляется вывод записанного в EEPROM сообщения на индикатор в режиме “бегущей строки”. Индикация сообщения осуществляется циклически,т.е.

по окончании сообщения оно снова выводится на индикатор,начиная с первого символа. И так до бесконечности.Для замены сообщения в EEPROM необходимо запустить на PC прилагаемую программу “Посылатель”, набрать в ней текст требуемого нового сообщения. Соединить устройство и PC кабелем и нажать на кнопку SB2 устройства.

После нажатия устройство выведет на индикатор служебную строку “ПРИЕМ СООБЩЕНИЯ” и перейдет в режим приема сообщения с PC. Далее в программе “Посылатель” нажать на кнопку “ПОСЛАТЬ” и новый текст сообщения будет отправлен в устройство и сохранен в его энергонезависимой памяти.

После приема сообщения устройство выдаст служебную строку “ПРИЕМ ЗАВЕРШЕН” и вернется в основной режим работы циклицеского вывода записанного сообщения.

Если по каким то причинам требуется отказаться от замены сообщения – необходимо еще раз нажать на кнопку SB2. На индикатор будет выведена служебная строка “ПРИЕМ ОТМЕНЕН” и устройство перейдет в основной режим работы.

Примечания:
1)В данной версии прошивки для вывода на индикатор поддерживаются только буквы русского алфавита а также знаки точка, запятая, восклицательный и вопросительный. Всю таблицу поддерживаемых символов можно увидеть в файле “Codepage.

h” в прилагаемом архиве “RunRow.rar”. Программа “Посылатель” не даст передать символы неподдерживаемые системой.
2) Как уже говорилось выше – иногда сообщение может передаваться с ошибками,т.к. нет контроля передаваемых данных.

При ошибочной передаче сообщения необходимо просто повторить передачу еще раз. 

Программа занимает 1480 байт ПЗУ микроконтроллера,таким образом имеется возможность улучшения устройства – добавления новых сиволов для отображения,введения проверки передачи и т.д.

А теперь фоты:

Прошивка, плата (под утюг) и программа есть тут.

Вопросы, как обычно – на Форум.

Источник: http://payalo.at.ua/index/0-184

Использование 16-bit Timer/Counter1 для измерения и подсчета импульсов | avr | programming

16-битный таймер-счетчик 1 (16-bit Timer/Counter1) микроконтроллера ATmega32A позволяет точно вычислять время выполнения программы (может использоваться для обработки событий, event management), генерации звука, измерения длительностей цифровых сигналов.

Упрощенная блочная диаграмма 16-bit Timer/Counter показана на рисунке. Для того, чтобы определить действительное назначение выводов, относящихся к счетчику, см. даташит микроконтроллера, в котором имеется разводка выводов кристалла (Pinout ATmega32A).

Пояснения к диаграмме: буква n в именах регистров и битов может быть заменена на цифру 0, 1 или 2, в зависимости от того, какой счетчик используется – в разных моделях микроконтроллеров AVR может быть разное количество счетчиков с разными номерами. В нашем примере будет использоваться 16-bit Timer/Counter1 микроконтроллера ATmega32A, поэтому n=1.

[Измерение длительности импульсов с помощью 16-bit Timer/Counter1]

Импульсы можно регистрировать аппаратно (и измерять их длительность), если подать цифровой сигнал на вывод ICP1.

Регистрация импульсов в даташите Atmel также называется “захватом событий” (capture event) и “захватом по входу” (Input Capture).

Читайте также:  Преобразователь напряжения на микросхеме ir2153

Отсюда понятна аббревиатура ICP1 – Input Capture Pin 1: ножка захвата, относящаяся к таймеру/счетчику 1.

Для микроконтроллера ATmega32A в корпусе TQFP44 ножкой ICP1 будет порт PD6, ножка 15 корпуса TQFP44, у макетной платы AVR-USB-MEGA16 [2] это будет контакт P21.

Для измерения длительности импульсов нужно сделать следующее:

– Настроить тактирование таймера 1 от внутреннего тактового генератора.- Создать обработчик прерывания для события захвата (Timer/Counter1 Input Capture Interrupt) и разрешить прерывание по событию захвата.

– Разрешить работу узла захвата по входу ICP1.

Настройка тактирования таймера и разрешение работы узла захвата производится записью в соответствующие регистры (см. раздел “Регистры 16-bit Timer/Counter 1”). В обработчике прерывания Input Capture нужно сохранить или проанализировать значение счетчика, чтобы по нему определить длительность входного импульса.

[Подсчет импульсов с помощью 16-bit Timer/Counter1]

Импульсы можно считать аппаратно, если подать цифровой сигнал на вывод T1. У микроконтроллера ATmega32A это порт PB1, ножка 41 корпуса TQFP44, контакт P9 макетной платы AVR-USB-MEGA16.

Чтобы подсчитывать импульсы, нужно сделать следующее:

– Настроить тактирование таймера/счетчика 1 от входа T1.- Настроить обработчик прерывания по переполнению таймера/счетчика (Timer/Counter1 Overflow Interrupt).

– Организовать в программе анализ и сброс значения таймера/счетчика 1.

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

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

Пример измерения частоты на входе T1

//Инициализация таймера/счетчика 1 для подсчета частоты. void freqmeterInit (void) { TCCR1B = (1

Источник: http://microsin.net/programming/AVR/atmega-ct1-pulse-counting.html

Инструкция по программированию светодиодных бегущих строк с управляющими платами BX 5-й серии. Программа LedshowTW 2013

Рассмотрим программирование строки на следующем примере:

Строка 3 модуля в высоту (48 см.-48 диодов) и 7 модулей в ширину (2 метра 24 см.-224 диода)

Управляющая плата:

Цвет один (красный)

Ввод параметров бегущей строки (нужен один раз, потом программа запоминает его) 

Наверх.

Запускаем программу

Нажимаем в ниспадающем меню “Настройки/настройки параметров экрана”

Вводим пароль

Появляется окно как на картинке выше

Имя экрана – вводим “пробный” (по большому счету все равно)

Контроллер

Указываем ширину 224 высоту 48 диодов

Цвет экрана – Single Color (один цвет, для этой платы он стоит по умолчанию)

Остальное оставляем как есть. Нажимаем “Save”  и “Закрыть”.

Начальные параметры заданы.

3. Вывод информации на светодиодный экран. 

Наверх.

После ввода начальных параметров видим вот такое окно:

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

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

Картинки/текста: “Добавить зону Картинки/Текста” 

Субтитра: “Добавить зону Субтитра”

Анимации: “Add Animation Zone”

Циферблата: “Добавить зону Циферблата”

Даты-Времени: “Добавить Зону Даты-Времени”

Таймера: “Добавить Зону Таймера”

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

щелкаем правой кнопкой мыши на названии программы и выбираем “Добавить зону картинки/текста”

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

Для примера зададим три зоны:

1. Добавление растрового логотипа. Наверх.

 В левый верхний угол добавим растровый логотип. (Файл логотипа для примера можете скачать здесь или подготовьте сами, у меня программа корректно читала только файлы в цветовой схеме RGB).

Для этого в окне программ становимся на пункт “программа1”, щелкаем правой кнопкой мыши и выбираем “добавить зону картинки/текста”. Ставим следующие параметры:

  • Имя: “Логотип”
  • Координата Х: “0”
  • Координата Y: “0”
  • Ширина: “64”
  • Высота: “32”
  • Нажимаем пинктрогамму “открыть”  в Зоне управления изображением. Выбираем растровый файл предназначенный для показа и нажимаем “Открыть”
  • Метод отображения “Random”
  • Скорость выполнения: “2”
  • Время удержания: “3”

Все. Нажимаем “Предварительный просмотр” и любуемся результатом.

2. В левый нижний угол добавим отображение даты и времени. Наверх.

Для этого так же в окне программ становимся на пункт “программа2”, щелкаем правой кнопкой мыши и выбираем “Добавить зону даты-времени”

Ставим следующие параметры:

  • Имя: “Время-1”
  • Координата Х: “0”
  • Координата Y: “32”
  • Ширина: неактивна, задается автоматически в зависимости от отображаемых параметров и размеров шрифтов
  • Высота: “32”
  • Расположение: “много линий” (если поставить в одну, будет одна длинная строка)
  • Шрифт “Tahoma” (можете поставить любой другой)
  • Размер шрифта: “10” (высота в пикселях, большая буква будет высотой 10 диодов)
  • Форматирование текста: по желанию, интерфейс там как в Ворде
  • Статический текст. Если поставить здесь галочку, можно написать заголовок. Например: “Московское время”. К сожалению на нашем экране будет тяжело поместить эту надпись, посему игнорируем.
  • Дата. Здесь есть множество форматов отображения даты, но привычных русскому человеку не так много
  • День недели. В моей версии программы дни недели написаны по английски. Пропускаем.
  • Время. Выбираем формат, который не сильно будет резать глаз.

Ну и снова нажимаем “Просмотр” и любуемся.

3. Текстовая бегущая строка. Наверх.

Ну и в оставшееся поле добавим какую-нить информацию.

Для этого в окне программ становимся на пункт “программа1”, щелкаем правой кнопкой мыши и выбираем “добавить зону субтитра”. Ставим следующие параметры:

  • Имя: “Основной текст”
  • Координата Х: “64”
  • Координата Y: “0”
  • Ширина: “192”
  • Высота: “64”
  • Нажимаем пинктрогамму “Текст”  в Зоне управления изображением. 
  • В появившемся окне в “Зоне ввода текста” набираем текст.
  • Выделяем набранный текст мышкой, ставим размер 62 (высота строки 64)
  • Нажимаем “сохранить” и сохраняем текст.
  • Закрываем окно

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

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

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

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

Выгрузка через USB

Выгрузить полученный результат достаточно просто: Вставляем флешку отформатированную в формате FAT32 в разъем и нажимаем пинктрограмму “Save configuration to the U-disk”. Перед нами появляется вот такое окно:

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

2. Синхронизация времени. Если стоит галочка “Correction time” текущее время компьютера (3) будет записано на флеш-карту и когда Вы будете перегружать его в плату бегущей строки, оно оттуда перепишется. Но поскольку нужно какое то время что бы дойти до строки и вставить флешку, нужно в этом окне ввести это время (прибавится к текущему). 

3. Текущее время копьютера для коррекции времени бегущей строки (см. п. 2)

4. Кнопка “Сохранить”, когда Вы ее нажмете, информация сохранится на флешку.

5. Примерно такая надпись должна появиться если все прошло хорошо

После загрузки вытаскиваем флешку. При включенной светодиодной бегущей строке вставляем в разъем, наблюдаем пока не прекратятся мигания экрана и все. Вытаскиваем флешку и строка заработала!!!

Выгрузка через безпроводную сеть WiFi

Нужно попасть в зону действия сети WiFi контроллера бегущей строки. Подключится к сети, которая начинается на BX-WiFi-…….

(интернет при этом работать скорее всего не будет). После этого нажать кнопку “Выгрузить” . Если все сделано правильно внизу, в строке состояния появятся надписи которые отображают процесс загрузки

………………………………………………………………………………………………………………………………….

Типовые ошибки:

  • Неправильно указан тип платы. Если у Вас в документах не указано название управляющей платы, его можно найти на самой плате.
  • Несовместимый тип платы. Платы серии BX, не единственные, есть множество других решений, не совместимых между собой. Подключить плату другого производителя к программе ЛЕД-Шоу как правило заканчивается просто потрепанными нервами.
  • Неправильно указаны размеры строки в пикселях. Обратите на это внимание
  • Пересекаются зоны картинки-текста. В этом случае в процессе выгрузки программа выдаст сообщение об ошибке на английском языке.

 Наверх.

Источник: http://xn--80aanufhx.name/led-system/179

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