Автору неоднократно приходилось ремонтировать терморегуляторы различных изготовителей, и при этом часто возникали проблемы, связанные с термодатчиками. Это обусловлено, как правило, тем, что, в отличие от терморегулятора, термодатчик снять с оборудования гораздо сложнее, а иногда и просто невозможно. И если датчик на основе терморезистора симулировать достаточно легко, то с термопарой [1] сложнее, поскольку нужно симулировать подачу ЭДС значением в милливольты и менее от источника с внутренним сопротивлением, близким к нулю. Часто это делают с помощью цепи, собранной по схеме, показанной на рис. 1. Пользоваться таким симулятором, конечно, можно, но настолько неудобно, что у автора возникло желание разработать максимально простое и относительно недорогое устройство аналогичного назначения.
Рис. 1. Схема симулятора
В этом случае нужно сразу сделать предупреждение увлекающимся измерительной техникой - речь идёт о приборе для ремонта и налаживания терморегуляторов, но ни в коем случае не об испытателе или калибраторе. Калибровка - давно отлаженный промышленностью процесс, в продаже присутствует большой выбор симуляторов-калибраторов. Вот только цена этих симуляторов зачастую не по карману ремонтнику, не говоря уже о радиолюбителе.
Если посмотреть содержимое градуировочной таблицы любой термопары, то сразу обращает на себя внимание порядок чисел в ней - их интервал, за очень редким исключением, укладывается в числа, не превышающие 65536. А ведь это не что иное, как 16-разрядный код. Получается, что если пересчитать таблицу в микровольты, то с помощью 16-разрядного ЦАП можно сразу формировать нужное значение напряжения. Но есть одно но, микроконтроллер (МК) с 16-разрядным ЦАП - это устройство не дешёвое. Конечно, задача решаема, например, с помощью специальных чипов, но цена такого решения для указанных в разработке целей чрезмерно велика. Однако выход нашёлся. Пригодился опыт аудиофилов, в своё время активно пользовавщихся, как они их называли, мультипотоковыми ЦАП. Выбор автора пал на микросхему TDA1387T она оказалась совсем недорогой и есть в продаже в интернет-магазинах. Мало того, эти микросхемы использовала и аудиопромышленность, но впоследствии они были заменены более качественными. Довольно любопытен метод борьбы с вносимыми этим ЦАП нелинейными искажениями - параллельным включением нескольких чипов. По крайней мере, в Интернете до сих пор продаётся плата с восемью микросхемами TDA1387.
Для целей симулятора микросхема TDA1387Т всем хороша, за исключением того, что она не имеет собственной памяти, поэтому непрерывно преобразовывает передаваемые на неё по протоколу I2S (не путать с I2C!) 16-разрядные коды (два канала) в аналоговый сигнал. Это означает, что в этой разработке такой ЦАП нуждается в постоянной передаче на него одного и того же кода, что накладывает весьма жёсткие ограничения на работу МК, так как у него остаётся крайне мало времени на обработку других операций, включая обслуживание прерываний.
Рис. 2. Схема симулятора
Схема симулятора приведена на рис. 2. Нетрудно заметить, что он не имеет не только ни одного органа уп-равления, но и индикатора и даже блока или отдельного разъёма питания. Индикаторы и разъём питания - штатные модуля А1. Причина проста - в этой разработке, как и в [2], использован WiFi-модуль, но веб-браузер использо-ван не для индикации, а для дистанционного управления. То есть направление передачи данных не от симулятора к смартфону или ПК, а наоборот - от смартфона или ПК к симулятору. Кроме этого, в отличие от [2], вместо модуля на базе МК ESP8266 использован модуль на базе более мощного во всех отношениях МКESP32 [3-5]. Это реше-ние несколько дороже, но объём вводимых в память МК градуировочных таблиц и их общее число ограничивают в данном случае применение ESP8266 из-за недостаточности его доступной флэш-памяти. Большой объём памяти МК ESP32 обусловил также и значительное облегчение обработки градуировочных таблиц, которая свелась к операциям перевода формата pdf в формат csv и последующей замене запятой на точку, а двоеточия - на запятую. В итоге были легко получены пригодные для Arduino массивы данных с типом данных float в отдельных файлах, список и содержимое которых легко изменить или добавить. В дальнейшем в программе извлекаемое из массива float значение умножается на 1000, после чего оно уже как unsigned int загружается прямиком в ЦАП. Здесь важно отметить, что формат данных ЦАП предусматривает двухполярный сигнал (звуковой), поэтому сдвиг уровня на 32768 позволяет использовать весь интервал 16-разрядного кода от 0 до 65536.
Указанная операция означает намеренный отказ от измерения минусовых температур. Несмотря на то что почти все градуировочные таблицы термопар содержат данные для них, автор считает такое измерение не нужным. По крайней мере, ему никогда не приходилось встречаться с использованием термопар для таких измерений, что вполне объяснимо слишком низкими значениями ЭДС при таких температурах; для таких целей применяют, как правило, датчики на основе терморезисторов. В связи с этим ввод отрицательных значений температур в параметрировании симулятора невозможен, а в случае получения таковых в результате вычислений срабатывает защита в виде принудительного отключения режима "Работа".
В связи с указанной выше загруженностью МК процессом вывода данных в ЦАП по протоколу I2S пришлось ввести два режима работы - "Настройка" и "Работа". В режиме "Работа", кроме I2S, МК обеспечивает ШИМ для формирования минусового напряжения и проверяет, какой режим установлен пользователем. Так как длительность этих операций незначительна, протокол I2S не нарушается благодаря его штатному буферированию в МК, в то время как даже однократное считывание данного из флэш-памяти останавливает работу ЦАП полностью.
В режиме "Настройка" во флэш-память вводятся три параметра, а именно: тип термопары, температура холодного спая и температура горячего спая. Каждое из этих значений записывается по системе SPIFF, что позволяет не вводить данные каждый раз после выключения питания симулятора. По типу термопары определяется используемый массив градуировочной таблицы, а ЭДС в этой таблице определяется по разнице температур между температурами горячего и холодного спая. Необходимость такой операции связана, прежде всего, с тем, что симулятор не имеет холодного спая, компенсация которого тем не менее в терморегуляторах, как правило, обеспечивается, причём это касается не только промышленных терморегуляторов, но и бытовых термоизмерителей, например в мультиметре. Хотя такая компенсация штатной термокомпенсации может показаться слишком упрощённой, автор считает её вполне приемлемой, так как даже в промышленных терморегуляторах в качестве измерения температуры холодного спая часто ставят полупроводниковый датчик с невысокой точностью.
Объясняется такой подход всё той же причиной - термопары не применяют при низких температурах, а значит, и точность измерения температуры холодного спая не критична. Тем не менее, в связи с тем, что автор в данном случае представляет текст программы, ничто не мешает пользователю добавить градуировочные таблицы спаев медь/хромель, медь/алюмель и т. д. Кроме этого, сам параметр температуры холодного спая может использоваться как корректор, т. е. может вводиться пользователем вручную согласно вышеуказанным градуировочным таблицам.
Выбор ОУ для симулятора весьма критичен, причём по принципу маслом кашу не испортишь . Это означает, что нужен прецизионный ОУ, но такие ОУ недёшевы, поэтому применённый автором - не лучший выбор.
Так как нормальная работа ОУ при входных напряжениях, близких к напряжению питания, не рекомендуется, в устройстве применён простой формирователь минусового напряжения питания на диодах VD1, VD2, дросселе L1 и конденсаторе С3. На этот формирователь поступает импульсное напряжение с выхода IO27 модуля А1. В результате на конденсаторе С3 формируется напряжение около -1 В, его вполне достаточно для ОУ, работающего со входным сигналом амплитудой не более 65 мВ.
На рис. 3 показано фото работы симулятора, подключённого вместо штатной термопары мультиметра.
Рис. 3. Работа симулятора, подключённого вместо штатной термопары мультиметра
Рис. 4. Печатная плата устройства и размещение элементов на ней
Все элементы размещены на односторонней печатной плате, чертёж которой показан на рис. 4. Подстроечные резисторы - проволочные выводные, остальные детали, кроме разъёма XS1 и модуля А1, - для поверхностного монтажа. Цифрой 0 обозначены перемычки, которые можно заменить отрезками изолированного провода.
Налаживание симулятора сводится к следующим операциям:
1. В скетч вводят данные сети пользователя. После компиляции и загрузки в МК в мониторе определяется присвоенный роутером IP, который вводится в адресной строке браузера ПК и/или смартфона.
2. В зависимости от того, каким измерительным прибором располагает пользователь, милливольтметром или термоизмерителем, этот прибор подключают к выходу симулятора.
3. На экране управления (смартфона или ПК) устанавливается любой тип термопары (лучше К), производится переключение в режим "Работа" и подстроечным резистором R3 устанавливается нулевое напряжение на выходе устройства.
4. Производят переключение в режим "Настройка" и устанавливают достаточно высокую температуру горячего спая. После переключения в режим "Работа" выходное значение симулятора подстраивается подстроечным резистором R1 согласно градуировочной таблице.
Скетч для применённого модуля находится здесь.
Литература
1. Термопары. Что это и как они применяются. - URL: http://www.teplogazkip.ru/ articles/18333/ (10.07.21).
2. Булычев Ю. Малогабаритная электронная нагрузка мощностью до 480 Вт. - Радио, 2021, №5, с. 31-33.
3. Input Data on HTML Form ESP32/ ESP8266 Web Server using Arduino IDE. - URL: https://randomnerdtutorials.com/esp32-esp8266-input-data-html-form/ (10.07.21).
4. ESP32 Async Web Server - Control Outputs with Arduino IDE (ESPAsyncWebServer library). - URL: https://randomnerdtutorials. com/esp32-async-web-server-espasync-webserver-library/ (10.07.21).
5. ESP32 - Intro to I2S Part 1. - URL: https://www. xtro nical.com/i2s-ep1/ (10.07.21).
Автор: Ю. Булычев, г. Омск