- Общие сведения:
- Видео:
- Характеристики:
- Способ — 2 : Используя Trema Set Shield
- Способ — 3 : Используя проводной шлейф и Shield
- Питание:
- Подробнее о датчике температуры:
- Пример:
- Вывод температуры в монитор последовательного порта в градусах Цельсия и Фаренгейта.
- цифровая электроника вычислительная техника встраиваемые системы
- Arduino и датчик температуры термопары на основе MAX6675
Общие сведения:
Trema-модуль Адаптер термопары с термопарой K-типа — позволяет измерять температуру объектов и окружающей среды. Адаптер позволяет измерять температуру в диапазоне от 0 до 800 °С (при температурах от 800 до 1023 °С точность показаний резко снижается), а корпус термопары рассчитан на температуру до 600 °C, значит и измерения необходимо производить в диапазоне от 0 до 600 °С. Адаптер можно использовать для измерения температуры различных нагревательных элементов: паяльники, печи, камины, бойлеры и т.д. Можно использовать для реализации газ-контроля в газовых плитах, горелках, бойлерах и т.д.
Видео:
Характеристики:
- Напряжение питания модуля (Vcc): 3,0 . 5,5 В постоянного тока.
- Ток потребляемый модулем: до 1,5 мА.
- Уровень логической «1» на шине модуля: > 0,7 Vcc.
- Уровень логического «0» на шине модуля:
Способ — 2 : Используя Trema Set Shield
Модуль можно подключить к любому из цифровых или аналоговых входов Trema Set Shield.
Способ — 3 : Используя проводной шлейф и Shield
Используя 3-х и 2-х проводной шлейфы, к Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO и тд.
Питание:
Входное напряжение питания от 3,3 или 5 В подаётся на выводы Vcc и GND.
Подробнее о датчике температуры:
В основу работы термопары заложен термоэлектрический эффект, это процесс возникновения ЭДС (электродвижущей силы) на спайке (соединении) разнородных металлов, интенсивность которой прямо пропорциональна температуре в месте этого соединения. Возникающая в термопаре ЭДС очень мала и её нельзя измерить используя аналоговые входы Arduino, но с этой задачей справляется чип max6675. Сигнал с термопары сначала поступает на операционные усилители чипа, а уже потом на 12 битный АЦП, далее данные выводятся по шине SPI в виде двух байт, старшие 12 бит которых являются числом температуры. Для преобразования 12 битного числа в °C его нужно разделить на 4, получается что температура выводится с разрешением 0,25 °C. Так как данные из чипа только читаются, без отправки данных чипу, то на его шине SPI отсутствует вывод MOSI. Немаловажным фактом является и то, что в чипе max6675 реализована функция компенсации холодного спая. Дело в том, что ЭДС возникает не только на спае металлов термопары, но и на соединении этих металлов с проводом, что без функции компенсации холодного спая влияло-бы на показания температуры.
Для работы с чипом max6675 рекомендуем воспользоваться одноимённой библиотекой max6675, которая реализует получение данных чипа по программной шине SPI, значит, для подключения можно использовать любые выводы Arduino.
Пример:
Вывод температуры в монитор последовательного порта в градусах Цельсия и Фаренгейта.
В библиотеке max6675 реализовано всего 2 функции: readCelsius() и readFahrenheit(). Они не принимают никаких параметров, а только возвращают температуру в виде числа типа double. Обе функции приведены в строках скетча 15 и 17.
При создании объекта нужно указать номера выводов Arduino к которым подключён модуль (вывод SCK , вывод CS , вывод DO), как это сделано в 5 строке скетча.
Подключение термопары К-типа(далее просто термопары) к Arduino довольно тривиально, но чтобы не было путаницы, решил написать краткий мануалЪ.
Термопары обычно применяются там где нужно измерить высокие температуры, у меня например она установлена в паяльнике, так же их ставят в бойлеры, газовые плиты с газ-контролем и т.д.
Работа термопары основана на термоэлектрическом эффекте, когда на спайке разнородных металлов образуется ЭДС, которая прямо пропорциональна температуре окружающей среды. Эту ЭДС возможно измерить, но она настолько маленькая, что так просто ее на вход микроконтроллера не подашь. На помощь приходит ИС от фирмы Maxim — MAX6675. Она измеряет ЭДС термопары и через SPI интерфейс выдает в виде готового числа. Документацию на микросхему можно найти например здесь: https://www.sparkfun.com/datasheets/IC/MAX6675.pdf
Документация содержит всего 8 страниц, предлагаю пробежаться глазами по основным моментам:
Напряжение питания может быть 3 или 5 вольта, я подключал через 3.3В, ничего, работало. Из интересного, заявлена защита от электростатики (ESD Protection) на два киловольта, т.е. щуп вполне можно трогать руками не опасаясь убить микросхему.
Устройство микросхемы. Видно, что входная ЭДС поступает на предварительный операционный усилитель, затем на основной, после чего сигнал идет на АЦП. Как бы все логично.
Формат, передачи данных. Видно что данные передаются пакетом по 16 бит. SPI интерфейс работает в одну сторону, т.о. получается, что задействовано три цифровые линии: SCK для тактирования, SC для управления, SO на передачу.
Для Arduino есть готовая библиотека для работы c MAX6675: https://github.com/adafruit/MAX6675-library
Установив ее и загрузив из примеров serialthermocouple, в начале скетча увидим предлагаемое подключение к цифровым пин’ам Arduino.
Т.е. автор предлагает просто воткнуть адаптер в Arduino используя два цифровых пина для питания микросхемы. Мне это показалось уже чересчур, но тут каждый решает как хочет. Подключение адаптера для этого скетча будет таким:
Здесь я закомментировал работу пинов питания. Еще должен заметить, что температуру показывает завышенную. Тут или ошибка в софте или пресловутая китайская промышленность внесла свои поправки 😉
цифровая электроника вычислительная техника встраиваемые системы
Arduino и датчик температуры термопары на основе MAX6675
Термопара типа K является наиболее распространенным типом термопар. Она недорогая, точная, надежная и имеет широкий температурный диапазон. В этой статье показано, как использовать микроконтроллер Arduino Uno / Nano с модулем дисплея OLED для считывания данных термопары типа K. Как и следовало ожидать, существует аналоговый интерфейс MAX6675 для прямого цифрового преобразования выходных данных термопары типа K. Программное обеспечение, выполняемое в фоновом режиме, переводит показания термопары в воспринимаемые значения температуры в градусах Цельсия или Фаренгейта.
Микросхема MAX6675, доступная в 8-контактном корпусе SO, выполняет компенсацию холодного спая и оцифровывает сигнал от термопары типа K. Окончательный вывод данных производится в 12-разрядном формате, совместимом с SPI.
Микросхема также имеет функцию обнаружения открытой термопары. Для быстрого создания прототипа было бы лучше использовать предварительно смонтированную плату MAX6675, а не чистую микросхему, припаянную к адаптеру SMD, потому что отладочная плата обычно доступна в виде экономичного комплекта, который включает термопару типа K. Выше приведено изображение такого модуля.
Подключение данного модуля с MAX6675 к Arduino выполняется довольно просто: Vcc к 5 V, Gnd к Gnd, SO к D4, CS/SS к D5, CSK к D6. Термопара подключается к модулю MAX6675 с противоположной стороны от контактов, ведущих к Arduino.
Ниже приведен простой скетч для теста. Для работы с модулем вам понадобится библиотека MAX6675 (https://github.com/adafruit/MAX6675-library).
Окно последовательного монитора при запуске программы может выглядеть следующим образом:
Теперь подключим к полученной конструкции OLED-дисплей 128 × 64 к Arduino по шине I2C (OLED SDA к A4, OLED SCL к A5).
Код программы приведен далее. Как видно из кода, он усредняет выходную информацию оборудования термопары в 25 раз, чтобы получить разумные показания термометра. Следует отметить, что это замедлит обновление дисплея, но не повлияет на реакцию термопары. На экране дисплея отображается максимальная температура в верхнем левом углу, минимальная температура в верхнем правом углу и текущая температура в нижней строке.
Использование Arduino и термопары с MAX6675 – это простой и недорогой способ создания простого, но надежного ручного цифрового термометра.