Chevroletavtoliga - Автомобильный портал

Как подключить реле к микроконтроллеру. Схема управления двумя реле с помощью одного вывода микроконтроллера Включение реле с помощью микроконтроллера atmega

Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). ...

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

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

Как подключить реле к микроконтроллеру и избежать при этом неприятностей - чуть позже. А пока для самых-самых начинающих очень коротко расскажу

Электромагнитное реле - это специальное устройство, которое состоит, как минимум, из четырёх основных элементов (см. рис.):

  1. Катушка
  2. Сердечник
  3. Якорь
  4. Группа контактов

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

Когда на катушку подаётся напряжение, то вокруг неё создаётся магнитное поле, которое намагничивает сердечник. Тогда якорь притягивается к сердечнику и сдвигает группу контактов. В зависимости от конструкции контакты либо размыкаются, либо замыкаются, либо переключаются. В группе контактов могут быть как нормально замкнутые, так и нормально разомкнутые контакты. И контактов может быть и два, и три и более.

Когда напряжение с катушки снимается, то и контакты возвращаются в исходное положение.

Нормально замкнутый (нормально закрытый) контакт - это контакт, который замкнут при отсутствии напряжения на катушке. Нормально размокнутый (нормально открытый), соответственно, разомкнут, когда напряжения на катушке нет, и замыкается, когда напряжение на катушку подаётся. На рисунке показан нормально разомкнутый контакт.

На схемах и в описаниях реле обычно используются сокращения: НО - нормально открытый (нормально разомкнутый), НЗ - нормально закрытый (нормально замкнутый).

Основные характеристики реле

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

  1. Вид напряжения катушки (переменное или постоянное). Для подключения непосредственно к микроконтроллеру либо через транзистор можно использовать только реле постоянного тока (контакты реле, разумеется, могут управлять и переменным, и постоянным током).
  2. Напряжение катушки (то есть какое напряжение надо подать на катушку, чтобы якорь надёжно примагнитился к сердечнику).
  3. Ток потребления катушки.
  4. Номинальный ток контактов (то есть ток через контакты реле, при котором они будут работать без повреждения в течение длительного времени).
  5. Время срабатывания реле. То есть сколько времени требуется на примагничивание якоря.
  6. Время отпускания реле. То есть сколько времени требуется для отмагничивания (отпускания) якоря.

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

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

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

Да и способ с общим минусом тоже в большинстве случаев не позволит подключить реле напрямую к микроконтроллеру по той же причине (при таком способе микроконтроллер обычно может обеспечить на выходе 15-20 мА, что будет недостаточно для большинства реле).

Малым током потребления обычно обладают герконовые реле. Однако они и коммутировать могут только небольшие токи.

Но тут есть одна хитрость. Дело в том, что чем выше напряжение катушки реле, тем меньше ток потребления. Поэтому, если в вашем устройстве есть источник питания, например, на 24 В и выше, то вы вполне сможете подобрать реле с приемлемым током потребления.

Например, реле Finder 32-й серии при напряжении катушки 24В потребляет всего 8,3 мА.

В этом случае (когда у вас есть два источника напряжения) подключить реле можно примерно так:

Как подключить реле к транзистору

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

Меры безопасности

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

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

Кроме того есть опасность вывести из строя выход микроконтроллера или дополнительный транзистор.

Дело в том, что катушка реле - это индуктивная нагрузка со всеми вытекающими из этого последствиями.

И здесь есть два риска:

  1. В момент подачи напряжения на катушку индуктивное сопротивление катушки равно нулю, поэтому будет кратковременный бросок тока, значительно превышающий номинальный ток. Но большинство выходных транзисторов этот бросок выдерживают, так что об этом можно не думать, но знать и понимать это надо.
  2. В момент снятия напряжения (в момент разрыва цепи питания катушки) возникает ЭДС самоиндкуции, которая может вывести из строя выходной транзистор микроконтроллера и/или дополнительный транзистор, к которому подключена катушка реле. Чтобы избежать этого, всегда необходимо параллельно с катушкой включать защитный диод (см. рис.). Почему так происходит, рассказывать не буду. Кому интересно, вспоминайте или изучайте электротехнику .

ВАЖНО!
Обратите внимание на включение диода. Он должен включаться именно так, а не наоборот, как думают некоторые.


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

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


Вариант 2:


Работа: при подаче напряжения питания емкость С1 заряжается через сопротивление R1 и замкнутые контакты К1.1 практически до уровня напряжения питания. При нажатии на S1 через её замкнутые контакты, через K1.1 и R1 напряжение поступает на катушку К1, и последнее срабатывает. Реле К1.1 замыкает свои фронтовые контакты и питание на обмотку идет через резистор R1. На время переключения контактов, питание катушки происходит от емкости С1.

После замыкания фронтовых контактов, конденсатор С1 разряжается через сопротивление R2. При очередном нажатии на S1, происходит заряд С1 из-за чего напряжение на катушке падает и происходит размыкание фронтовых и замыкание тыловых контактов. Пассивные компоненты R1 и C1 составляют цепь с постоянной времени в 150 миллисекунд.

Вариант 3:


Схема управления достаточно проста и построена на самом реле и одном биполярном транзисторе. При первом нажатии на кнопку VT1 отпирается разрядным током конденсатора С1, устройство срабатывает. Конденсатор отсоединяется от источника питания и, если отпустить кнопку начинает быстро разряжаться через диод и сопротивление. Если теперь нажать на кнопку второй раз, то транзистор закрывается и отключает реле. Так происходит управление устройствами автоматики в этом варианте.

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


Основа проекта микросхема CNY17-1, которая представляет собой типовую оптопару, состоящую из инфракрасного светодиода и фототранзистора. Устройство способно передавать информацию в виде сигналов при сохранении изоляции между входом и выходом. Взаимодействие микроконтроллера, и реализация управления с такой схемой построено довольно просто. Вход может быть подключен к выбранной ножке МК через входную клемму. Однако, нужно обязательно учитывать полярность. Состояние уровня логической 1 (уровень 5 В) на входе оптопары замкнет реле, а логический ноль соответственно - разомкнет. Цепь может получать питание практически от любого блока питания постоянного тока на 12 В. В данном варианте управляющего устройства резистор R1 = 1 КОм, Реле на 12 В / с сопротивлением обмотки 320 Ом потребляет около 38 мА.

Диод D1 (1N4007, 1N4001), подсоединенный параллельно катушке, защищает биполярный транзистор электромагнитного импульса, генерируемого индуктивностью катушки в момент запирания транзистора. C1 емкостьб 100 мкФ это шунтирующий конденсатор, он предназначен для гашения токовых пульсаций, когда реле включается и откключается.

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

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

Введение

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

Многие устройства ввода/вывода потребляют много тока (> 100 мА), которые большинство микроконтроллеров не могут обеспечить в безопасном режиме, а когда они пытаются обеспечить такое количество тока, они часто ломаются. Здесь нам на помощь приходят специальные схемы, которые называются «драйверы» (англ. - drivers). Драйверы - это схемы, которые могут принимать небольшой слабый сигнал от микроконтроллера, а затем использовать этот сигнал для управления каким-либо энергопотребляющим устройством.

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

  • Цепи драйвера
  • Схемы защиты входа
  • Схемы защиты выхода
  • Цепи изоляции

Итак, давайте посмотрим на некоторые из этих схем и на то как они работают!

Простой светодиодный (LED) драйвер

Эта простая схема удобна для управления светодиодами с высоким энергопотреблением с помощью микроконтроллеров, где выход микроконтроллера подключен к «IN».

Когда микроконтроллер выводит 0, транзистор Q1 отключается, а также светодиод D1. Когда микроконтроллер выводит 1, транзистор включается, и поэтому D1 также включается. Значение R1 зависит от выходного напряжения вашего микроконтроллера, но значения между 1KΩ ~ 10KΩ часто работают хорошо. Значение R2 зависит от размера нагрузки, которую вы питаете, и эта схема подходит для питания устройств до 1А и не более.

Простой релейный драйвер

Устройствам, которые потребляют более 1 А тока и будут включаться и выключаться раз в несколько секунд, лучше подойдут реле.

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

Для обычных реле требуются токи около 60 мА ~ 100 мА, что слишком много для большинства микроконтроллеров, поэтому реле требуют схему с использованием управления транзистором (как показано выше). Однако вместо резистора, который необходимо использовать для ограничения тока, требуется обратный диод защиты (D1).

Когда микроконтроллер (подключенный к «IN»), выдает 1, тогда включается транзистор Q1. Это включает реле RL1, и в результате загорается лампа (R2). Если микроконтроллер выводит 0, то транзистор Q1 отключается, что отключает реле, и поэтому лампа выключается.

Реле очень часто встречаются в схемах, требующих переключения цепей электропитания переменного тока, и доступны для переключения 230В и 13А (подходит для тостеров, чайников, компьютеров и пылесосов).


Кнопки

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

Кнопки обычно представляют собой кусок металла, который при контакте соприкасается с каким-то другим металлом, но когда кнопки вступают в контакт, они часто отскакивают (хотя они чаще всего крошечные). Этот отскок означает, что кнопка соединяется и отключается несколько раз, прежде чем зафиксироваться, а в итоге - результат, который ненадолго выглядит случайным. Поскольку микроконтроллеры очень быстрые, они могут поймать этот отскок и выполнять события нажатия кнопки несколько раз. Чтобы избавиться от отскока, можно использовать схему ниже. Схема, показанная здесь, представляет собой очень тривиальную схему, которая хорошо работает и проста в построении.

Защита входа: напряжение

Не все устройства ввода будут дружественными к вашему микроконтроллеру, а некоторые источники могут даже нанести ущерб. Если у вас есть источники входного сигнала, которые поступают из окружающей среды (например, датчик напряжения, датчик дождя, человеческий контакт) или источники входного сигнала, которые могут вывести напряжения, превышающие то, что может обрабатывать микроконтроллер (например, цепи индуктора), тогда вам потребуется включать некоторую защиту ввода напряжения. Схема, показанная ниже, использует 5V стабилитронов для ограничения входных напряжений, так что входное напряжение не может превышать 5 В и ниже 0 В. Резистор 100R используется для предотвращения слишком большого тока, когда диод Зенера захватывает входное напряжение.


Защита ввода/вывода: ток

Входы и выходы микроконтроллеров иногда могут быть защищены от слишком большого тока. Если устройство, такое как светодиод, потребляет меньше тока, чем максимальный выходной ток от микроконтроллера, тогда светодиод может быть напрямую подключен к микроконтроллеру. Тем не менее, последовательный резистор будет по-прежнему необходим, как показано ниже, а общие значения последовательных резисторов для светодиодов включают в себя 470 Ом, 1 кОм и даже 2,2 кОм. Серии резисторов также полезны для входных контактов в редких случаях, когда неисправны контакты микроконтроллеров или входное устройство испытывает всплеск выходного тока.


Преобразователи уровня

В прошлом большинство сигналов в цепи работало бы на одном и том же напряжении, и это напряжение обычно составляло 5 В. Однако с увеличением технологических возможностей современной электроники снижается напряжение на новых устройствах. Из-за этого многие схемы включают смешанные сигналы, в которых более старые части могут работать при напряжении 5 В, в то время как более новые части работают при напряжении 3,3 В.

Хотя многие радиолюбители предпочли бы использовать один уровень напряжения, правда состоит в том, что более старые 5-вольтовые части могут не работать на 3,3 В, в то время как более новые устройства 3,3 В не могут работать при более высоком напряжении 5 В. Если устройство 5V и устройство 3.3V хотят общаться, то требуется сдвиг уровня, который преобразует один сигнал напряжения в другой. Некоторые устройства с напряжением 3,3 В имеют 5 В "толерантность", что означает, что сигнал 5 В может напрямую подключаться к сигналу 3,3 В, но большинство устройств 5 В не могут переносить 3.3 В. Чтобы охватить оба варианта, приведенные ниже схемы показывают преобразование от 5 до 3,3 В и наоборот.


Изоляция: Оптоизолятор

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

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


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

При конструировании устройств на микроконтроллерах часто возникает необходимость управления различными внешними устройствами посредством включения и выключения напряжения питания. Причем напряжение питания и ток потребления таких устройств могут меняться в самых широких пределах. Универсальным способом управления подобными устройствами является электромагнитное реле. В настоящее время в продаже появились малогабаритные реле с довольно не плохими параметрами. Сегодня реле могут коммутировать нагрузку в цепи до 220 вольт при токе до 10 ампер и выше. Обмотка реле обычно расчитана на напряжение 12В и потребляет ток всего 40 мА. Это позволяет использовать для его управления ключ на маломощном транзисторе. Например на широко распространенном КТ315. Можно взять импортный BC547. Схема подключения реле к микроконтроллеру приведена на следующем рисунке:

Схема подключения реле

Для того, что бы включить нагрузку микроконтроллер выставляет на своем выходе (в данном случае на выходе PB4) сигнал логической единицы. Напряжение через резистор R1 поступает на базу транзистора. Танзистор открывается и реле срабатывает. Его контакты замыкают цепь нагрузки. Для отключения нагрузки микроконтроллер выставляет на своем выходе сигнал логического нуля. На базе VT1 напряжения снижается до нуля. Транзистор закрывается и реле отключается. Диод VD1 служит для защиты схемы от напряжения самоиндукции, которое возникает в обмотке реле при снятии с нее напряжения. Резистор R2 нужен для более надежного закрывания транзистора VT1.

В то время, как микроконтроллер питаетя от стабилизированного источника +5В, ключ и реле получает питание от нестабилизированного напряжения +12В. Это напряжение снимается с того же выпрямителя но до стабилизатора. Подробнее смотрите в статье "Схема блока питания".

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

Как известно, для питания цифровых микросхем необходимо стабилизированное напряжения 5В. Заметим, что современные микроконтроллеры способны работать в широком диапазоне питающих напряжений. Обычно от 3 до 6 вольт. Главное требование, что бы напряжение было стабилизированное. То есть не менялось при изменении нагрузки. Однако, обычно любое микропроцессорное устройство кроме cамого микроконтроллера содержит ряд других микросхем, которые обычно более требовательны к напряжению питания. Поэтому правильнее всего, если нет каких нибудь специальных причин, выбирать напряжение питания +5В. Такое напряжение питания широко используется в электронной технике. Поэтому промышленность давно уже наладила производство специальных микросхем - стабилизаторов напряжения. Для большинства применений подойдет микросхема 7905 или ее отечественный аналог КРЕН5. Ниже на рисунке приведена схема блока питания, который расчитан на питание практически любого устройства на микроконтроллерах.

Схема блока питания

Трансформатор T1 понижает сетевое напряжение до требуемой величины (примерно 8...9 вольт). Выпрямитель VD1 выпрямляет его. Предварительный фильтр C1 сглаживает пульсации выпрямленного напряжения и в результате на вход стабилизатора DA1 поступает постоянное нестабилизированное напряжение примерно равное 12 В. С выхода стабилизатора стабилизированное напряжение 5В поступает на выход (на питание цифровых цепей микроконтроллерного устройства. Нестабилизированное напряжение +12В так же поступает для питания некоторых цепей микроконтроллерного устройства. Обычно это силовые цепи, не требующие стабилизации напряжения: светодиоды, реле и т.п. Подключение таких цепей до стабилизатора существенно разгружает микросхему DA1 облегчает ее тепловой режим, повышает надежность и увеличивает КПД. Дополнительный фильтр С2, С3 служит для подавления помех по питанию. Причем электролит C3 служит для подавления низкочастотных помех, а керамический конденсатор C2 подавляет высочастотные помехи.

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

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

Ни одно устройство на основе микроконтроллера не обходится без световых индикаторов. В качестве одиночных светоизлучателей удобнее всего использовать светодиоды. Современные микроконтроллеры (в частности микроконтроллеры серии AVR) имеют достаточно мощные выходные схемы. Они рассчитаны на выходной ток до 40 мА. Этого вполне достаточно для непосредственного подключения одного маломощного светодиода. На следующем рисунке показано, как можно подключить светодиод к выходу микроконтроллеру.

Непосредственное подключение светодиода

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

Подключение при помощи электронного ключа

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

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

Практически ни одна микропроцессорная система не обходится без кнопок, клавиш, концевых контактов и тому подобных элементов коммутации. Любое подобное коммутационное устройство - это просто пара контактов, которые замыкаются при нажатии на клавишу (кнопку) или при другом механическом воздействии. Например, при срабатывании концевого выключателя управляемого механизма. Поэтому подключение любого вышеописанного устройства сводится к подключению к микроконтроллеру пары контактов. Микроконтроллеры серии AVR довольно неплохо приспособлены для работы именно с кнопками. Каждый из выводов каждого порта имеет специальные средства, облегчающие подключение внешних контактов.

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

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

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

Для подключения матрицы используется весь порт PB микроконтроллера и еще две линии порта PD. Как видно из схемы каждый из выводов порта PB подключен сразу к двум кнопкам. Например, вывод PB0 подключен к кнопке S1 и S9. Вывод PB1 к S2 и S10 и так далее. Второй контакт каждой кнопки подключен к одной из линий PD5 или PD6. В результате образуется матрица. Она напоминает решетку. Два вертикальных провода и восемь горизонтальных. В каждом пересечении этих проводов вставлено по кнопке.

Как же работает эта матрица. Для правильной работы необходимо все выводы порта PB перевести в режим входов и включить для каждого из этих входов внутренний нагрузочный резистор. А два вывода порта PD (PD5 и PD6) нужно перевести в режим выходов. Для того, что бы считать состояние кнопок микроконтроллер должен сначала подать на выход PD6 сигнал логического нуля, а на выход PD5 сигнал логической единицы. Затем он должен прочитать байт из порта PB. Этот байт будет содержать информацию о состоянии кнопок S1...S8. Каждый бит будет отвечать за свою кнопку. Нулевой бит (PB0) за кнопку S1, первый бит (PB1) за кнопку S2 и т.д. Если кнопка нажата, то в соответствующем разряде будет ноль, если не нажата - единица. После анализа нажатия первой половины кнопок, микроконтроллер должен установить на выходе PD5 логический ноль, а на выходе PD6 - единицу. И опять считать байт из порта PB. Теперь этот байт будет содержать информацию о состоянии кнопок S9...S16. Опрашивая таким образом то первую то вторую половину кнопок, микроконтроллер может реагировать на нажатие каждой из кнопок отдельно.

Описанная выше матрица может быть легко расширена. Можно взять не две вертикальные линии, а три, четыре и так далее. Для данного микроконтроллера максимально возможная матрица имеет размеры 7X8. Так как порт PD имеет лишь семь линий. Общее количество кнопок при этом будет равно 56.

Новые статьи

● Проект 12: Управляем реле через транзистор

В этом эксперименте мы познакомимся с реле, с помощью которого с Arduino можно управлять мощной нагрузкой не только постоянного, но и переменного тока.

Необходимые компоненты:

Реле - это электрически управляемый, механический переключатель, имеет две раздельные цепи: цепь управления, представленная контактами (А1, А2), и управляемая цепь, контакты 1, 2, 3 (см. рис. 12.1).

Цепи никак не связаны между собой. Между контактами А1 и А2 установлен металлический сердечник, при протекании тока по которому к нему притягивается подвижный якорь (2). Контакты же 1 и 3 неподвижны. Стоит отметить, что якорь подпружинен, и пока мы не пропустим ток через сердечник, якорь будет прижатым к контакту 3. При подаче тока, как уже говорилось, сердечник превращается в электромагнит и притягивается к контакту 1. При обесточивании пружина снова возвращает якорь к контакту 3.

При подключении реле к Arduino контакт микроконтроллера не может обеспечить мощность, необходимую для нормальной работы катушки. Поэтому следует усилить ток - поставить транзистор. Для усиления удобнее применять n-p-n-транзистор, включенный по схеме ОЭ (см. рис. 12.2). При таком способе можно подключать нагрузку с большим напряжением питания, чем питание микроконтроллера.
Резистор на базе - ограничительный. Может варьироваться в широких пределах (1-10 кОм), в любом случае, транзистор будет работать в режиме насыщения. В качестве транзистора может быть любой n-p-n-транзистор. Коэффициент усиления практически не имеет значения. Выбирается транзистор по току коллектора (нужный нам ток) и напряжению коллектор-эмиттер (напряжение, которым запитывается нагрузка).

Для включения реле, подключенного по схеме с ОЭ, на вывод Arduino необходимо подать 1, для выключения - 0. Подключим реле к плате Arduino по схеме на рис. 12.3 и напишем скетч управления реле. Каждые 5 секунд реле будет переключаться (включаться/выключаться). При переключении реле раздается характерный щелчок.
Содержимое скетча показано в листинге 12.1.

int relayPin = 10 ; // подключение к выводу D10 Arduino void setup () { pinMode(relayPin, OUTPUT); // настроить вывод как выход (OUTPUT) } // функция выполняется циклически бесконечное число раз void loop () { digitalWrite(relayPin, HIGH); // включить реле delay(5000 ); digitalWrite(relayPin, LOW); // выключить реле delay(5000 ); }

Порядок подключения:

1. Подключаем элементы к плате Arduino по схеме на рис. 12.3.
2. Загружаем в плату Arduino скетч из листинга 12.1.
3. Каждые 5 секунд происходит щелчок переключения реле если подключить контакты реле, например в разрыв подключенной к сети 220 В патрона с лампой накаливания, то увидим процесс включения/выключения лампы накаливания раз в 5 секунд (рис. 12.3).


Похожие публикации