Объявление

Свернуть
Пока нет объявлений.

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

Свернуть
X
Свернуть
  •  

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

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

Название:	1367732675_01.gif
Просмотров:	284
Размер:	102.3 Кб
ID:	2932 />
    В статье мы рассмотрим базовые моменты подключения монохромного матричного индикатора к микроконтроллеру с целью отображения на нем статических символов. Для решения нашей задачи мы использовали отладочную плату StartUSB for PIC с установленным микроконтроллером Microchip PIC18F2550, однако пользователи могут использовать любой микроконтроллер с достаточным количеством линий ввода/вывода для управления индикатором.
    Нажмите на изображение для увеличения.

Название:	1367732675_05.jpg
Просмотров:	165
Размер:	169.9 Кб
ID:	2933 />
    Использование платы StartUSB обусловлено простотой ее использования, т.к. она подключается непосредственно к USB интерфейсу и для программирования микроконтроллера не требуется внешнего программатора.

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

    Нажмите на изображение для увеличения.

Название:	1367732675_02.png
Просмотров:	166
Размер:	26.6 Кб
ID:	2934 />
    Матричный светодиодный индикатор, используемый в нашем проекте, имеет размер 5×7, и мы узнаем как отображать на нем стандартные символы разрешением 5×7. На рисунке ниже отображено, какие светодиоды должны быть включены для отображения буквы английского алфавита «A». Семь строк и пять столбцов управляются микроконтроллером. Теперь рассмотрим в деталях, как это работает.

    Нажмите на изображение для увеличения.

Название:	1367732675_03.png
Просмотров:	176
Размер:	7.2 Кб
ID:	2935 />
    Для отображения символа «A» сначала мы выберем первый столбец С1 (это означает, что в нашем случае на С1 мы подадим низкий уровень) и отключим все оставшиеся (подадим на С2-С5 высокий уровень). Теперь у нас активен первый столбец и необходимо включить светодиоды в строках R2-R7 подав на них напряжение высокого уровня. Далее, нам нужно сделать активным столбец C2 и включить светодиоды в строке R1 и R5 и так далее. Таким образом, перебирая очень быстро столбцы (более 100 раз в секунду) и включая соответствующие светодиоды для каждого отдельного столбца, мы увидим статическое изображение символа.

    Нажмите на изображение для увеличения.

Название:	1367732675_08.png
Просмотров:	161
Размер:	56.8 Кб
ID:	2936 />
    Таблица ниже демонстрирует, какие должны быть логические уровни на выводах столбцов и строк для отображения символа «A».
    Нажмите на изображение для увеличения.

Название:	1367732675_06.png
Просмотров:	145
Размер:	17.2 Кб
ID:	2937 />
    Следует отметить, что для управления столбцами индикатора потребуются ключи на транзисторах, т.к. линия ввода/вывода микроконтроллера не может обеспечить протекание большого тока (заметьте одновременно могут быть включены 7 светодиодов). С этой целью применяется драйвер ULN2003A, который имеет семь составных транзисторов. Активное состояние входа драйвера – высокий уровень. На рисунке ниже изображено расположение выводов микросхемы и схема одного канала.

    Нажмите на изображение для увеличения.

Название:	1367732675_07.jpg
Просмотров:	292
Размер:	63.7 Кб
ID:	2938 />
    Примечание. Выборки исходного кода, размещенные в тексте описания, использовать в своих проектах не рекомендуется. В конце описания имеется ссылка на архив с полным исходным кодом к проекту.

    Нажмите на изображение для увеличения.

Название:	1367732675_04.png
Просмотров:	546
Размер:	82.3 Кб
ID:	2939 />

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

    Нажмите на изображение для увеличения.

Название:	1367732675_09.jpg
Просмотров:	186
Размер:	162.7 Кб
ID:	2940 />

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

    Главная часть нашего проекта – программа микроконтроллера, осуществляющая вывод символов на индикатор. Программа осуществляет переключение столбцов и вывод соответствующих данных в строки в определенные моменты времени. Данные, которые должны выводиться в порт 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 };
    Демонстрация работы индикатора




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

      Возможность размещать комментарии к сообщениям отключена.

    Метки статей

    Свернуть

    Меток пока нет.

    Новые статьи

    Свернуть

    Обработка...
    X