Меню сайта
Реклама
Топ новостей
Замена подушек двигателя ваз 2109
Автомобили, как известно, имеют сложнейшее устройство, в котором каждый элемент выполняет уникальную, важную роль. Двигатель, без сомнения, «сердце» автомобиля и в нем возможны различные сбои. Далеко не

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

Замена масла и масляного фильтра в двигателях ВАЗ 2106
Замена масла в двигателе ВАЗ 2106, а также масляного фильтра Необходимые инструменты: шестигранный ключ, имеющий Г-образную форму (для откручивания пробки сливного отверстия); специальный ключ для

Электросхема двигателя ваз. Электросхема электрооборудования автомобиля ВАЗ 2106
Электросхемы ВАЗ 2103 2106 21061 Цветные электросхемы ВАЗ 2103 2106 21061 схемы электрооборудования Источник питания, генератор Реле контрольной лампы заряда аккумуляторной батареи Стартер Система

Тюнинг двигателя ВАЗ 2108, 2109, 21099, 2113, 2114, 2115 » Страница 3
Фильтр нулевого сопротивления на ВАЗ Воздушный фильтр пониженного сопротивления предназначен для более свободного, по сравнению со стандартным фильтром, прохождения воздуха во впускную систему двигателя.

Ваз 2109: самостоятельная замена масла двигателя
Двигатель ВАЗ 2109 Одним из основных узлов любого автомобиля является его двигатель. Во многом срок его службы влияет на надежную работу всего автомобиля. Увеличить срок эксплуатации двигателя автомобиля

Установка гидрокомпенсаторов на ВАЗ-2107, ВАЗ-2106 - на любой классический двигатель. Гидрокомпенсаторы на ваз
. особенности конструкции и методика установки Для обеспечения эффективной работы двигателя можно установить гидрокомпенсаторы. На ВАЗ-2107 монтаж таких устройств оказывается довольно проблематичным, да

Ваз 2109: глохнет двигатель - что делать
Двигатель ВАЗ Иногда в пути случается такая неприятность, водитель попадает в ситуацию, когда посреди дороги глохнет двигатель ваз 2109 и дальше завести автомобиль, не получается. Самое интересное

Тюнинг ВАЗ 2105
  ВАЗ 2105 был представлен заводом в 1979 году. Тогда это был комфортабельный автомобиль, который вполне соответствовал требованиям времени. Надо сказать, ничего выдающегося здесь не было, однако, угловатые

Как установить двигатель на ваз классика
Двигатель от Приоры на «классику» Думаю, что многие автовладельцы «классики», ВАЗ 2107, 2106 и других моделей Жигулей хотят увеличить мощность своего автомобиля, но задел мощности у стандартного двигателя

Реклама
 
 

Подключение светодиодного матричного индикатора к микроконтроллеру PIC

Опубликовано: 01.09.2018

Раздел: Периферия к МК

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

 

В статье мы рассмотрим базовые моменты подключения монохромного матричного индикатора к микроконтроллеру с целью отображения на нем статических символов. Для решения нашей задачи мы использовали отладочную плату StartUSB for PIC с установленным микроконтроллером Microchip PIC18F2550 , однако пользователи могут использовать любой микроконтроллер с достаточным количеством линий ввода/вывода для управления индикатором. 

 

Использование платы StartUSB обусловлено простотой ее использования, т.к. она подключается непосредственно к USB интерфейсу и для программирования микроконтроллера не требуется внешнего программатора. 

Матричный индикатор представляет собой массив светодиодов, объединенных в один корпус. Размеры массива обычно составляют 4×4, 5×7, 5×8 или 8×8 точек. Каждая точка может быть сформирована одним, двумя или тремя светодиодами различного цвета. Множество светодиодов объединены в столбцы и строки. Это сделано с целью сокращения количества выводов для управления. Например, для матричного индикатора 8×8 (см. рисунок ниже) требовалось бы 64 линии ввода/вывода, одна для каждого светодиода. Соединением всех анодов в рядах (R1-R8) и катодов в столбцах (C1-C8), необходимое количество выводов управления сокращаеся до 16. На рисунке ниже, если на R4 появится высокий уровень и на C3 – низкий уровень, то светодиод в четвертом ряду и третьем столбце будет светиться. Символы на таком индикаторе отображаются динамически, т.е. мы будем быстро переключать столбцы для отображения символа. 

 

Матричный светодиодный индикатор, используемый в нашем проекте, имеет размер 5×7, и мы узнаем как отображать на нем стандартные символы разрешением 5×7. На рисунке ниже отображено, какие светодиоды должны быть включены для отображения буквы английского алфавита «A». Семь строк и пять столбцов управляются микроконтроллером. Теперь рассмотрим в деталях, как это работает.

 

Для отображения символа «A» сначала мы выберем первый столбец С1 (это означает, что в нашем случае на С1 мы подадим низкий уровень) и отключим все оставшиеся (подадим на С2-С5 высокий уровень). Теперь у нас активен первый столбец и необходимо включить светодиоды в строках R2-R7 подав на них напряжение высокого уровня. Далее, нам нужно сделать активным столбец C2 и включить светодиоды в строке R1 и R5 и так далее. Таким образом, перебирая очень быстро столбцы (более 100 раз в секунду) и включая соответствующие светодиоды для каждого отдельного столбца, мы увидим статическое изображение символа.

 

Таблица ниже демонстрирует, какие должны быть логические уровни на выводах столбцов и строк для отображения символа «A».

Следует отметить, что для управления столбцами индикатора потребуются ключи на транзисторах, т.к. линия ввода/вывода микроконтроллера не может обеспечить протекание большого тока (заметьте одновременно могут быть включены 7 светодиодов). С этой целью применяется драйвер ULN2003A , который имеет семь составных транзисторов. Активное состояние входа драйвера – высокий уровень. На рисунке ниже изображено расположение выводов микросхемы и схема одного канала.

 

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

 

Схема подключения индикатора и драйвера к микроконтроллеру очень проста. Нам потребуется семь резисторов номиналом 300 Ом, которые включаются в цепи строк R1-R7 для ограничения тока через светодиоды. Управление строками осуществляется выводами RB0-RB6 микроконтроллера. Столбцы индикатора подключаются к выходам драйвера ULN2003A. Соответствующие входы управления драйвера подключаются к порту RA0-RA4 микроконтроллера.

Таким образом, микроконтроллер может переключать столбцы индикатора, записывая в порт соответствующие биты. Например, установив бит RA0 (лог. 1) и сбросив биты RA1-RA4 (лог. 0), мы сделаем активным первый столбец индикатора. Между перключениями столбцов микроконтроллер должен выдержать паузу около 1 мс. Для каждого столбца, необходимо вывести соответствующее значение в порт B, чтобы включить нужные светодиоды в столбце. Переключение между столбцами происходит довольно быстро, поэтому человеческий глаз этого не замечает, и мы видим статическое изображение.

Схема подключения индикатора и драйвера к микроконтроллеру (отладочной плате)

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

В mikroC мы определим каждый символ с разрешением 5×7 (буквы английского алфавита A-Z, пользователи могут самостоятельно подготовить эти данные в соответствии со своими нуждами):

Код:

unsigned short Alphabets[130] = { 0x7e, 0x09, 0x09, 0x09, 0x7e, // A 0x7f, 0х49, 0х49, 0х49, 0х36, // B 0x3e, 0х41, 0х41, 0х41, 0х22, 0x7f, 0х41, 0х41, 0х22, 0x1c, 0x7f, 0х49, 0х49, 0х49, 0х63, 0x7f, 0х09, 0х09, 0х09, 0х01, 0x3e, 0х41, 0х41, 0х49, 0x7a, 0x7f, 0х08, 0х08, 0х08, 0x7f, 0х00, 0х41, 0x7f, 0х41, 0х00, // I 0х20, 0х40, 0х41, 0x3f, 0х01, 0x7f, 0х08, 0х14, 0х22, 0х41, 0x7f, 0х40, 0х40, 0х40, 0х60, 0x7f, 0х02, 0х04, 0х02, 0x7f, 0x7f, 0х04, 0х08, 0х10, 0x7f, 0x3e, 0х41, 0х41, 0х41, 0x3e, 0x7f, 0х09, 0х09, 0х09, 0х06, 0x3e, 0х41, 0х51, 0х21, 0x5e, 0x7f, 0х09, 0х19, 0х29, 0х46, 0х46, 0х49, 0х49, 0х49, 0х31, // S 0х01, 0х01, 0x7f, 0х01, 0х01, 0x3f, 0х40, 0х40, 0х40, 0x3f, 0x1f, 0х20, 0х40, 0х20, 0x1f, 0x3f, 0х40, 0х30, 0х40, 0x3f, 0х63, 0х14, 0х08, 0х14, 0х63, 0х07, 0х08, 0х70, 0х08, 0х07, 0х61, 0х51, 0х49, 0х45, 0х43 // Z }

 

А также данные специальных символов, которые сохраняются в программе:

Код:

const unsigned short characters[30] = { 0х24, 0x2A, 0x7f, 0x2A, 0х12, // $ х08, 0х14, 0х22, 0х41, 0х00, // < 0х41, 0х22, 0х14, 0х08, 0х00, // > 0х14, 0х14, 0х14, 0х14, 0х14, // = 0х36, 0х49, 0х55, 0х22, 0х50, // & 0х44, 0x3c, 0х04, 0x7c, 0х44, // PI };

 

Демонстрация работы индикатора

 

 

В архиве по этой ссылке - исходный код демонстрационной программы (последовательное отображение букв и символов на индикаторе) 

Рекомендации по покупке авто
рунета
Автомобильные чехлы по индивидуальному заказу
rss