Как подключить датчик к контроллеру?
Практические схемы включения датчиков
Данная статья – вторая часть статьи про разновидности и принципы работы датчиков. Кто не читал – рекомендую, там очень много тонкостей разложено по полочкам.
Здесь же я отдельно вынес такой важный практический вопрос, как подключение индуктивных датчиков с транзисторным выходом, которые в современном промышленном оборудовании – повсеместно. Кроме того, приведены реальные инструкции к датчикам и ссылки на примеры.
Принцип активации (работы) датчиков при этом может быть любым – индуктивные (приближения), оптические (фотоэлектрические), и т.д.
В первой части были описаны возможные варианты выходов датчиков. По подключению датчиков с контактами (релейный выход) проблем возникнуть не должно. А по транзисторным и с подключением к контроллеру не всё так просто.
Рекомендую тем, кто интересуется, также мою статью про параллельное подключение транзисторных выходов.
Схемы подключения датчиков PNP и NPN
Отличие PNP и NPN датчиков в том, что они коммутируют разные полюсы источника питания. PNP (от слова “Positive”) коммутирует положительный выход источника питания, NPN – отрицательный.
Ниже для примера даны схемы подключения датчиков с транзисторным выходом. Нагрузка – как правило, это вход контроллера.
PNP выход датчика. Нагрузка (Load) постоянно подключена к “минусу” (0V), подача дискретной “1” (+V) коммутируется транзистором. НО или НЗ датчик – зависит от схемы управления (Main circuit)
NPN выход датчика. Нагрузка (Load) постоянно подключена к “плюсу” (+V). Здесь активный уровень (дискретный “1”) на выходе датчика – низкий (0V), при этом на нагрузку подается питание через открывшийся транзистор.
Призываю всех не путаться, работа этих схем будет подробно расписана далее.
На схемах ниже показано в принципе то же самое. Акцент уделён на отличия в схемах PNP и NPN выходов.
Схемы подключения NPN и PNP выходов датчиков
На левом рисунке – датчик с выходным транзистором NPN. Коммутируется общий провод, который в данном случае – отрицательный провод источника питания.
Справа – случай с транзистором PNP на выходе. Этот случай – наиболее частый, так как в современной электронике принято отрицательный провод источника питания делать общим, а входы контроллеров и других регистрирующих устройств активировать положительным потенциалом.
Как проверить индуктивный датчик?
Для этого нужно подать на него питание, то есть подключить его в схему. Затем – активировать (инициировать) его. При активации будет загораться индикатор. Но индикация не гарантирует правильной работы индуктивного датчика. Нужно подключить нагрузку, и измерить напряжение на ней, чтобы быть уверенным на 100%.
Замена датчиков
- PNP NO
- PNP NC
- NPN NO
- NPN NC
Все эти типы датчиков можно заменить друг на друга, т.е. они взаимозаменяемы.
Это реализуется такими способами:
- Переделка устройства инициации – механически меняется конструкция.
- Изменение имеющейся схемы включения датчика.
- Переключение типа выхода датчика (если имеются такие переключатели на корпусе датчика).
- Перепрограммирование программы – изменение активного уровня данного входа, изменение алгоритма программы.
Ниже приведён пример, как можно заменить датчик PNP на NPN, изменив схему подключения:
PNP-NPN схемы взаимозаменяемости. Слева – исходная схема, справа – переделанная.
Понять работу этих схем поможет осознание того факта, что транзистор – это ключевой элемент, который можно представить обычными контактами реле (примеры – ниже, в обозначениях).
Итак, схема слева. Предположим, что тип датчика – НО. Тогда (независимо от типа транзистора на выходе), когда датчик не активен, его выходные “контакты” разомкнуты, и ток через них не протекает. Когда датчик активен, контакты замкнуты, со всеми вытекающими последствиями. Точнее, с протекающим током через эти контакты)). Протекающий ток создает падение напряжения на нагрузке.
Внутренняя нагрузка показана пунктиром неспроста. Этот резистор существует, но его наличие не гарантирует стабильную работу датчика, датчик должен быть подключен к входу контроллера или другой нагрузке. Сопротивление этого входа и является основной нагрузкой.
Если внутренней нагрузки в датчике нет, и коллектор “висит в воздухе”, то это называют “схема с открытым коллектором”. Эта схема работает ТОЛЬКО с подключенной нагрузкой.
Так вот, в схеме с PNP выходом при активации напряжение (+V) через открытый транзистор поступает на вход контроллера, и он активизируется. Как того же добиться с выходом NPN?
Бывают ситуации, когда нужного датчика нет под рукой, а станок должен работать “прям щас”.
Смотрим на изменения в схеме справа. Прежде всего, обеспечен режим работы выходного транзистора датчика. Для этого в схему добавлен дополнительный резистор, его сопротивление обычно порядка 5,1 – 10 кОм. Теперь, когда датчик не активен, через дополнительный резистор напряжение (+V) поступает на вход контроллера, и вход контроллера активизируется. Когда датчик активен – на входе контроллера дискретный “0”, поскольку вход контроллера шунтируется открытым NPN транзистором, и почти весь ток дополнительного резистора проходит через этот транзистор.
В данном случае происходит перефазировка работы датчика. Зато датчик работает в режиме, и контроллер получает информацию. В большинстве случаев этого достаточно. Например, в режиме подсчета импульсов – тахометр, или количество заготовок.
Да, не совсем то, что мы хотели, и схемы взаимозаменяемости npn и pnp датчиков не всегда приемлемы.
Как добиться полного функционала? Способ 1 – механически сдвинуть либо переделать металлическую пластинку (активатор). Либо световой промежуток, если речь идёт об оптическом датчике. Способ 2 – перепрограммировать вход контроллера чтобы дискретный “0” был активным состоянием контроллера, а “1” – пассивным. Если под рукой есть ноутбук, то второй способ и быстрее, и проще.
Условное обозначение датчика приближения
На принципиальных схемах индуктивные датчики (датчики приближения) обозначают по разному. Но главное – присутствует квадрат, повёрнутый на 45° и две вертикальные линии в нём. Как на схемах, изображённых ниже.
НО НЗ датчики. Принципиальные схемы.
На верхней схеме – нормально открытый (НО) контакт (условно обозначен PNP транзистор). Вторая схема – нормально закрытый, и третья схема – оба контакта в одном корпусе.
Цветовая маркировка выводов датчиков
Существует стандартная система маркировки датчиков. Все производители в настоящее время придерживаются её.
Однако, нелишне перед монтажом убедиться в правильности подключения, обратившись к руководству (инструкции) по подключению. Кроме того, как правило, цвета проводов указаны на самом датчике, если позволяет его размер.
Вот эта маркировка.
- Синий (Blue) – Минус питания
- Коричневый (Brown) – Плюс
- Чёрный (Black) – Выход
- Белый (White) – второй выход, или вход управления, надо смотреть инструкцию.
Система обозначений индуктивных датчиков
Тип датчика обозначается цифро-буквенным кодом, в котором зашифрованы основные параметры датчика. Ниже приведена система маркировки популярных датчиков Autonics.
Система обозначений датчиков Autonics
Скачать инструкции и руководства на некоторые типы индуктивных датчиков:
• Autonics_proximity_sensor / Каталог датчиков приближения Autonics, pdf, 1.73 MB, скачан: 1664 раз./
• Omron_E2A / Каталог датчиков приближения Omron, pdf, 1.14 MB, скачан: 2178 раз./
• ТЕКО_Таблица взаимозаменяемости выключателей зарубежных производителей / Чем можно заменить датчики ТЕКО, pdf, 179.92 kB, скачан: 1671 раз./
• Turck_InduktivSens / Датчики фирмы Turck, pdf, 4.13 MB, скачан: 2212 раз./
• pnp npn / Схема включения датчиков по схемам PNP и NPN в программе Splan/ Исходный файл., rar, 2.18 kB, скачан: 3392 раз./
Скачать книгу про датчики
Реальные датчики
Датчики купить проблематично, товар специфический, и в магазинах электрики такие не продают. Как вариант, их можно купить в Китае, на АлиЭкспрессе.
А вот какие оптические датчики я встречаю в своей работе.
Всем спасибо за внимание, жду вопросов по подключению датчиков в комментариях!
Подключение датчиков с токовым выходом к вторичным приборам
Получившие наибольшее распространение в сфере автоматизации производства датчики с унифицированным токовым выходом 4-20, 0-50 или 0-20 мА могут иметь различные схемы подключения к вторичным приборам. Современные датчики, имеющие низкое энергопотребление и токовый выход 4-20 мА, чаще всего подключают по двухпроводной схеме. То есть к такому датчику подключается всего один кабель с двумя жилами, по которым этот датчик запитывается, и по этим же двум жилам осуществляется передача выходного сигнала 4-20 мА.
Как правило, датчики с выходом 4-20 мА и двухпроводной схемой подключения имеют пассивный выход и им для работы необходим внешний источник питания. Этот источник питания может быть встроен непосредственно во вторичный прибор (в его вход) и при подключении датчика к такому прибору в сигнальной цепи сразу появляется ток. О приборах, которые имеют встроенный во вход источник питания для датчика, говорят, что это приборы с активным входом.
Большинство современных вторичных приборов и контроллеров имеет встроенные источники питания для работы с датчиками с пассивными выходами.
Если же вторичный прибор имеет пассивный вход — по сути, просто резистор, с которого измерительная схема прибора «считывает» падение напряжения, пропорциональное протекающему в цепи току, то для работы датчика необходим дополнительный внешний блок питания. Внешний блок питания в этом случае включается последовательно с датчиком и вторичным прибором в разрыв токовой петли.
Вторичные приборы обычно проектируются и выпускаются с таким расчетом, чтобы к ним можно было подключить как двухпроводные датчики 4-20 мА, так и датчики 0-5, 0-20 или 4-20 мА, подключаемые по трехпроводной схеме. Для подключения двухпроводного датчика к входу вторичного прибора с тремя входными клеммами (+U, вход и общий) задействуют клеммы «+U» и «вход», клемма «общий» остается свободной.
Так как датчики, как уже было сказано выше, могут иметь не только выход 4-20 мА, а, например, 0-5 или 0-20 мА или их невозможно подключить по двухпроводной схеме из-за большого собственного энергопотребления (более 3 мА), то применяют трехпроводную схему подключения. В этом случае цепи питания датчика и цепи выходного сигнала разделены. Датчики имеющие трехпроводную схему подключения обычно имеют активный выход. То есть, если подать на датчик с активным выходом напряжение питания и между его выходными клеммами «выход» и «общий» подключить нагрузочное сопротивление, то в выходной цепи побежит ток, пропорциональный величине измеряемого параметра.
Вторичные приборы обычно имеют достаточно маломощный встроенный блок питания для запитки датчиков. Максимальный выходной ток встроенных блоков питания обычно находиться в пределах 22-50 мА, чего не всегда достаточно для питания датчиков имеющих большое энергопотребление: электромагнитных расходомеров, инфракрасных газоанализаторов и т.п. В этом случае для питания трехпроводного датчика приходиться использовать внешний, более мощный блок питания, обеспечивающий необходимую мощность. Встроенный во вторичный прибор источник питания при этом не используется.
Подобная схема включения трехпроводных датчиков обычно используется и в том случае, когда напряжение встроенного в прибор источника питания не соответствует тому напряжению питания, которое допускается подавать на этот датчик. Например, встроенный источник питания имеет выходное напряжение 24В, а датчик разрешается питать напряжением от 10 до 16В.
Некоторые вторичные приборы могут иметь несколько входных каналов и достаточно мощный блок питания для запитки внешних датчиков. Необходимо помнить, что суммарная потребляемая мощность всех подключенных к такому многоканальному прибору датчиков должна быть меньше мощности встроенного источника питания, предназначенного для их питания. Кроме того, изучая технические характеристики прибора необходимо четко различать назначение встроенных в него блоков (источников) питания. Один встроенный источник используется для питания непосредственно самого вторичного прибора — для работы дисплея и индикаторов, выходных реле, электронной схемы прибора и т.п. Этот источник питания может иметь достаточно большую мощность. Второй встроенный источник используется для запитки исключительно входных цепей — подключенных к входам датчиков.
Перед подключением датчика к вторичному прибору следует внимательно изучить руководства по эксплуатации на данное оборудование, определить типы входов и выходов (активный/пассивный), проверить соответствие потребляемой датчиком мощности и мощности источника питания (встроенного или внешнего) и только после этого производить подключение. Реальные обозначения входных и выходных клемм датчиков и приборов могут отличаться от тех, что приведены выше. Так клеммы «Вх (+)» и «Вх (-)» могут иметь обозначение +J и -J, +4-20 и -4-20, +In и -In и т.п. Клемма «+U пит» может быть обозначена как +V, Supply, +24V и т.п., клемма «Выход» — Out, Sign, Jout, 4-20 mA и т.п., клемма «общий» — GND, -24V, 0V и т.п., но смысла это не меняет.
Датчики с токовым выходом имеющие четырехпроводную схему подключения имеют аналогичную схему подключения, что и двухпроводные датчики с той лишь разницей, что питание четырепроводных датчиков осуществляется по отдельной паре проводов. Кроме того, четырехпроводные датчики могут иметь как активный, так и пассивный выход, что необходимо учитывать при выборе схемы подключения.
Подключение аналоговых датчиков с выходом типа «ток» к модулям MegaD (инструкция)
Внимание! Данная инструкция по подключению датчиков с выходным сигналом 4-20мА к АЦП разъемам модулей «MegaD» рассчитана на подготовленных пользователей.
Пожалуйста, будьте внимательны при подключении датчиков подобного типа, так как неправильное подключение может вывести из строя порт контроллера.
В промышленной электронике и системах сигнализации часто применяются аналоговые датчики с выходным сигналом типа «ток» (например, 4-20мА). В частности, датчики давления. От пользователей модулей «MegaD» часто приходят вопросы, можно ли подключить такие датчики к контроллеру и как это сделать.
Модуль «MegaD» напрямую измерять ток не может, но может измерять напряжение от 0 до напряжения питания микроконтроллера, равного +3,3 Вольта. Значит, нужно преобразовать ток датчика в напряжение. Как это сделать? Да очень просто!
Наверное, многие помнят из школьного курса физики, что есть такой закон – Ома. Это основа всей электротехники и электроники. Он гласит: «Сила тока в участке цепи прямо пропорциональна напряжению и обратно пропорциональна электрическому сопротивлению данного участка цепи» и записывается следующей формулой:
I = U/R
где I – ток в Амперах,
U – напряжение в Вольтах,
R – сопротивление в Омах.
Датчик с выходным сигналом типа «ток» (4-20мА) представляет собой некое устройство, включаемое в цепь, состоящую из источника постоянного напряжения, собственно датчика и сопротивления нагрузки. При изменении измеряемого параметра на датчик его внутреннее сопротивление изменяется, что вызывает изменение тока, проходящего через сопротивление нагрузки и, соответственно, изменение падения напряжения на нём, равное:
Это напряжение мы и будем измерять.
Для примера возьмём датчик давления APZ2410. Его напряжение питания от +12 до +36 Вольт, сопротивление нагрузки не более 1000 Ом и выходной сигнал – ток от 4 до 20 мА. Подключение двухпроводное, его схема – на чертеже:
Измерять будем падение напряжения на резисторе R1, подключив его к одному из аналого-цифровых преобразователей «MegaD». Наиболее удобно это сделать, подключив потенциальный вывод резистора к пину 1, а земляной – к пину 3 штыревого разъёма ХР3 или ХР4 на модуле «MegaD-328», либо ХР5 или ХР6 на модуле «MegaD-2561». Резистор нужно располагать как можно ближе к модулю «MegaD» и соединять его с датчиком экранированным кабелем. +12 В проще всего взять от блока, питающего модуль.
Теперь рассчитаем ориентировочное сопротивление резистора R1. Максимальный выходной сигнал датчика при максимальном воздействии измеряемого параметра равен 20 мА. Максимальное напряжение, измеряемое АЦП, 3,3 В.
R=U/I=3,3 В / 0,02 А = 165 Ом.
Почему это ориентировочное сопротивление? Хотя бы потому, что теория – теорией, а практика может вносить какие-то свои коррективы. Напряжение питания микроконтроллера может несколько отличаться у разных экземпляров модуля, это изменит верхний предел измерения. Также, не всегда необходимо использовать весь диапазон измерения датчика. Пусть датчик может измерять давление до 4 бар, а вам известно, что давления свыше 3 бар у вас не будет. Если взять сопротивление, рассчитанное по максимальному току датчика при максимальном давлении, то диапазон преобразования АЦП будет использован только на ¾, а это снижает точность. Поэтому, если это возможно, нужно подать на датчик максимальное реальное давление и подобрать резистор R1 так, чтобы АЦП выдавал максимально возможный или удобный для дальнейшей обработки результат преобразования. Проще всего использовать при этом переменный или подстроечный резистор. Конечно, так делать не обязательно.
Входы АЦП достаточно высокоомны, и помехи, наводимые на соединительный кабель, могут вызывать нестабильность показаний АЦП. Для минимизации этого служат конденсаторы С1 и С2, которые должны подключаться непосредственно или максимально близко к резистору. Возможно, они и не понадобятся, это всё зависит от конкретных условий на месте. А, возможно, их будет недостаточно для стабильных показаний АЦП. Тогда придётся применить программное усреднение нескольких последовательных результатов измерения.
На основе вышеуказанных принципов нетрудно разработать схему подключения к АЦП «MegaD» и рассчитать её параметры и для других типов аналоговых датчиков и устройств, которые в силу своих параметров (например, напряжение на выходе более 3,3В, не могут быть подключены к контроллеру напрямую без дополнительной обвязки).
Не исключено, что для подключения подобного рода датчиков в будущем будет специально изготовлена плата согласования.
Подключение аналоговых датчиков с выходом типа «напряжение»
В том случае, если на выходе датчика напряжение до 3,3В, его можно подключать к АЦП входу без всякого согласования. Но если напряжение на выходе более 3,3В, тогда необходимо ограничить выходное напряжение резистором. Схема подключения таких датчиков представлена ниже.
Конденсатор — элемент рекомендуемый, но не обязательный.
Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.
Добавить комментарий:
Сортировка комментариев: Последние сверху | Первые сверху
2019-09-24 19:26:44 | svetozar161
У меня дома работает мега2560, стоит скетч по отслеживанию аналогового датчика давления в системе отопления. Подключен на порт А2, крайние значения датчика 0.5 в — 4.5 в все работает, ничего не горит. Насколько я знаю, мега толерантна к 5 вольтам на аналоговых входах, почему у вас именно до 3.3 вольт?
2018-09-18 16:38:36 | Алексей
Илья, штатно это решается либо выносом инверторов за пределы коттеджа и объединением их в один пул, либо созданием сети постоянного тока между коттеджами, объединяющей поля СБ. В плохом варианте, если есть избыток в локальной сети коттеджа — открывается доступ к локальным СБ соседям (вернее, их инверторам). В хорошем — поле батарей всегда общее, а лимитируется потребление. В целом, все решения индивидуального типа не способны заметно сократить потери, помогает только полное объединение отдельных систем в более крупную с лимитированием потребителей. Сделать «IP удлинитель токового датчика» технически возможно, но заметной практической пользы не имеет.
2018-09-16 18:16:49 | Илья
Написал вопрос, прочитал и понял, что в этой схеме есть одна проблема — это грубое бесступенчатое ограничение генерации «без обратной связи», когда при излишке генерации например в 500Вт, будет «рубиться» генерация излишков в 1-8кВт конкретно взятого коттеджа, которые в этот момент уходили бы на другой/другие коттедж:((.
Есть вариант через стандартное токовое кольцо сетевого инвертора «пропускать» ток нужной полярности/уровня, чтобы как-то «модулировать» все это дело?
2018-09-16 17:51:04 | Илья
Попутно объясню зачем все это нужно.
У каждого коттеджа своё поле солнечных панелей, и своя нагрузка, которая смещена по времени, и вот задача в том, чтобы излишки генерации одного коттеджа могли уйти на потребителей другого коттеджа, но при этом, в случае высокой разности генерация/потребление — излишки не уходили в сторону энергетиков.
2018-09-16 17:45:24 | Илья
Давайте я немного упрощу задачу.
Допустим у нас три сетевых инвертора SOFAR, на трёх коттеджах (небольшой посёлок), при этом в этом посёлке стоит один расчётный трёхфазный счётчик, по которому ведутся расчеты с энергетиками. Собственно задача — пресечь отдачу излишков генерации именно со стороны этого счетчика. И именно на этом счётчике на каждую фазу ставим токовое кольцо с Вашим контроллером, тандем которых должен «ловить» событие — «излишки пошли в сторону энергетиков».
И вот мысль в следующем.
На каждом сетевом инверторе SOFAR ставится своё токовое кольце «за счетчиком», чтобы этот инвертор видел «локальные» излишки именно своей генерации, которые уходят за пределы этого коттеджа.
А ваш контролёр, через контакте реле ставиться в «разрыв» этого токового кольца и сетевого инвертора.
А работать это все должно следующим образом:
Когда «головной» контроллер, который стоит на «главном» трёхфазном вводе, НЕ РЕГИСТРИРУЕТ передачу излишковв Сеть, он отдаёт команду «локальным» контроллерам разовать цепь между сетевым инвертором и его токовым кольцом, что даёт возможность сетевому инвертору работать без ограничений.
Когда же головной контролёр начинает «регистрировать» на главном вводе передачу излишков в Сеть — он отдаёт команду «локальным» контроллерам на коттеджах «замкнуть» цепь между сетевым инвертором и его токовым кольцом, в результате чего, сетевой инвертор регистрирует свою «переработку» и автоматически снижает генерацию.
Возможна такая схема на ваших контроллерах?
2018-08-20 12:51:28 | Andrey_B
Илья, не имея описанного солнечного инвертора, очень сложно что-то сказать чисто умозрительно и теоретически. Вероятно, согласовать инвертор и контроллер можно, но нужно детально изучать, куда, что и как инвертор выводит.
2018-08-20 09:37:45 | Илья
Добрый день!
Такой вопрос..
Имеет сетевой солнечный инвертор инвертор SOFAR, имеется к нему токовое кольцо, которое определяет направление тока, то есть — если электричество «побежало» в сеть — сетевой инвертор видит это через токовое кольцо (я так понял — у токового кольца меняется полярность генерируемого напряжения).
Собственно вопрос — можно ли через связку Вашего контроллер «MegaD + токовый датчик» это самое «событие» ловить и передавать на другой такой же контроллер, который будет генерировать такой же сигнал на своем выходе (и на входе в сетевой инвертор)?
Основная задача — встать в разрыв токового кольца сетевого инвертора стэком TCPIP для увеличения дистанции этой связки с использованием IP сетей.
2017-04-25 08:48:18 | Ruslan
Владимир, спасибо за предложение. Интересный вариант.
2017-04-24 22:46:11 | Владимир
Посмотрите ACS712 развязка до 2кВ.
2017-04-20 22:37:23 | Алексей
Не надо там на каталог смотреть. Они мотают на заказ что угодно и в каком угодно виде. А так да, примерно так и подключается. Измерить ток не получится, но детектировать вклчение/выключение техники — вполне, обычно этого достаточно.
2017-04-20 14:42:48 | Ruslan
Алексей, спасибо за ответ. Только на сайте упомянутого Вами предприятия не нашел датчик тока 5000:1. Может быть там он обозначен как «ТП03С-200А-00-3/0(ок)» (Датчик тока на печ. плату с логическим выходом, открытый сток, ток уставки 0.3-200а, развязка 10 кВ)? Правильно ли я понимаю, что любая из жил провода, ведущих к нагрузке, помещается в отверстие датчика, сам датчик тока подключается к U-sensor, а U-sensor ко входу Меги?
2017-04-20 13:28:07 | Алексей
Руслан, собственно, вам нужен U-sensor и датчик тока 5000:1 с длинными выводами.
Одно заказывается на этом сайте, другое в «аисте57» г. Орёл.
И всё. Будет срабатывать на нагрузке большей 250 ватт.
2017-04-19 16:18:39 | Ruslan
А планируется ли изготовить (и предложить «страждущим») датчик тока, чтобы любой «чайник» мог безопасно подключать его к MegaD? Уж очень в «умном доме» важно знать, работает ли фактически телевизор, кондиционер, стиральная машина и т.п. (хоть они и питаются от переменного тока).
Датчик температуры DS18B20: подключение, программирование
Подключение датчика DS18B20 к микроконтроллеру
Программирование работы микроконтроллера с датчиком DS18B20
В двух предыдущих статьях мы рассмотрели устройство датчика температуры DS18B20 и систему команд датчика. В этой статье мы рассмотрим схему подключения одного или нескольких датчиков к микроконтроллеру и программирование работы МК с датчиком (датчиками) по шине 1-Wire с внешним питанием
Подключение датчика DS18B20 к микроконтроллеру
Типовая схема подключения датчиков DS18B20 к микроконтроллеру:
Как видно из схемы, датчик DS18B20 (или датчики) подключаются к микроконтроллеру, если они имеют общее питание, тремя проводниками:
— вывод №1 — общий провод (масса, земля)
— вывод №2 — он же DQ , по которому происходит общение между МК и DS18B20, подключается к любому выводу любого порта МК. Вывод DQ обязательно должен быть «подтянут» через резистор к плюсу питания
— вывод №3 — питание датчика — +5 вольт
Если в устройстве используется несколько датчиков температуры, то их можно подключить к разным выводам порта МК, но тогда увеличится объем программы. Датчики лучше подключать как показано на схеме — параллельно, к одному выводу порта МК.
Напомню о величине подтягивающего резистора:
«Сопротивление резистора надо выбирать из компромисса между сопротивлением используемого кабеля и внешними помехами. Сопротивление резистора может быть от 5,1 до 1 кОм. Для кабелей с высоким сопротивлением жил надо использовать более высокое сопротивление. А там где присутствуют промышленные помехи – выбирать более низкое сопротивление и использовать кабель с более большим сечением провода. Для телефонной лапши (4 жилы) для 100 метров необходим резистор 3,3 кОм. Если вы применяете «витую пару» даже 2 категории длина может быть увеличена да 300 метров»
Программирование работы микроконтроллера с датчиком DS18B20
Как происходит общение датчика DS18B20 с микроконтроллером мы рассмотрим используя даташит датчика и программу Algorithm Builder.
Последовательность операций общения
ОЧЕНЬ ВАЖНО следовать установленной последовательности (которая состоит из трех пунктов) каждый раз при обращении к DS18B20:
1. Инициализация
2. Команда ROM
3. Функциональная команда DS18B20
Только две команды выполняется в два шага: Поиск ROM и Поиск Аварии.
Инициализация DS18B20
Последовательность выполнения инициализации состоит из двух частей:
— импульс сброса — который формирует микроконтроллер
— импульс присутствия — который формирует DS18B20
Исходное состояние шины DQ, по которой происходит общение МК и датчика, — логическая 1, так как шина DQ «подтянута» через резистор к питанию.
По состоянию шины DQ можно определить подключен ли датчик к микроконтроллеру:
— если на шине логическая 1 — значит датчик подключен
— если не логическая 1 — значит датчик не подключен (или забыли подключить, или обрыв линии DQ)
Поэтому, последовательность выполнения инициализации можно дополнить еще одним пунктом — проверка подключения датчика. Но учтите, что эту проверку можно провести только при одном датчике.
Проверяем подключение датчика DS18B20:
Где:
— INI_DS18B20 — подпрограмма инициализации
— DQ_Pin — имя, которое я присвоил, разряду порта к которому подключен датчик (если смотреть по схеме, то это вывод PB0 порта В)
— DQ_Pin=1 — проверка подключения датчика — если на выводе DQ_Pin логическая единица то переходим по стрелке, если нет, то:
— 1—> Term_Error, где Term_Error — переменная в которую записывается код ошибки, в данном случае «1»
— Show_Term_Error — переход к подпрограмме вывода ошибки на дисплей
К примеру, при использовании трехразрядного семисегментного дисплея, можно вывести такую строчку:
— Er1, что означает — возникла ошибка, код ошибки-1 (датчик не подключен)
Теперь заглянем в даташит датчика и посмотрим временной график процедуры инициализации:
Переводим график в слова:
1. Исходный уровень шины DQ — логическая единица (за счет подтягивающего резистора)
2. Микроконтроллер формирует импульс сброса:
— МК переводит шину DQ в состоянии логического нуля на время не менее 480 микросекунд
— МК отпускает шину (переводим вывод в режим приема), при этом шина DQ опять переходит в состоянии логической единицы
3. DS18B20 обнаружив перепад уровня на шине (с логического нуля на логическую единицу) через 15-60 микросекунд передает импульс присутствия — переводит шину DQ в состояние логического нуля на длительность 60-240 микросекунд
4. По завершению импульса присутствия DS18B20 возвращает шину DQ в уровень логической единицы (судя по графику — через 480 микросекунд, от окончания импульса сброса, шина должна стопроцентно вернуться в уровень логической единицы)
Теперь переведем это все на язык программы. Но при этом следует учесть, что в процессе инициализации могут возникнуть еще две ошибки:
— DS18B20 не выдал импульс присутствия
— после импульса присутствия от DS18B20 шина DQ не вернулась в состоянии логической единицы
На графике указаны минимальные временные характеристики, поэтому в программе они несколько завышены или взяты максимальные (из минимальных) значения:
— импульс сброса от МК — не 480 а 500 микросекунд
— пауза от окончания импульса сброса до импульса присутствия — 60 микросекунд
— возврат шины в состояние логической единицы после импульса присутствия через 420 микросекунд
Я надеюсь с первым вопросом — ИНИЦИАЛИЗАЦИЯ, мы разобрались
Переходим к следующему шагу обязательной последовательности — «Команда ROM»
Команда ROM
Следующим шагом нашего общения с DS18B20 мы должны подать ему нужную команду ROM
Напоминаю, что команд ROM всего пять:
1. Поиск ROM — может применяется (а может и не применяться, я, к примеру, ее в большинстве случаев не использую) в случае применения нескольких датчиков или других устройств общающихся с МК по шине 1-Wire
2. Чтение ROM — применяется при одном подключенном датчике для считывания его 64-битного кода
3. Соответствие ROM — применяется в случае если датчиков более одного для обращения к конкретному датчику
4. Пропуск ROM — команда используется для обращения сразу ко всем датчикам (устройствам) подключенным к МК. Практически применяется для подачи функциональной команды на конвертирование температуры (определение температуры) всеми подключенными датчиками одновременно
5. Поиск тревоги — если мы задали DS18B20 верхний и нижний предел температуры, которые нам нужно контролировать. В этом случае нам ответят только те датчики измеренная температура которыми соответствует заданным пределам
Каждая команда ROM имеет шестнадцатиразрядный код (также как и функциональные команды), поэтому для удобства в программе очень можно определить константы, которые имеют понятные названия команд, к примеру:
В этой таблице заданы константы нужных мне для работы с датчиками команд.
После первого шага — ИНИЦИАЛИЗАЦИЯ, и передачи датчику DS18B20 команды ROM, датчик готов выполнить функциональную команду.
В предыдущей статье я подробно рассказал и о командах ROM, и о функциональных командах, повторяться не буду (я про функциональные команды).
Два примера алгоритма работы с DS18B20:
1. При использовании одного датчика:
— выполняем инициализацию
— подаем датчику команду ROM — «Пропуск ROM»
— подаем датчику функциональную команду — «Конвертировать температуру» (измерить температуру)
В процессе конвертирования контролируем работу датчика — если на шине ноль, то конвертирование не закончилось, если на шине логическая единица — конвертирование закончено.
Теперь можно считать температуру с датчика:
— выполняем инициализацию
— подаем датчику команду ROM — «Пропуск ROM»
— подаем датчику функциональную команду — «Чтение памяти»
По команде «чтение памяти» датчик начинает передачу данных из своей памяти — все девять байт. Но нам нужны только первые два байта — в них записана текущая измеренная датчиком температура. Поэтому считываем только два первых байта и выходим из подпрограммы.
Предыдущие статьи:
Следующая статья:
(17 голосов, оценка: 4,88 из 5)
Входы и выходы контроллера (ПЛК), дискретные и аналоговые
Входы и выходы — базовое понятие любого контроллера. Это может быть промышленный контроллер (Beckhoff, Овен, Siemens, ABB), специальный контроллер для системы Умный Дом (Larnitech, Wiren Board, EasyHomePLC, Evika) или распределённая система KNX или HDL. В любой системе есть элементы типа «дискретный вход», «дискретный выход», «аналоговый вход», «аналоговый выход».
Поскольку для расчёта системы и вообще понимания того, откуда берётся её стоимость, очень важно знать разницу между входами и выходами, расскажу подробнее о них.
Входы контроллера
Вход — это клемма для подключения какого-либо источника сигнала, который передаёт информацию в контроллер. Какие могут быть источники сигнала?
Выключатель — это источник сигнала. Сигнал может быть либо «нажато» либо «не нажато». То есть, либо логический ноль, либо логическая единица.
Тут мы переходим к понятию того, что вход и выход может быть дискретным (бинарным или цифровым его могут называть) или аналоговым. Дискретный — значит, воспринимающий либо единицу, либо ноль. Выключатель подключается к дискретному входу, так как он либо нажат, либо не нажат, других вариантов нет.
Дискретный вход может либо ожидать появления какого-то напряжения, либо замыкания входа на землю. Например, контроллер ОВЕН ПЛК воспринимает как логическую единицу появление на входе напряжения от +15 до +30 вольт. А контроллер WirenBoard ожидает, что на входе появится земля (GND). В первом случае на выключатель надо подать +24В, чтобы при нажатии кнопки на вход контроллера пришли +24 вольта, во втором — на выключатель подаём общий минус (землю) с того же модуля входов, при нажатии она придёт на контроллер.
Датчик движения также подключается к дискретному входу контроллера. Датчик либо подаёт сигнал о том, что движение есть, либо о том, что движения нет. Вот схема подключения датчика Colt XS:
Два левых контакта — напряжение питания датчика, +12 вольт. Два средних контакта — тревожный контакт, он нормально-замкнут. То есть, если движения нет, то N и С замкнуты, если движение появляется, то N и С размыкаются. Так сделано для того, чтобы если злоумышленник перережет провод датчика или повредит датчик, то цепь разорвётся, что приведёт к сработке сигнализации. Если на датчик не подавать питание, то N и С также будут разомкнутыми.
В случае с контроллерами Овен, Beckhoff и большинством других контроллеров, нам надо подать на один из контактов датчика +24 вольта, а другой подключить ко входу контроллера. Если контроллер видит на входе +24В, то есть, логическую единицу, то всё в порядке, движения нет. Как только сигнал пропадает, значит, датчик сработал. В случае с контроллером, который детектирует не напряжение, а землю (как в Wirenboard), мы подключаем N к общему минусу контроллера, С так же к его входу.
Контакты Т датчика — это тампер, датчик вскрытия корпуса. Они также нормально замкнуты, размыкаются при вскрытии корпуса датчика. Такие контакты есть у многих элементов охранных систем. Для датчиков охранной сигнализации тампер можно подключить последовательно клеммам сработки, для датчиков на включение света можно вообще не подключать тампер.
Датчик протечки воды также подключается к дискретному входу. Принцип тот же — при отсутствии протечки с датчика приходит сигнал. Нужно по каждому датчику смотреть по инструкции, замкнут он в случае протечки или разомкнут.
Аналоговый вход контроллера видит не просто наличие или отсутствие сигнала, он видит величину сигнала. Универсальный аналоговый сигнал — это от 0 до 10 вольт постоянного тока, такой сигнал даёт множество разных датчиков. Либо от 1 до 10 вольт. Есть ещё токовый сигнал — от 4 до 20 миллиампер. Почему не от ноля, а от 1 вольта или 4 миллиампер? Чтобы понимать, работает ли вообще источник сигнала. Если датчик с выходным сигналом 1-10 вольт выдаёт 1 вольт, значит, это соответствует минимальному уровню измеряемой величины. Если 0 вольт — значит, он выключен или сломан, а может, провод оборван.
Датчики температуры могут выдавать от 0 до 10 вольт. Если по паспорту датчик измеряет температуру в диапазоне от 0 до +50 градусов, значит, сигнал 0 вольт соответствует 0 градусов, сигнал 5 вольт соответствует +25 градусов, сигнал 10 вольт соответствует +50 градусов. Если датчик измеряет температуру в диапазоне от -50 до +50 градусов, то 5 вольт от датчика соответствуют 0 градусов, а, скажем, 8 вольт от датчика соответствуют +30 градусам.
То же с датчиком влажности или освещённости. Смотрим диапазон измерения параметра, смотрим выходной сигнал и можем получить точную измеряемую величину.
То есть, аналоговый вход измеряет величину сигнала: ток или напряжение. Многие датчики выпускаются в разных модификациях: с выходом по току или по напряжению. Если нам для системы надо найти какой-то редкий датчик, например, уровня определённого газа в воздухе, то, скорее всего, у него будет выход либо 0-10В, либо 4-20мА. У более продвинутых — интерфейс RS485, о нём чуть позже.
Датчики угарного газа, природного газа (метана) и пропана обычно имеют дискретный выход, то есть, подключаются к дискретному входу контроллера и подают сигнал, когда значение измеряемой концентрации газа становится опасным. Датчики уровня углекислого газа или кислорода дают аналоговое значение, соответствующее уровню газа в воздухе, чтобы контроллер сам мог принимать решение о каком-то действии.
Выходы контроллера
Выходы — это клеммы, на которые сам контроллер может подать сигнал. Контроллер подаёт сигнал, чтобы чем-то управлять.
Дискретный выход — это выход, на который контроллер может подать либо логический ноль, либо логическую единицу. То есть, либо включить, либо выключить.
Свет без регулировки яркости подключается к дискретному выходу.
Электрический тёплый пол — тоже к дискретному выходу.
Клапан перекрывания воды, или электрическая розетка, или вентилятор вытяжки, или привод радиатора — они подключаются к дискретным выходам контроллера.
В зависимости от конкретного модуля дискретных выходов выход может быть либо транзисторным (открытый коллектор), то есть, требующим реле для управления каким-то мощным прибором, либо релейным, то есть, к нему сразу можно что-то подключить. Надо смотреть характеристики выхода — коммутируемое напряжение и ток. Важно понимать, что если написано, что выход коммутирует 230 вольт 5 ампер резистивной нагрузки, то это относится только к лампочке накаливания. Светодиодная лампа — надо делить ток на десять. Блоки питания и электромоторы тоже далеко не резистивная нагрузка.
Выход типа «открытый коллектор» не позволяет подключать на него нагрузку, только реле. Надо смотреть, чтобы коммутационные возможности выхода соответствовали току и напряжению катушки реле.
Аналоговый выход — клемма, на которую контроллер может подать сигнал не только включено-выключено, но определённое значение управления. Это те же 0-10 (или 1-10) вольт, либо 4-20 миллиампер. Далее на этот управляющий сигнал мы подключаем либо диммер освещения, либо регулятор скорости вращения вентилятора либо что-то ещё, имеющее соответствующий вход.
Управление освещением — это силовой диммер, который в зависимости от сигнала 0-10 вольт с контроллера даёт на выходе от 0 до 230 вольт переменного тока для питания ламп накаливания или диммируемых светодиодных ламп.
Для светодиодных лент используется ШИМ-диммер (или ШИМ-драйвер или блок питания с диммированием), он по сигналу 0-10 либо 1-10 вольт с контроллера подаёт на ленту широтно-импульсно модулированный сигнал для диммирования. Подробнее про ШИМ у меня написано здесь.
Для вентиляторов используется тиристорный регулятор, часто также со входом 0-10 вольт.
Интерфейсы контроллера
У любого контроллера есть разные интерфейсы связи, которые определяют, с какими устройствами он может общаться. Интерфейсы связи обычно двухсторонние, то есть, контроллер может передавать на них информацию и получать информацию о состоянии.
Интерфейс Ethernet — это подключение к компьютерной сети и интернету для управления с мобильного приложения или общения с другими контроллерами. Аналогично интерфейс Wi-Fi.
Интерфейс RS-485 Modbus — самый распространённый для связи с разной техникой. Это кондиционеры, вентмашины, различные датчики и исполнительные устройства, модули расширения и много чего ещё.
RS-232 это интерфейс с маленькой дальностью линии. Обычно это, например, GSM модемы.
KNX — интерфейс связи с шиной KNX, на которой может находиться очень много устройств всех видов.
Получаем такую сводную картинку по входам и выходам контроллера:
Пример
Возьмём для примера контроллер системы Умный Дом EasyHomePLC 5.2.
У него 32 дискретных входа. Напряжение на входе должно быть от +9 до +60 вольт, чтобы контролер считал его единицей.
Из этих 32 входов 16 могут быть аналоговыми. Сигнал на входе от 0 до 10 вольт.
18 дискретных выходов. Из них 9 релейные (коммутация 16 ампер 230 вольт), 9 открытых коллекторов для подключения внешних реле.
6 ШИМ выходов с током коммутации до 1.4 ампера и напряжением до 30 вольт на каждый выход. Это управление светодиодной лентой, либо сигнал 0-10 вольт, если на ШИМ выход подключить RC-цепочку (резистор и конденсатор будут сглаживать сигнал ШИМ).
Интерфейсов связи у него много: Ethernet, два RS-485, два RS-232, miniUSB (для прошивки).
Подробнее про входы и выходы можно почитать здесь:
170,367 просмотров всего, 396 просмотров сегодня
Форум АСУТП
Клуб специалистов в области промышленной автоматизации
- Обязательно представиться на русском языке кириллицей (заполнить поле «Имя»).
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже предостаточно — придумайте что-то пооригинальнее.
- Не писать свой вопрос в первую попавшуюся тему — вместо этого создать новую тему.
- За поиск и предложение пиратского ПО — бан без предупреждения.
- Рекламу и частные объявления «куплю/продам/есть халтура» мы не размещаем ни на каких условиях.
- Перед тем как что-то написать — читать здесь и здесь.
подключение аналоговых датчиков
подключение аналоговых датчиков
Сообщение brukvalub » 28 окт 2016, 08:48
подключение аналоговых датчиков
Сообщение RomTom » 28 окт 2016, 09:20
подключение аналоговых датчиков
Сообщение brukvalub » 28 окт 2016, 09:28
подключение аналоговых датчиков
Сообщение alex45 » 28 окт 2016, 09:41
подключение аналоговых датчиков
Сообщение Ryzhij » 28 окт 2016, 09:43
ТСМУ — если у Вас ТСМУ со встроенным нормирующим термопреобразователем («таблеткой») на 4-20мА с питанием от петли, то на используемый аналоговый вход контроллера, рассчитанный на приём 0-10V, прежде всего надо повесить прецизионный резистор-шунт 500 Om между входом («0» или «1») и минусом «2M».
Далее, питание токовой петли осуществляете подачей +24VDC на +ТСМУ, -ТСМУ соединяете с аналоговым входом контроллера (там уже один конец резистора висит), а -24VDC соединяете с «2M» (а там у нас уже другой конец резистора).
ТСП — Обычные ТСП подключаются через нормирующие преобразователи.
подключение аналоговых датчиков
Сообщение alex45 » 28 окт 2016, 09:47
подключение аналоговых датчиков
Сообщение Ryzhij » 28 окт 2016, 09:57
Везде можно использовать.
Поправочные коэффициенты вносятся в программу ПЛК, где происходит масштабирование полученного кода с AI.
Прецизионный резистор выбирается только потому, что:
— он стабильней;
— в стандартном ряду нет номинала 500.
Можно и обычный применить, но из-за нестабильности и неполного покрытия динамического диапазона упадёт точность.
подключение аналоговых датчиков
Сообщение Ryzhij » 28 окт 2016, 10:03
подключение аналоговых датчиков
Сообщение Михайло » 28 окт 2016, 10:13
подключение аналоговых датчиков
Сообщение alex45 » 28 окт 2016, 10:25
Михайло писал(а): Ryzhij писал(а):
Источник цитаты Везде можно использовать.
Нельзя везде. При таком техническом решении никакими расчетами не докажешь, что погрешность измерений в норме. Это прямое нарушение закона о единстве измерений.
подключение аналоговых датчиков
Сообщение Ryzhij » 28 окт 2016, 10:33
«А мужики-то и не знают!»
Есть документ такой, «Методика поверки канала измерения» называется. Вот такой документ и должен быть «рождён» проектантом измерительной системы.
У нас, например, где на панельках оператора, где на АРМ рабочих станций, есть запароленные для изменения служебные экраны с которых можно изменять коэффициенты масштабирования при поверке и калибровке.
Приходит гос.поверитель, подключает калибратор и смотрит отображаемые инженерные единицы на экране.
По окончании рутинной процедуры в протокол заносятся новые коэффициенты. На АРМ-ах мы метрологам ещё и скриншот распечатываем.
На память и для «густоты мысли». Начальству картинки нравятся.
В чём проблема?
Пломба Вам нужна? — Повесьте. Только о последствиях при ТО подумайте.
А от поправочных коэффициентов в программе при использовании AI в оборудовании класса S1200 мы всё равно не уйдём.
В более солидных системах поправочные коэффициенты вносятся в конфигурацию AI-модуля. Тоже самое и с нормирующими преобразователями солидных фирм.
Разница только в разрядности и быстродействии АЦП.
Не надо думать, что «принцессы пукают бабочками».