Микроконтроллеры AVR: от простого к сложному

Голубцов М. С.

Глава 5

Основные схемные решения интерфейсов

 

 

5.1. Параллельные выходы

Одним из наиболее простых, но одновременно и наиболее важных и частых применений параллельных портов микроконтроллера можно назвать управление различными устройствами. В данном случае речь пойдет об управлении типа «включить/выключить».

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

Управление светодиодами или оптронами

Управление светодиодами — самое простое, что может встретиться при изготовлении схем на микроконтроллерах. Как известно, светодиоды потребляют достаточно маленький ток — в зависимости от типа светодиода этот ток может составлять от 3 до 20 мА. Рабочее напряжение светодиодов составляет примерно от 1,5 до 4 В.

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

Стоит обратить внимание на то, что подключать следует именно таким образом — при напряжении «логическая единица» микроконтроллер может отдавать гораздо меньший ток. А значит, его нельзя будет применить для управления светодиодом напрямую. Более подробно можно узнать величины допустимых токов, воспользовавшись фирменной документацией на микроконтроллеры.

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

На рис. 5.1 изображена простая схема с двумя светодиодами.

Рис. 5.1. Простейшая схема для управления двумя светодиодами

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

Например, для микроконтроллера AT90S2313 имеются следующие ограничения: суммарный ток нагрузки при «0» на выходах не Должен превышать 200 мА, причем суммарный ток линий D0-D5 не более 100 мА и суммарный ток линий В0-В7 и D6 также не должен превышать 100 мА. Легко увидеть, что если нагрузить все выходы по 20 мА, можно превысить допустимый ток, что может повредить Микросхему.

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

Управление реле

Для питания обмотки реле требуется ток, превышающий 20 мА, поэтому напрямую подключить к микроконтроллеру его нельзя. Для управления реле, можно применять простейший усилитель — транзисторный ключ. На рис. 5.2 показан пример схемы с реле. Обратите внимание на наличие диода, подключенного параллельно обмотке реле — он нужен для защиты схемы от ЭДС самоиндукции, появляющейся в процессе коммутации обмотки.

Рис. 5.2. Использование реле

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

В случае, если необходимо управлять большим числом реле, или других мощных нагрузок, удобно применять микросхемы ULN2003 или ULN2803. Эти микросхемы содержат соответственно, 7 и 8 транзисторных ключей на составных транзисторах (схема Дарлингтона). Они позволяют управлять нагрузкой до 500 мА при напряжении до 50 В. При этом входы этих микросхем можно подключать непосредственно к линиям портов ввода/вывода микроконтроллера. Внутри микросхем уже имеется встроенный защитный диод, который можно подключать или отключать, осуществляя внешние соединения. На рис. 5.3 показан пример схемы с использованием микросхемы ULN2003.

Рис. 5.3. Применение микросхемы ULN2003

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

Управление светодиодными цифровыми индикаторами

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

Рис. 5.4. Управление цифровым индикатором

Легко увидеть, что если потребуется управлять большим числом индикаторов, количества выводов портов ввода/вывода будет недостаточно. Для преодоления этого препятствия применяется динамическая индикация. На рис. 5.5 показан пример схемы динамической индикации. Идея, лежащая в основе работы этой схемы очень проста — человеческий глаз достаточно инерционен, поэтому можно зажигать не все индикаторы одновременно, а только один из них, потом через короткое время другой и так далее. Так как переключение индикаторов происходит достаточно быстро, человеку кажется, что все индикаторы горят.

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

 

5.2. Параллельные входы

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

Кнопки и переключатели

Проверять состояние кнопок или выключателей достаточно просто. Достаточно подсоединить, например, кнопку одним выводом к общему проводу, а другим — ко входной линии порта ввода/вывода, настроенной для работы в режиме чтения. Также эта линия должна быть соединена через резистор сопротивлением примерно 4,7—100 кОм с проводом «+» питания. При большем сопротивлении меньше суммарный потребляемый ток.

При разомкнутых контактах, на соответствующем выводе микроконтроллера будет «1», при замыкании контактов — «0».

Все механические выключатели имеют недостаток — при работе с ними наблюдается так называемый дребезг контактов, при котором при нажатии на кнопку происходит много замыканий и размыканий контактов из-за того, что они как правило, пружинят. Длительность периода дребезга зависит от качества контактов и обычно составляет от 10 до 100 мс. Бороться с этим эффектом проще программным способом. На рис. 5.6 показаны графики, иллюстрирующие дребезг контактов, а на рис. 5.7 приведена простейшая схема с кнопкой.

Рис. 5.6. Явление «дребезг контактов»

Рис. 5.7. Подключение кнопки к микроконтроллеру

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

Рис. 5.8. Использование матричной клавиатуры