Реле, соленоиды и датчики

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

реле контроля фаз - http://zelaz.ru/rele-el-11-el-1212a-el-1313a.html

Реле

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

Подключение электромеханического реле к микроконтроллеру обычно требует использования схемы управления, потому что ток обмотки реле обычно выше, чем 3 мА (логическая единица), доступный на выходном выводе. Рассмотрим подключение реле к выводу RB0 микроконтроллера. В этом примере реле используется для того, чтобы управлять лампочкой мощностью 25 Ватт, подключенной к сети 120 В. Этот пример также иллюстрирует простую схему управления на одном транзисторе, используемую для включения реле. Данное реле требует так обмотки 60 мА. Усиление транзистора 2N2222A, как минимум, равно 100, поэтому базовый ток будет равен 60 МА/100 или 0,6 мА. Так как минимальное напряжение логической единицы, снимаемое со вывода порта микроконтроллера, равно 4,2 В, то падение напряжения на резисторе базы будет равно 3,5 В. Значение резистора в цепи базы определяется как 3,5В/0,6 мА или 5833 Ом. Самое близкое стандартное значение номинала резистора равно 5,6 кОм. Диод защищает транзистор от бросков индуктивного напряжения, возникающих во время возмущения магнитного поля вокруг обмотки реле. Без этого диода транзистор был бы выведен из строя сразу же после первого выключения реле, потому что падение напряжения на транзисторе при этом будет приблизительно равным 12000 В, (6мАх20кОм, которое является сопротивлением запертого состояния транзистора).

Рассмотрим то же самое применение реле, что и на предыдущем примере, однако используется реле в интегральном исполнении (твердотельное реле). В данном случае используется интегральное реле фирмы Clare, рассчитанное на ток величиной 10 А. Ток, протекающий через встроенный светодиод, должен быть по крайней мере равным 10 мА, поэтому необходим транзисторный ключ для усиления тока от микроконтроллера. Падение напряжения на светодиоде равно 1,2 В. Резистор базы в этом примере обеспечивает намного больший ток, чем требуемый для включения интегрального реле. Как пример, здесь описано реле контроля фаз.

Соленоиды

Соленоиды управляются абсолютно аналогичным способом, однако они не имеют контактной группы. Соленоиды используются для того, чтобы переместить объекты на короткое расстояние. Например, соленоид используется в кассовом аппарате, чтобы открыть выдвижной кассовый ящик, перемещая арретир приблизительно на 5 мм (1/4"). Как только арретир будет сдвинут, пружина продвигает ящик. Соленоид в кассовом аппарате требует ток, приблизительно равный 0,5 А, при своем срабатывании от 12 В. Для того, чтобы гарантировать, что ящик прошел арретир, соленоид запитывается приблизительно в течении 500 мс. Таймер настраивается таким образом, чтобы микроконтроллер мог делать другие операции в течение 500 мс, требуемых для подключения питания к соленоиду. Усилитель на паре Дарлингтона MPSA13 имеет усиление 10000 и обеспечивает максимальный непрерывный ток в 500 мА.

Одна функция открывает выдвижной ящик, помещая логическую единицу на вывод RB0 и запуская таймер 0, так что он вызывает прерывание по 500 мс. Другая - это процедура обслуживания прерывания для таймера 0, которая помещает логический ноль на вывод RB0 и останавливает таймер. В этом примере предполагается, что используется тактовая частота RC-генератора, равная 2 МГц. Так как тактовая частота делится на 4 прежде, чем поступает на предварительный делитель Таймера 0, то на вход таймера после предварительного делителя будет поступать сигнал с частотой 500 кГц (2 мкс), разделенный на 256, или 1953 Гц (512 мкс). Если таймер установлен таким образом, чтобы переполняться через 976 тактовых циклов, то он будет выставлять прерывания от Таймера 0 через 499,7 мс после того, как будет запущен или открыт. Функция WriteTimerO (64560) программирует таймер 0 так, что он вызывает прерывание по переполнению через 976 периодов тактовой частоты. Вызов этой функции может быть также записан как WriteTimerO (-976), что может быть немного более понятно. Разрешение прерываний здесь не показано, не отражено оно и в процедуре обслуживания прерывания - единственной функции, которая вызывается в данном примере, когда происходит прерывание от таймера 0.

В этом примере используется включаемый файл timers.h, чтобы обеспечить функции, которые управляют таймером. Когда таймер прерывает микроконтроллер, вывод RB0 переводится обратно в состояние логического нуля и прерывание от таймера 0 будет запрещено, пока выдвижной ящик не будет еще раз открыт вызовом функции OpenDrawer. Этот процесс генерирует импульс на RB0 продолжительностью в 500 мс.

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

Датчики

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

Один распространенный тип датчика - это датчик температуры. Рассмотрим датчик LM70 от фирмы National Semiconductor, подключенный с помощью интерфейса к микроконтроллеру. Само по себе данное устройство - это достаточно маленький датчик температуры, который может устанавливаться почти в любом месте. LM70 имеет вход выбора микросхемы, разрешающий операцию чтения или записи, вывод Si/О для последовательных данных и вход SC, который функционирует как последовательный сигнал тактовой частоты. Чтобы читать температуру, нужно поместить логический ноль на вход выбора микросхемы, а затем подать импульс на вход SC. После подачи импульса на вход SC, считывается бит значения температуры с вывода SI/0. Единственная причина обеспечения возможности передачи данных в LM70 состоит в том, чтобы иметь возможность считать код изделия изготовителя, который обычно не требуется в большинстве систем. Первый бит данных будет доступен, когда вход выбора микросхемы будет заземлен; второй и последующие биты данных появляются через 70 мс после среза импульса на входе SC.

Данные значения 16-разрядной температуры появляются на штырьке Sl/О по одному биту одновременно, начиная с самого старшего бита. Сама температура считывается, таким образом, что формируется 11-разрядное значение температуры, которое в случае своей отрицательности имеет форму дополнения до двух. Даже при том, что самые правый пять битов не содержа) никаких данных, они должны считываться каждый раз, когда значение температуры получается от LM70. Программа считывания температуры показана в примере 7.19. LM70 выдает только температуру в градусах Цельсия, однако в показанном примере температура по шкале Фаренгейта возвращается как округленное целое число со знаком из функции getTemp.

Устройства кодирования угла поворота вала

Устройства кодирования угла поворота - устройства, которые обычно содержат оптические датчики, сообщающие о позиции вала. Эти датчики выдают выходные сигналы самой различной разрядности - от 2 битов, указывающих позицию вала шагами по 90°, до устройств кодирования, которые производят тысячи импульсов на один оборот вала. Некоторые из названных устройств формируют двоичный выходной сигнал, а некоторые - только импульс на сигнальной линии. Устройства кодирования угла поворота вала, кодирующие выходные данные, выдают информацию в виде кода Грея или естественного двоичного кода. Код Грея в случае 3-разрядного устройства кодирования соответствует следующей последовательности: 000, 001, 011, 111, 110, 100. Обратите внимание, что только один разряд изменяется одновременно от одного значения кода до следующего. 3-разрядный код Грея имеет шесть состояний, 4-разрядный код Грея имеет восемь состояний и т.д.

Разберем устройство кодирования угла поворота вала, связанное с микроконтроллером. Здесь устройство кодирования угла поворота вала S4 от фирмы US Digital подключено к микроконтроллеру. Это устройство кодирования угла поворота вала использует интерфейсный кабель с 4 проводами, который содержит + 5 В (вывод 1), землю (вывод 3), сигнал А (вывод 2) и сигнал В (вывод 4). Линии сигнала А (самый младший бит) и сигнала В формируют коды 00, 01, 11, 10 (код Грея) по мере вращения вала в прямом направлении и коды 10, 11,01,00, когда вал вращается в обратном направлении.

Предположим, что устройство кодирования угла поворота вала используется для того, чтобы измерить скорость вращения вала электромотора. Электромотор вращается со скоростью вплоть до 4000 оборотов в минуту. Он вращается до 67,7 раз за секунду, при этом выход устройства кодирования угла поворота вала изменяется вплоть до 267 раз в секунду. Чтобы измерить эту скорость, входы микроконтроллера должны дискретизироваться, по крайней мере, каждые 3,75 мс. Образец программы проверяет входы RB0 и RB1 через каждые 1,024 мс с тем, чтобы обнаружить соответствующие изменения. Прерывание используется для того, чтобы выполнить проверки и определить, вращается ли электромотор по часовой стрелке или против часовой стрелки, а также регистрировать скорость в оборотах в минуту в целочисленной ячейке памяти с именем speedRPM. Значение скорости будет точным в диапазоне от 15 оборотов в минуту до 4000 оборотов в минуту. Если необходимо определить более медленную скорость, то частота прерываний должна быть уменьшена от одного на каждую 1.024 мс. Например, если эта частота будет снижена до одного прерывания каждые 10.24 мс, то значение скорости будет точным в диапазоне от 1,5 оборота в минуту до 4000 оборотов в минуту.

Датчики расхода

Датчики расхода формируют импульсы по мере того, как поток жидкостей проходит сквозь них. Предположим, что в системе должны измеряться расход и потребление топлива. Это может быть выполнено посредством использования датчик расхода тина датчика FT-110 от фирмы Gems. Это устройство (модель 173934) производит 8300 импульсов на галлон потока жидкости. Измеряется расход от 0,07 до 5,3 галлонов в минуту. Рассмотрим подключение такого датчика расхода к микроконтроллеру. Это устройство просто в подключении - его интерфейс состоит из трех проводов и одного нагрузочного резистора.

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

Инфракрасные устройства дистанционного управления

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

Полезное устройство, которое иллюстрирует принцип инфракрасных датчиков - то схема расширителя диапазона дистанционного управления, созданная с применением микроконтроллера. Схема использует недорогой PIC18F1220 и несколько дополнительных компонентов. В качестве источника электропитания в ней используется батарейный комплект, состоящий из четырех батареек типа АА. Кроме того, в схеме используется интегральный стабилизатор с малым падением напряжения между входом и выходом МАХ603. Это превосходная ИС, предназначена для использования в устройствах с батарейным питанием. Рассмотрим схему инфракрасного расширителя диапазона.

Данные посылаются в форме импульсных пакетов на частоте 36 кГц с использованием двухфазного кода, который иногда называют манчестерским кодом. Информационный пакет состоит из 14 битов, которые включают две стартовых бита, находящихся в состоянии логической 1, за которыми следует бит управления, который переключается каждый раз, когда нажимается кнопка на передатчике. После бита управления следует 5-разрядный адрес. И, наконец, последние шесть битов задают команду, посылаемую на устройство. Импульс бита имеет ширину в 1,728 мс и через каждые 30 мс выполняется повторная передача кода, если кнопка на пульте дистанционного управления нажата. Манчестерский код посылается таким образом, что логическая единица изменяет выход на ноль из единицы на среднем бите, а логический ноль изменяет выход из логической единицы в логический ноль на среднем бите. Сигнал, посылаемый на инфракрасный диод, имеет частоту 36 кГц, если манчестерский код отражает логическую единицу. Наша система не должна генерировать эти коды, - она должна только обнаруживать их, принимать и вновь передавать.

Полученный сигнал подается на вывод RB1, который является также входом прерывания, ибо, когда сигнал не приходит в течении длительного периода времени, то микроконтроллер входит в режим бездействия с целью экономии электропитания. Вы, возможно, помните, что из режима бездействия микроконтроллер выходит по любому прерыванию. Как только сигнал получен, отрабатывается программа, которая выполняет оценку входа и передачу команды на передатчик. Модуль ШИМ, как это уже обсуждалось для случая управления скоростью вращения электромотора, используется для того, чтобы сгенерировать сигнал частотой в 36 кГц для передающего светодиода. Ближайшей к найденной, при использовании внутреннего синхрогенератора на 4 МГц, будет частота равная 37 кГц. Эта частота достаточно близка с тем, чтобы система функционировала корректно. В данном случае в регистр РМ2 загружается значение, равное 26.

Полный листинг программы для этого приложения можно найти в сети. Обратите внимание, что когда вход RB1 изменяется, это вызывает прерывание, которое активирует микроконтроллер. В процедуре облуживания прерывания включается выходной сигнал светодиода, имеющий частоту 36 кГц к и так долго, пока входной сигнал от детектора поступает один раз каждые 35 мкс (этот период отсчитывается таймером 0), выход остается на частоте 36 кГц. Таймер 0 очищается через каждую половину периода входного сигнала от детектора. Если посмотреть на манчестерский код и выходные сигналы, то можно видеть, что самый длинный период времени, когда сигнал падает до нуля, равен периоду тактовой частоты или 27 мкс. Программа обнаруживает прекращение изменения сигнала на протяжении 35 мкс, - этот период достаточно длинен, чтобы обнаружить факт отсутствия изменения сигнала. Когда вход перестает изменять свое состояние, выходная частота в 36 кГц выключается, прерывания вновь разрешаются и возврат из подпрограммы обслуживания прерывания передает управление вновь к основному бесконечному циклу - при этом система вновь входит в режим бездействия, экономя электроэнергию.

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

Газовые датчики

Имеется множество датчиков, предназначенных для измерения количества некоторых газов в атмосфере. Этот подраздел представляет один из них, предназначенный для измерения содержания двуокиси углерода. Имеется также много других датчиков, которые замеряют содержание кислорода, метана, алкоголя, водорода, сульфата водорода и т.д.

Предположим, что нам необходим прибор для того, чтобы измерить концентрацию двуокиси углерода в воздухе. Имеется большое количество различных датчиков двуокиси углерода, например TGS-2442 от фирмы Figaro Corporation. Это устройство содержит нагреватель и датчик. Нагреватель активизирует датчик, чье сопротивление изменяется в зависимости от концентрации двуокиси углерода. Чтобы контролировать количество двуокиси углерода, нагреватель активируется на 14 мс, а сопротивление датчика измеряется на протяжении 5 мс в цикле нагрева. Этот цикл нагрева/контроля повторяется каждую секунду на протяжении периода измерения. Данный датчик может измерять концентрацию С02 в диапазоне от 30 до 1000 частей на миллион (промиллей).

Нагреватель требует напряжения в 5 В при токе в 200 мА на протяжении 14 мс на каждые 1000 мс, так что в среднем потребляется только ток в 2,8 мА. Датчик температуры производит напряжение, которое может контролироваться АЦП в микроконтроллере и отображаться как значение концентрации СОг или использоваться любым другим способом.

Выходное напряжение, обозначаемое как Vou, определяется переменным сопротивлением датчика RS. Версия TG-2442A1 имеет значение RS в диапазоне от 6,81 до 21,5 кОм. Эти устройства должны калиброваться с тем, чтобы снимаемые ими отсчеты были точными, - именно поэтому потенциометр на 50 кОм используется в цепи коллектора 2N2222.

Рассмотрим датчик, подключенный к микроконтроллеру PIC18F1220. В схему также включен ЖК-индикатор 1x16, предназначенный для индикации значения концентрации СО2 в промиллях. Для того, чтобы быть точным, датчик помещается в среду с известной концентрацией С02, затем состояние потенциометра корректируется с целью получения правильного отсчета на ЖК-индикаторе. Датчик имеет линейную характеристику, так что, будучи однажды откалиброванным, он в дальнейшем будет обеспечивать точные показания. Датчик также требует 2-дневного периода прогрева прежде, чем он будет калиброваться.

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

Резюме

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

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

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

4. Жидкокристаллические индикаторы (ЖК-индикаторы) часто подключаются к микроконтроллерам для того, чтобы отображать алфавитно-цифровые данные. Доступны различные размеры панелей ЖК-индикаторов - от однострочных до 4-строчных. При этом в строке могут размещаться от 16 до 40 символов.

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

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

7. Электромоторы часто управляются с использованием мощных полевых МОГ1-траизисторов. Распространенной конфигурацией схемы управления на полевых МОП-транзисторах является Н-образный мост.

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

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

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

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

12. Код RC5 наиболее часто используется в инфракрасных устройствах дистанционного управления для того, чтобы посылать сигналы на частоте 36 кГц.