Подключение оптопары к Ардуино: MAX6675 и LM35 для микроконтроллера

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

Технические характеристики термопары типа K для магазина Adafruit:

  • Размер: длина — 1 метр (при необходимости можно обрезать);
  • Стоимость в магазине Adafruit: около 10 долларов (китайские аналоги — Aliexpress или eBay — предлагают цену вдвое дороже — до 5 долларов);
  • Диапазон измеряемых температур: от -100 ° C до 500 ° C / от -150 до 900°;
  • Диапазон выходного напряжения: от -6 до +20 мВ;
  • Точность измерения: + -2 ° C;
  • Вам нужен преобразователь типа MAX31855;

Подключение термопары

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

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

Подключите провода термопары к интерфейсной плате:

Платы MAX6675 и MAX31855 несовместимы с термопарами, требующими заземления.

Иногда встречаются термопары с неправильной маркировкой (цветом) проводов. Если после проверки работоспособности вы обнаружите, что температура не повышается, а падает, попробуйте поменять местами красный и желтый провода.

Подключение термопары

Использование термопары

Если вы используете интерфейсную микросхему AD595, вы можете просто подключить выходное напряжение к аналоговому входу на вашем Arduino (или другом микроконтроллере) и выполнить некоторые дополнительные вычисления, чтобы преобразовать ваши 10 мВ / ° C в числовое значение на выходе.

Использование термопары

Если вы планируете использовать MAX6675 / MAX31855 или их аналоги, подключение будет немного сложнее. Во-первых: Vin и GND должны быть подключены к источнику питания 3-5 В. Остальные три контакта (контакты данных) подключены к цифровым контактам Arduino:

  • CLK (clock) — вход в MAX6675 / MAX31855 (и выход в Arduino), который сигнализирует, когда необходимо передать новый бит данных;
  • Вывод DO (вывод данных) из MAX6675 / MAX31855 (ввод в Arduino), через который передается каждый бит данных;
  • Вход CS (выбор микросхемы) на MAX6675 / MAX31855 (выход из Arduino), указывающий, когда пора считать термопару и предоставить дополнительные данные.

В начале эскизов Arduino эти контакты необходимо инициализировать. В нашем конкретном примере DO подключается к цифровому выводу 3 на Arduino, CS — к цифровому выводу 4, а CLK подключается к выводу 5.

Использование термопары 2

Если вы используете MAX31855 v1.0 в шумной среде, рекомендуется добавить конденсатор 0,01 мкФ между контактами термопары (см. Изображение выше).

MAX31855 не поддерживает заземленные термопары. Если датчик заземлен, микросхема выдаст ошибку.

Библиотека Arduino

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

После загрузки разархивируйте и переименуйте папку в Adafruit_MAX31855 и скопируйте ее в папку с библиотеками.

Перезагрузите Arduino IDE, откройте скетч, который вы найдете в File-> Examples-> MAX6675 / Adafruit_MAX31855-> serial thermocouple, и загрузите его в свой Arduino. После загрузки эскиза на плату откройте окно последовательного монитора, в котором должен отображаться векторный столбец текущей температуры в градусах Цельсия и Фаренгейта.

Чтение термопары

Как видите, пользоваться этой библиотекой очень просто. Функции readCelsius () и readFahrenheit () используются для отображения температуры в градусах Цельсия и Фаренгейта соответственно.

Добавляем внешний дисплей

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

Telmopar, ЖК-дисплей и Arduino

В нашем случае SCL подключен к цифровому выводу 3, CS — к цифровому выводу 4, а DO — к цифровому выводу 5. После проверки работоспособности вы можете безопасно заменить выводы (не забудьте изменить соответствующие значения в скетче!).

Пример такой схемы есть в библиотеке. Его можно загрузить на Arduino из меню Файл-> Примеры-> MAX31855> lcdtermocoppia. Термопара с дополнительной интерфейсной платой подключается аналогично описанному выше. В результате вы получите значения температуры в градусах Цельсия и Фаренгейта на экране, как показано выше.

Часто задаваемые вопросы

Кажется, что температура, показываемая моей термопарой, меняется в противоположную сторону! Температуру поднимаю, а по показаниям она понижается.

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

Выходной сигнал MAX31855 очень нестабильный и шумный. Когда я прикасаюсь к проводам термопары или двигаю их, показания температуры буквально сходят с ума!

Карты MAX31855 очень чувствительны. Для решения этой проблемы можно между контактами термопары установить конденсатор на 0,001 или 0,01 мкФ (например, установить конденсатор в клемму для подключения контактов термопары или припаять снизу как показано на фото ниже).

Конденсатор термопары

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

Термопары типа K не являются прецизионными датчиками! В показаниях непременно будут отклонения. Эти отклонения можно компенсировать на программном уровне для Arduino или других микроконтроллеров. Обычно термометры, в которых используется термопара, калибруются на программном уровне.

для точного измерения температуры можно использовать 1% термистор.

Как подключить несколько термопар одновременно?

Вы можете подключить столько плат MAX31855, сколько выводов Arduino. В этом случае объедините выводы CLK и DO всех плат, подключите их к одному выводу Arduino и подключите выводы CS к отдельным выводам Arduino.

Затем создайте новые функции для термопар в скетче Arduino IDE следующим образом:

Adafruit_MAX31855 термопара1 (thermoCLK, thermoCS1, thermoDO);

Adafruit_MAX31855 термопара2 (thermoCLK, thermoCS2, thermoDO);

Adafruit_MAX31855 термопара3 (thermoCLK, thermoCS3, thermoDO);

Вы можете использовать одни и те же выводы CS и CLK, но разные выводы DO

Adafruit_MAX31855 термопара1 (thermoCLK, thermoCS, thermoDO1);

Adafruit_MAX31855 термопара2 (thermoCLK, thermoCS, thermoDO2);

Термопара Adafruit_MAX318553 (thermoCLK, thermoCS, thermoDO3);

При очень высоких или очень низких температурах измерения неверны

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

Примеры проектов с использованием термопары

Термопара, подключенная к ATMega168, меняет цвет светодиода RGB при изменении температуры:

Машина для обжарки кофейных зерен (сайт на английском языке):

Машина для обжарки кофе в зернах

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

Описание датчиков температуры

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

  • Термопары;
  • Термисторы;
  • Пьезоэлектрические датчики;
  • Полупроводниковые датчики;
  • Цифровые датчики;
  • Аналоговые датчики.

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

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

  • Функция преобразования, например, зависимость выходного значения от измеренного значения. Для датчиков температуры этот параметр измеряется в Ом / C или мВ / К.
  • Диапазон измеряемых температур.
  • Метрологические параметры: к ним относятся различные типы ошибок.
  • Продолжительность жизни.
  • Время отклика.
  • Надежность: учтены механическая и метрологическая устойчивость.
  • Параметры эксплуатации: габариты, вес, потребляемая мощность, устойчивость к агрессивным воздействиям окружающей среды, устойчивость к перегрузкам и другие.
  • Линейность выходных значений.

Датчики температуры по типу

  1. Термопары. Принцип действия термопар основан на термоэлектрическом эффекте. Это замкнутая цепь из двух проводников или полупроводников. Электрический ток в цепи возникает при появлении разности температур на стыках. Для измерения температуры один конец термопары помещают в измеряемую среду, а другой конец необходим для снятия показаний. На стыках появляются термоэдс E (t2) и E (t1), которые определяются температурами t2 и t. Результирующая термоЭДС в цепи будет равна разнице термоЭДС на концах переходов E (t2) — E (t1). Термопары часто изготавливаются из платины, хромеля, алюмеля и платины родия. Наиболее распространены в России пары металлов КА (хромель-алюмель), ТХ (хромель-копель) и ТПП (платина-родий-платина). Большой недостаток таких устройств — большая погрешность измерения. Одно из преимуществ — возможность измерения высоких температур — до 1300С.
  2. Терморезистивные датчики. Они изготовлены из материалов с высоким коэффициентом термического сопротивления (TCR). Принцип действия заключается в изменении сопротивления проводника в зависимости от его температуры. Такие устройства обладают высокой точностью, чувствительностью и линейностью измеряемых величин. Основными характеристиками устройства являются номинальное электрическое сопротивление при температуре 25 C и TCS. Датчики термического сопротивления различаются коэффициентом сопротивления температуре: бывают термисторы с отрицательной (NTC) и положительной (PTC, позисторы) TCS. Для первых сопротивление уменьшается с ростом температуры, для положительных — увеличивается. Датчики термического сопротивления чаще всего используются в электронике и машиностроении.
  3. Пьезоэлектрический датчик. Такое устройство работает на пьезоэлектрическом эффекте. Под действием электрического тока происходит изменение линейных размеров — прямой пьезоэлектрический эффект. Когда ток другой фазы подается с определенной частотой, пьезорезонатор колеблется. Частота определяется температурой. Зная полученную зависимость, можно определить необходимые данные о частоте и температуре. Диапазон измерения температуры широк, прибор отличается высокой точностью. Датчики чаще всего используются в научных экспериментах, требующих высокой достоверности результатов.
  4. Полупроводниковый датчик. Измеряется в диапазоне от -55С до 150С. Принцип работы основан на зависимости изменения напряжения на pn переходе от температуры. Поскольку эта зависимость почти линейна, можно создать датчик без сложной схемы. Но для таких устройств схема содержит один pn переход, поэтому датчик отличается большим разбросом параметров и невысокой точностью. Исправить эти недостатки удалось в аналоговых полупроводниковых датчиках.
  5. Аналоговый датчик. Приборы недорогие и обладают высокой точностью измерения, что позволяет использовать их в микроэлектронике. Схема содержит 2 чувствительных элемента (транзистора) с разными характеристиками. Выходной сигнал — это разница падений напряжения на транзисторах. Калибруя датчик с внешними цепями, можно повысить точность измерения, которая находится в диапазоне от + -1C до + -3C. Датчики имеют три выхода, один из которых используется для калибровки.
  6. Цифровой индикатор. В отличие от аналогового датчика, цифровой содержит дополнительные элементы: интегрированный АЦП и формирователь сигнала. Они подключаются через интерфейсы SPI, I2C, 1-Wire, что позволяет одновременно подключать несколько датчиков к шине. Такие устройства немного дороже аналоговых, но при этом значительно упрощают схемы устройства.
  7. Есть и другие датчики температуры. Например, сигнальные устройства могут использоваться для автоматических систем; Есть также пирометры, которые измеряют энергию тела, которое оно излучает в окружающую среду. В медицине часто используются акустические датчики — принцип их действия заключается в разнице скорости звука при разных температурах. Эти датчики удобны для использования в закрытых полостях и недоступных средах. Подобные датчики являются датчиками шума, они работают на основе зависимости разности потенциалов шума на резисторе от температуры.

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

Датчики температуры для работы с Ардуино

При работе с микроконтроллером Arduino часто используются следующие датчики температуры: DS18B20, DHT11, DHT22, LM35, TMP36.

Датчик температуры DS18B20

Ардуино DS18B20
DS18B20 — это 12-битный цифровой датчик температуры. Устройство доступно в 3 вариантах корпуса: 8-контактный SO (150 мил), 8-контактный µSOP и 3-контактный TO-92, последний из которых является наиболее часто используемым. Также он изготовлен в водонепроницаемом корпусе с тремя выходами. Датчик прост и удобен в использовании; многие из этих устройств могут быть подключены к плате Arduino одновременно. А поскольку у каждого устройства есть свой уникальный серийный номер, их не перепутают с результатом измерения. Важной особенностью сенсора является возможность сохранения данных при выключенном устройстве. DS18B20 также может работать в режиме паразитного питания, то есть без внешнего источника питания через подтягивающий резистор.

Датчики температуры DHT

Датчики температуры Arduino
DHT11 и DHT22 — это две версии датчика DHT с одинаковой распиновкой. Их разливают в бутылки по своим характеристикам. DHT11 характеризуется определением температуры в диапазоне от 0C до 50C, определением влажности в диапазоне 20-80% и частотой измерения 1 раз в секунду. Датчик DHT22 обладает лучшими характеристиками, он определяет влажность 0-100%, диапазон температур увеличен — от -40С до 125С, частота дискретизации 1 раз в 2 секунды. Следовательно, стоимость второго датчика выше. Оба устройства состоят из двух основных частей: термистора и датчика влажности. Устройства имеют 4 выхода: питание, сигнальный выход, земля и один из каналов не используется. Датчик DHT11 обычно используется в образовательных целях, так как показывает невысокую точность измерения, но в то же время очень прост в использовании. Прочие технические характеристики устройства: напряжение питания от 3В до 5В, максимальный ток 2,5мА. Чтобы подключиться к Arduino, вам необходимо установить резистор между выводами питания и выводами данных. Вы можете приобрести готовый модуль DHT11 или 22 с установленными резисторами.

Датчик температуры LM35

Arduino lm35
LM35 — это встроенный датчик температуры. Он имеет широкий температурный диапазон (от -55 ° C до 150 ° C), высокую точность (+ -0,25 ° C) и откалиброванный выход. Выводов всего 3: масса, питание и выход мигают. Датчик недорогой, его удобно подключать в схему, так как он откалиброван уже на этапе изготовления, имеет низкое сопротивление и линейную зависимость от выходного напряжения. Важным преимуществом датчика является его калибровка по Цельсию. Характеристики датчика: низкая стоимость, гарантированная точность 0,5 ° C, широкий диапазон напряжений (от 4 до 30 В), ток менее 60 мА, низкий уровень самонагрева (до 0,1 ° C), выходное сопротивление 0,1 Ом при токе 1 мА. Из недостатков можно выделить ухудшение параметров при их удалении на значительное расстояние. В этом случае радиопередатчики, реле, переключатели и другие устройства могут стать источниками помех. Также существует проблема, когда измеренная температура поверхности и температура окружающей среды сильно различаются. В этом случае датчик показывает среднее значение между двумя температурами. Чтобы устранить эту проблему, можно покрыть составом поверхность, к которой крепится датчик температуры.

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

Примеры приложений:

  • Использование в цепях с емкостной развязкой нагрузки.
  • В RC-цепях.
  • Используется как выносной датчик температуры.
  • Термометр со шкалой Цельсия.
  • Термометр Фаренгейта.
  • Термометр с преобразователем напряжение-частота.
  • Создание термостата.

TMP36 – аналоговый термодатчик

tmp36 arduino
Датчик температуры Использует твердотельную электронную технологию для определения температуры. Приборы обладают высокой точностью, малым износом, не требуют дополнительной калибровки, просты в использовании и недороги. Измеряет температуру в диапазоне от -40 ° C до 150 ° C. Параметры аналогичны датчику LM35, но TMP36 имеет более широкий диапазон чувствительности и не выдает отрицательное значение напряжения, если температура ниже нуля. Напряжение питания от 2,7 до 5,5 В. Сила тока — 0,05 мА. При использовании нескольких датчиков может возникнуть проблема, когда полученные данные будут противоречивыми. Это вызвано помехами от других датчиков температуры. Чтобы решить эту проблему, вам нужно увеличить задержку между измерениями регистрации. Низкое выходное сопротивление и линейность результатов позволяют подключать датчик напрямую к цепи контроля температуры. TMP36, как и LM34, имеет низкий нагрев устройства в нормальных условиях.

Сравнение характеристик датчиков температуры Ардуино

Имя Диапазон температур Точность Ошибка Вариант исполнения Библиотека
DS18B20 -55С… 125С + -0,0625 ° С + -2% Доступны 3 типа: 8-контактный SO (150 мил), 8-контактный µSOP и 3-контактный TO-92, последний выполнен в водонепроницаемом корпусе. Onewire.h
DHT11 0С… 50С + -2С + -2% температуры, + -5% влажности он выполнен в виде готового прямоугольного модуля на 4-х ножках, третья не используется. Также есть модули с тремя ножками и сразу же установленным резистором 10 кОм. DHT.h
DHT22 -40С… 125С + -0,5С + -0,5% температуры, + -2 до + -5% влажности DHT.h
LM35 -55С… 150С + -0,5 ° C (при 25 ° C) + -2% Есть несколько типов упаковки: ТО-46 (для LM35H, LM35AH,

LM35CH, LM35CAH,

LM35DH)

ТО-92 (для LM35CZ, LM35CAZ,

LM35DZ)

SO-8 для датчика LM35DM

ТО-220 для датчика LM35DT.

TMP36 -40С… 150С + -1С + -2% Изготовлен из 3-контактного TO-92, 8-контактного SOIC и 5-контактного SOT-23.

1 Что такое оптопараи в каких случаях её применяют

Оптопара (или оптопара) — это электронный компонент, который устраняет влияние электромагнитных и электрических помех с одной стороны электрической цепи на другую. Кроме того, с помощью оптрона можно отделить высоковольтную часть схемы от низковольтной. Еще одно преимущество оптопары заключается в том, что ее можно использовать в цепи переменного тока. Кроме того, оптопара может служить заменой электромеханического реле, поскольку она может переключать части электрической цепи. По сути, оптрон ведет себя как электромеханическое реле, только без механической части. Переключение осуществляется с помощью оптического сигнала, который передается с управляющего элемента на управляемый. Вот почему оптопара называется «оптической парой». Обычно он состоит из эмиттерного светодиода и блокирующего фотодиода.

Оптопару иногда также называют «оптическим изолятором» из-за того, что с помощью оптопары можно изолировать части электрической цепи друг от друга.

Кроме того, оптический сигнал излучателя может быть в видимом или инфракрасном диапазоне. Это не влияет на работу оптопары: передатчик и приемник излучения обычно расположены в одном корпусе очень близко друг к другу. Обычно оптопара действует как триггер и имеет 2 состояния: «включено» и «выключено», но в некоторых случаях используются оптопары с несколькими уровнями.

2 Описание оптопары на микросхеме TLP281-4

Рассмотрим работу оптопары на примере микросхемы TLP281, а точнее ее разновидности TLP281-4. Микросхема TLP281-4 имеет 4 канала. То есть, он имеет 4 контакта управления и 4 выходных контакта, к которым подключена полезная нагрузка.

Для работы будем использовать модуль HW-399. Он выглядит так, как показано на рисунке ниже. Рядом с ним изображена его схема.

Внешний вид модуля HW-399 с микросхемой TLP281-4 и его схема
Внешний вид модуля HW-399 с микросхемой TLP281-4 и его схема

Здесь контакты IN1… IN4 — это управляющие входные сигналы от микроконтроллера, например Arduino или другого элемента управления. Они могут питаться напряжением от 3,3 до 5 вольт. Контакты OUT1… OUT4 являются выходами. Ноги HVCC и HGND — мощность и масса контролируемой части электрической цепи. На опору HVCC можно подавать напряжение до 24 В.

Контакты IN1… IN4 соответствуют анодам светодиодов модуля, которые являются источниками светового сигнала для фотокатодов модуля, то есть электронных ключей OUT1… OUT4.

Чтобы продемонстрировать, как работает оптопара, давайте построим схему, показанную на следующем рисунке. Здесь мы проверим канал IN1 модуля HW-399 с помощью Arduino. К выходу OUT1 модуля подключаем светодиод, питание которого будет подаваться от отдельного источника питания (хотя можно и от самой Arduino, в данном случае это не важно). Очевидно, вам нужно подключить светодиод через токоограничивающий резистор.

Схема подключения модуля HW-399 с микросхемой TLP284-1 к Arduino
Схема подключения модуля HW-399 с микросхемой TLP284-1 к Arduino

Как только мы соберем схему и подадим питание на внешнюю цепь (ножку HVCC), загорится светодиод. Это связано с тем, что управляющий сигнал еще не поступил на управляющий вывод IN1. При отсутствии напряжения логическая единица на входе IN1 (например, просто «висит» в воздухе или замыкается на массу) на выходе OUT1 низкий уровень. Следовательно, ток может течь от источника питания HVCC через OUT1 на землю, и светодиод загорится.

Подключение оптопары TLP284-1 к Arduino
Подключение оптопары TLP284-1 к Arduino

Загрузим стандартный скетч из примеров на Arduino — Blink. Этот скетч меняет логический уровень на тринадцатом выводе Arduino каждую секунду. Итак, мы ясно увидим, как работает управление оптопарой.

Подключение оптопары TLP284-1 к Arduino
Подключение оптопары TLP284-1 к Arduino

Когда 13-й контакт Arduino находится на высоком логическом уровне, загорается встроенный светодиод платы Arduino, и на вход IN1 модуля отправляется управляющий сигнал. На выходе OUT1 появляется высокий уровень, и светодиод, подключенный к модулю, гаснет, потому что через светодиод не может протекать нулевая разность потенциалов и ток. Когда на 13-м контакте Arduino низкий уровень, встроенный светодиод выключается, а управляющий сигнал также становится низким. По этой причине существует разность потенциалов между выходом OUT1 и источником питания модуля HVCC, и загорается светодиод, подключенный к микросхеме TLP281. Затем эти два светодиода загорятся как в противофазе.

Осциллограмма работы оптопары в скетче Blink

На осциллограмме выше синий график — это управляющий сигнал с вывода 13 платы Arduino. А фиолетовый график — это напряжение на светодиоде на первом выходе модуля HW-399.

Выбор платы для контроля 220В.

В продаже есть специальные доски.

На вход подается линия, исследованная на наличие 220В, а на выходе будет 0 или + 5В.

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

Есть три типа карт с разным количеством измеряемых каналов: 1, 3, 8 — по цене 120, 320 и 622 рубля соответственно.

1-битный AC 220V модуль изоляции оптопары 3-5V адаптивная плата обнаружения напряжения для PLC1 3-канальный модуль изоляции оптопары AC 220V Модуль обнаружения 220 В переменного тока 8-канальный MCU TTL уровень 8-канальный тестер изоляции оптопары модуль обнаружения изолированный тестер процессоры ПЛК

Мне нужно проверить наличие 220В по разным направлениям, поэтому я заказал карту на 8 каналов.

Как работают изолированные оптопары.

Сначала вам нужно выяснить, как работает 8-канальная плата тестирования изоляции оптопары переменного тока 220 В MCU TTL Level 8 на плате процессора ПЛК модуля тестера изолированного обнаружения.

Давайте подключим его к контроллеру Arduino Uno WiFi и посмотрим, что произойдет с аналоговым входом при подаче 220 В.

В то время как в соответствующем контролируемом направлении отсутствует сетевое питание, мы смотрим на значение 1023 на аналоговом входе Arduino:

После подачи питания значение на аналоговом входе фиксируется на 17-20:

Очевидно, есть переходный процесс:

Как использовать плату для контроля 220В при помощи Arduino.

Нам не нужно аналоговое значение, а двоичное значение: ВКЛ / ВЫКЛ.

Вы можете получить это значение, используя следующий код: значение1 = аналоговое чтение (аналог1); if (value1 <500) current1 = HIGH; в противном случае current1 = LOW; если (last1! = current1) {outflag = HIGH; out1 = current1; last1 = current1; Serial.println (out1); }

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

Возможно, следует добавить область неопределенности если (значение1 <200) ток1 = ВЫСОКИЙ; иначе, если (значение1> 700) current1 = LOW; else // что-то непонятное

Но в моем случае это излишне усложнит код, а работает он вот так.

Проблемы.

Ну куда же без них.

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

Там я проверил питание 4-х головок гидроцилиндров и питание помпы.

В зависимости от ситуации были случаи, когда плата зависала.

Исследования показали, что карта не зависла, но последовательный обмен остановился бы, если были включены направления, висящие на аналоговых входах Arduino 4 и 5.

Помог выяснить причину смены полярности платы VSS, GND с оптопарами на Arduino UNO.

Раньше подключение было: VSS-5.0V, GND-GND.

Теперь подключил наоборот: GND-VSS, 5.0V-GND.

После этого изменения значения аналоговых входов A1-A3 стали зависеть от сигнала:

0 — выключено,
55-90 — в комплекте.

Значения A4, A5 не изменились и не зависят от сигнала.

Вот список выходных значений A1-A5, иллюстрирующий ситуацию:

В последнем чтении активны все направления, но выходы A4, A5 показывают значения, отличные от A1-A3.

В первых нескольких строках направления для A4, A5 и A1 отключены, но показания для A4, A5 постоянны.

Также причина была не в плате с оптопарами, а в Arduino: перестановка вывода A3 в сторону от выводов A4, A5 показала, что каналы платы с оптопарами работают одинаково.

Кроме того, совершенно другой Arduino вел себя точно так же, что, вероятно, означает, что я здесь что-то делаю не так, а не такой Arduino.

Я не решил проблему и ушел со стандартными входами A0-A3.

В своих экспериментах я использовал входы A1-A4 для управления направлениями, а вход A5 — для управления насосом.

Управление направлением передано на входы A0-A3, но откачивается управление насосом.

Вернул полярность подключения на оригинальную и когда не используется A4, A5 все работает нормально.

Подключение Max6675 к Ардуино

Теперь давайте посмотрим на сборку адаптера и его подключение. Для этого нам потребуются следующие аппаратные компоненты:

  1. Микроконтроллер Arduino Uno (Arduino Nano тоже подойдет)
  2. Модуль преобразователя сигналов термопары Max6675
  3. Соединительные кабели

Вот что у нас получилось:
Схема проста, но ее можно модернизировать, добавив дополнительное оборудование (например, ЖК-экран).
Для реализации проекта нам необходимо скачать и установить специализированное программное обеспечение — одноименную библиотеку MAX6675 .

Это необходимо для связи по SPI, а также для более быстрой прошивки и программирования. Откройте архив с программой и сохраните его в IDE в папке с библиотеками.

АЦП MAX6675, MAX31855

Максимальный АЦП 31855

Представленная ниже схема, как и сам АЦП, изначально не предназначалась для использования с термопарами, требующими заземления, что необходимо учитывать при разработке окончательной конструкции устройства. MAX6675 и MAX31855 электрически взаимозаменяемы. Единственная разница в библиотеке ссылок. Для первого АЦП вы можете получить его на http://github.com/adafruit/MAX6675-library, для второго — https://github.com/adafruit/Adafruit-MAX31855-library.

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

Оба АЦП имеют на плате по 5 выходных контактов. Два предназначены для питания, они питаются от + 5В и GND соответственно. Остальные отмечены следующим образом:

Контакт Описание Используемое

CLK Используется для побитовой передачи, указывая, что следующий бит может быть получен НАИЗНАНКУ
ДЕЛАТЬ Побитовый вывод результата ВНЕ
CS Установите HIGH контроллером Arduino для измерения В

электрическая схема для MAX 31855 и 6651

Цифровые контакты Arduino также могут использоваться для питания и заземления, но это нежелательно. Два других контакта будут заняты. Если вам все еще нужно использовать эту конструкцию, вам нужно добавить следующие строки в инициализацию установки void:

pinMode (pVCC, ВЫХОД);
pinMode (pGND, ВЫХОД);
digitalWrite (pVCC, HIGH);
digitalWrite (pGND, LOW);
// Пауза для активации датчика
задержка (500);

Соответственно в шапке скетча установите

// вывод на котором + 5В
#define pVCC 5
// прижать к земле
#define pGND 6

Скетч работы с АЦП

// контакты, подключенные к МАКС. АЦП
#define DO 2
#define CS 3
#define CLK 4
// для MAX6675
#include «max6675.h»
MAX6675 TD (CLK, CS, DO);
// для MAX
#include «Adafruit_MAX31855.h»
Adafruit_MAX31855 TD (CLK, CS, DO);
void setup() {
Последовательный запуск (9600);
}
empty loop() {
Serial.print («Цельсий = «);
Serial.println (TD.readCelsius());
Serial.print («; Farentgeit = «);
Serial.println (TD.readFahrenheit());
задержка (500);
}

Некоторые замечания по специализированным АЦП

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

собранный макет конструкции

Помимо проблемы, упомянутой выше, нельзя забывать о «шуме» входов преобразователя, на который жалуются пользователи MAX ADC. Для уменьшения интерференционного фактора рекомендуется между контактами термопары установить фильтрующий конденсатор емкостью от 0,001 до 0,01 мкФ.

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

В окончание

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

Оцените статью
Блог про датчики