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

Характеристики светодиодного матричного дисплея

  • Формат матрицы 40×7 точек;
  • Отображение времени, даты, внутренней и наружной температуры, текстовых сообщений;
  • Автоматический переход с зимнего на летнее время и наоборот;
  • Часы реального времени работают без внешнего питания более одной недели;
  • Измерение температуры внутри помещения (0…+75) °С, точность ±0.5 °С;
  • Измерение уличной температуры (–40…+75) °С, точность ±0.5 °С;
  • Поддержка статических и динамических сообщений с различными эффектами;
  • Полный набор символов кириллицы и специальных символов;
  • Память для 10 сообщений, до 250 символов в каждом;
  • Автоматическая регулировка яркости;
  • ИК-пульт дистанционного управления для настройки сообщений;
  • Напряжение питания: 12…24 В постоянного тока;
  • Размер передней панели 305 × 69 мм.

Принципиальная схема


Кликните для увеличения
Принципиальная схема блока управления

Загрузить схему в формате PDF

Устройство состоит из двух частей: блока управления и блока отображения. Две печатных платы соединяются друг с другом с помощью пары двухрядных разъемов и разделяются четырьмя втулками. Один из разъемов служит для передачи электрических сигналов, другой используется только как механический соединительный элемент.

Основным компонентом устройства является микроконтроллер PIC18F252 (U9). Он управляет всеми функциями и осуществляет алгоритм управления светодиодной матрицей.

Светодиоды соединены матрицей 40×7. Соединенные вместе катоды образуют столбцы матрицы, а аноды – строки. Матрица управляется динамически – строка за строкой. Светодиоды матриц переключаются специализированными микросхемами драйверов STP16CP05 (U101…U103) производства фирмы ST Microelectronics.

Надписи на фото

Каждая из этих микросхем содержит 16-битный регистр сдвига с последовательным входом и параллельным выходом, и регистр-защелку с 16 выходами. Выходы этого регистра с открытым стоком позволяют подключать нагрузку с напряжением питания до 20 В. Постоянный ток выходов варьируется от 5 до 100 мА и регулируется внешним резистором (R115…R117). Три светодиодных драйвера соединены каскадно (один за другим) и управляются микроконтроллером по интерфейсу SPI. Микроконтроллер посылает 48-разрядное слово, загружая одну строку. 40 младших разрядов представляют собой состояние светодиодов строки (1-вкл., 0-выкл.). 7 старших разрядов служат для управления анодами через 7 транзисторных ключей (VT101…VT107). 40-й бит остается неиспользованным. Микроконтроллер посылает 48-битовое слово через каждую миллисекунду.

За 7 циклов отображаются строки с первой по седьмую, затем идет 8-й дополнительный цикл, используемый для измерения температуры. Таким образом, частота обновления дисплея равна 125 Гц. Для регулировки яркости дисплея используются управляющие входы микросхем «разрешение выходов» (ОЕ). Каждый строчный цикл начинается с установки «лог. 0» на выводе OE (выходы разрешены). Длительность этого сигнала, который генерируется ШИМ модулем микроконтроллера, изменяется, в зависимости от желаемой яркости.

Необходимо отметить, что номера столбцов и строк матрицы не соотносятся с соответствующими выводами микросхем (U101…U103). Это сделано для упрощения разводки печатных плат. Биты, соответствующие определенным светодиодам, формируются на программном уровне.


Кликните для увеличения
Принципиальная схема светодиодного табло

Загрузить схему в формате PDF

Часы реального времени и календарь

Часы реального времени реализованы на микросхеме U10 – PCF8583. Она содержит непосредственно часы со всеми необходимыми счетчиками и регистрами, календарь, будильник, генератор 32768 Гц и цепи интерфейса I 2 C. Ее энергопотребление является очень низким (порядка 10 мкА), а напряжение питания может находится в диапазоне 1…6 В. Такие характеристики гарантируют функционирование в течение длительного времени при использовании небольшой литиевой батарейки, или даже накопительного конденсатора. Разработанная печатная плата предусматривает оба варианта.

Типоразмер литиевой батарейки – 2032. При экспериментальной установке конденсатора емкостью 1 Ф, после отключения питания часы шли более недели. Для уменьшения прямого падения напряжения VD10, VD11 и VD12 должны быть диодами Шоттки. Подстроечный конденсатор C21 используется для установки частоты генератора 32768 Гц. Для связи по шине I 2 C используется модуль синхронного последовательного порта (MSSP) микроконтроллера PIC18F252. Модуль работает в режиме «ведущий». К той же шине может быть подключена внешняя память EEPROM (U11) для увеличения объема сохраняемых данных. В представленной версии прошивки микроконтроллера дополнительная память не требуется, поэтому устанавливать микросхему U11 не нужно.

Измерение температуры

Для измерения температуры воздуха используются датчики LM35 (U5, U6). Они откалиброваны непосредственно в градусах Цельсия. Выходной сигнал имеет коэффициент 10 мВ/°C. Напряжение питания должно быть между 4 и 30 В. Для измерений в полном диапазоне температур к выходам датчиков через резисторы R4 и R5 должно быть приложено отрицательное напряжение. Для этого нижние выводы датчиков подключаются к аналоговой земле через два диода (VD4, VD5 и VD6, VD7), которые поднимают ее потенциал примерно до 1.4 В. При таком включении датчиков напряжения источника +5 В для их питания будет недостаточно, поэтому в схему добавлен стабилизатор U1 (78L09).

Читайте также:  Госуслуги личный кабинет вход по номеру телефона

Сигнал с датчика снимается между его выходом и отрицательным контактом. Напряжение между этими двумя выводами пропорционально величине температуры, а его знак (+ или –) говорит о характере температуры (выше или ниже 0 °С). Датчики подключаются к устройству трехпроводными кабелями. Программное обеспечение разработано так, чтобы измерять внутреннюю температуру с помощью U6, а внешнюю – U5.

Аналого-цифровой преобразователь

Выходы обоих датчиков LM35 подключены к микросхеме U4 – MCP3302. Это АЦП последовательного приближения. Он обеспечивает измерения с разрешением 13 бит (12 бит плюс бит знака). MCP3302 имеет 4 аналоговых входа, которые могут быть сконфигурированы либо как 4 отдельных, либо как 2 дифференциальных. В данной схеме для преобразования биполярного напряжения от датчиков температуры LM35 используется вариант с двумя дифференциальными входами. Опорное напряжение для датчиков вырабатывает микросхема U7 – LM336.

С помощью подстроечного резистора RP1 опорное напряжение устанавливается равным 2.55 В. Диоды VD8 и VD9 нужны для температурной компенсации. MCP3302 имеет интерфейс SPI, использующий четыре сигнальных линии. По этим линиям микроконтроллер (U9) осуществляет управление АЦП. Для повышения точности измерений аналоговая земля развязана с цифровой с помощью небольшой индуктивности (L6). Это ферритовый дроссель для поверхностного монтажа Z600 типоразмера 0805. Такие же дроссели применены для развязки питания АЦП, датчиков температуры и источника опорного напряжения (L4 и L5).

Управление яркостью

Для автоматической регулировки яркости дисплея используется интегральный датчик освещенности U8 (TSL257). Его выходное напряжение прямо пропорционально интенсивности света, попадающего на встроенный фотодиод. Это напряжение измеряется собственным АЦП микроконтроллера. От измеренного значения зависит скважность ШИМ модуля микроконтроллера, отсюда происходит изменение яркости свечения светодиодной панели. Чтобы избежать нежелательных флуктуаций яркости, программным способом вводится небольшая задержка управления ШИМ модулем.

Функции дисплея

Настройки дисплея осуществляются пользователем посредством трех кнопок S1…S3. Названия этих кнопок таковы:

Настройка часов

Для входа в режим настройки нажмите один раз кнопку «Установка». На дисплее появится надпись «Settings» . Для установки времени и даты нажмите кнопку «Вверх» или «Вниз», чтобы появилась надпись «Set time» . Опять нажмите кнопку «Установка» и дисплей покажет текущее время, где цифры часов будут мигать. Используйте кнопки «Вверх» или «Вниз» для установки текущего часа. Затем нажмите кнопку «Установка» для ввода минут. Когда текущее время в минутах установлено, дисплей переключается к настройке даты. Последовательно установите день, месяц и год и нажмите кнопку «Установка», чтобы завершить процесс настройки. Программа автоматически вычислит день недели.

Если дата выбрана неправильно (например, 29.02.10), на дисплее на некоторое время появится сообщение « ERROR », а затем программа вернется в начало настройки даты. Если дата установлена правильно, на дисплее появится установленное время с мигающим «ОК» , и программа будет ожидать подтверждения новых значений времени и даты. Если при этом нажать кнопку «Вверх», новые значения проигнорируются и программа возвратится в режим «Settings». Если будет нажата кнопка «Вниз», устройство вернется на первый шаг процедуры «Set time». При нажатии на кнопку «Установка», новые значения времени и даты принимаются, секунды сбрасываются и дисплей переходит в обычный режим. Программа автоматически переводит часы на летнее время (+1 час). Это происходит в последнее воскресенье марта в 3:00 утра. Возврат на зимнее время (–1 час) осуществляется в последнее воскресенье октября в 4:00 утра.

Окончание следует

Перевод: Андрей Гаврилюк по заказу РадиоЛоцман

Это модифицированная версия проекта бегущая строка на PIC16F628. Данное устройство воспроизводит текст на светодиодной матрице 8x 80 светодиодов, имеет память текста 128 символов, которые загружаются с компьютерной клавиатуры PS/2, подключенной прямо к бегущей строке.

Читайте также:  Как вернуть значок плей маркета на экран

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

Микроконтроллер работает на частоте 20 МГц и управляет сдвиговыми регистрами 74HC595D, которые логическим уровнем 1 зажигает светодиодные матрицы строк, а дешифратор К555ИД7 или его полный аналог 74LS138 управляет через усилительные транзисторы 8-мю столбцами всех матриц.

Матрицы подключаются к сдвиговым регистрам 74HC595D через резисторы, которые защищают от перегорания светодиодов, ограничивая ток.

Микросхемы 74HC595D имеют 8 триггеров фиксации данных на выходах, соединенных с матрицей светодиодов и 8 сдвиговых триггеров, в которые через 14 вход загружают данные и с 9 выхода продолжают сдвиг дальше на следующие регистры цепочки из 10 штук.

Для этого сдвига необходим такт, идущий от процессора на все входы 11- 74HC595D после каждого 80-того такта цепочка регистров продвигается до 80 триггера всех 74HC595D, после этого как загружена вся строка из 80 триггеров, подается еще один тип такта, уже на входы 12 всех 74HC595D, после чего загружаются за один такт 8 дополнительных триггеров фиксации данных на выходах, соединенных с матрицей светодиодов от сдвиговых триггеров, на всех 74HC595D за один такт, матрица при этом засвечивает одну полосу из 80 светодиодов и засветка эта происходит без изменений логических уровней даже тогда, когда загружаются сдвиговые регистры.

Так перебираются по очереди 8 строк из 80 светодиодов с помощью дешифратора К555ИД7 с большой скоростью, что совершенно не видно глазу.

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

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

Управление и ввод данных

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

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

Для ввода знаков (!@#$%:?) нужно нажать левый Shift и отпустить потом клавиши с цифрами 1234567 над буквами там они нарисованы – это чтобы вам не искать.

Знак тире (-) просто нажав клавишу рядом с нулем.

Для ввода точки или запятой нажимать клавишу рядом с буквой Ю, если запятая, то вначале Shift.

Бегущая строка с компьютерной клавиатурой и памятью на 8192 буквы

В дальнейшем, был разработан еще один вариант бегущей строки с памятью на 8192 буквы. В данном проекте буквы также загружаются с компьютерной клавиатуры PS/2, в флэш память 24С62. Очень удобно иметь несколько микросхем и менять их если нужен другой текст.

Принципиальная схема бегущей строки с памятью:

Читайте также:  Игры для старых приставок

Это модифицированная версия проекта бегущая строка на PIC16F628. Данное устройство воспроизводит текст на светодиодной матрице 8x 80 светодиодов, имеет память текста 128 символов, которые загружаются с компьютерной клавиатуры PS/2, подключенной прямо к бегущей строке.

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

Микроконтроллер работает на частоте 20 МГц и управляет сдвиговыми регистрами 74HC595D, которые логическим уровнем 1 зажигает светодиодные матрицы строк, а дешифратор К555ИД7 или его полный аналог 74LS138 управляет через усилительные транзисторы 8-мю столбцами всех матриц.

Матрицы подключаются к сдвиговым регистрам 74HC595D через резисторы, которые защищают от перегорания светодиодов, ограничивая ток.

Микросхемы 74HC595D имеют 8 триггеров фиксации данных на выходах, соединенных с матрицей светодиодов и 8 сдвиговых триггеров, в которые через 14 вход загружают данные и с 9 выхода продолжают сдвиг дальше на следующие регистры цепочки из 10 штук.

Для этого сдвига необходим такт, идущий от процессора на все входы 11- 74HC595D после каждого 80-того такта цепочка регистров продвигается до 80 триггера всех 74HC595D, после этого как загружена вся строка из 80 триггеров, подается еще один тип такта, уже на входы 12 всех 74HC595D, после чего загружаются за один такт 8 дополнительных триггеров фиксации данных на выходах, соединенных с матрицей светодиодов от сдвиговых триггеров, на всех 74HC595D за один такт, матрица при этом засвечивает одну полосу из 80 светодиодов и засветка эта происходит без изменений логических уровней даже тогда, когда загружаются сдвиговые регистры.

Так перебираются по очереди 8 строк из 80 светодиодов с помощью дешифратора К555ИД7 с большой скоростью, что совершенно не видно глазу.

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

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

Управление и ввод данных

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

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

Для ввода знаков (!@#$%:?) нужно нажать левый Shift и отпустить потом клавиши с цифрами 1234567 над буквами там они нарисованы – это чтобы вам не искать.

Знак тире (-) просто нажав клавишу рядом с нулем.

Для ввода точки или запятой нажимать клавишу рядом с буквой Ю, если запятая, то вначале Shift.

Бегущая строка с компьютерной клавиатурой и памятью на 8192 буквы

В дальнейшем, был разработан еще один вариант бегущей строки с памятью на 8192 буквы. В данном проекте буквы также загружаются с компьютерной клавиатуры PS/2, в флэш память 24С62. Очень удобно иметь несколько микросхем и менять их если нужен другой текст.

Принципиальная схема бегущей строки с памятью:

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