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

К сожалению во-первых они очень неточны, берёшь 5 штук, включаешь, и они будут расходиться в показаниях на 3-5 градусов. Во-вторых годятся только для чтения показаний на глаз. В контроллер их можно ввести только жмакая на кнопочки. В третьих батарейка у них рано или поздно кончается. А его проще выкинуть, чем менять батарейку. Вот и у меня в двух термометрах батарейки кончились. Но вместо того чтобы выкинуть, я их разобрал. Ценного там во-первых термодатчик, во-вторых железная гильза термодатчика. Её диаметр стандартен, под него выпускаются тоже стандартные силиконовые ниппели, и под эти ниппели в железе для самогонщиков делают стандартные отверстия. Вот как всё это выглядит:

Термодатчик представляет собой полупроводниковый резистор с отрицательным температурным коэффициентом. Сопротивление при комнатной температуре около 100 килоом. При нагревании понижается. Какое оно при 100 градусах - не знаю. Я осторожно грел паяльником (пока всё делал на соплях !) удавалось догнать до 40 килоом.
Таким образом датчик достаточно высокоомный. А у меня, по условиям размещения, расстояние от датчика до контроллера метра три. В электронике считается очень плохим тоном таскать сигналы с высокоомных датчиков по длинным проводам. Помех нахватаешься с гарантией. Даже дома в квартире. Не говоря уже о местах, в отношении помех более шумных. Как правило, в таких случаях прямо рядом с датчиком ставят либо предусилитель, либо даже АЦП. И по проводам передают либо существенно усиленный сигнал, либо сразу цифру. Увы, во-первых дорого. Современные микроконтроллеры (в частности мой любимый esp32) работают от 3.3 вольт и для предусиления потребуются недешевые и дефицитные ОУ типа Rail-To-Rail. АЦП скорее всего будет ещё дороже. Во-вторых лишние провода. Предусилитель это три провода как минимум. Плюс питания, земля, и выходной сигнал. Для АЦП проводов будет ещё больше. То ли дело простой резистивный датчик ! Кинул два провода и всё ! Спрашивается, а можно ли чтобы и дёшево, и обойтись всего двумя проводами ? Можно, отвечаю я !
Рассмотрим схему:

Резистор Rx здесь и есть наш термодатчик, сопротивление которого мы измеряем.
К микроконтроллеру это подключается вот такими транзисторными ключами:

Пусть микроконтроллер выставил на входе ключа J1 высокий уровень, причем произошло это достаточно давно. Транзистор ключа Q1 открыт и находится в насыщении (его ток базы умноженный на h21э значительно больше чем реальный эмиттера). Датчик (в смысле преобразователь) потребляет 5-6 миллиампер. На резисторе R1 ключа падает порядка 0.3 вольта, что недостаточно для открывания транзистора Q2 ключа, поэтому он закрыт и уровень на линии прерывания высокий.
У датчика (преобразователя) на линии J2(соединенной с коллектором ключа) напряжение порядка 0.5 вольт относительно общей земли (0.3 вольта на сопротивлении R1 ключа плюс 0.2 вольта на его транзисторе Q1). Транзистор Q2 открыт, а транзистор Q1 закрыт. Конденсатор C1 полностью заряжен до напряжения 4.5 вольта относительно нижней линии датчика. Его напряжение подаваемое на неинвертирующий вход компаратора выше напряжения на инвертирующем входе, 3.3 вольта, которое поддерживается стабилитроном. Уровень на выходе компаратора высокий, ток через резистор R2 не течет.
Пусть теперь микроконтроллер выставляет на линию управления ключом низкий уровень. Транзистор ключа Q1 закрывается. Транзистор Q2 тоже закрыт. Уровень на линии прерывания остается высоким.
Нижняя линия датчика отрывается от ключа и через резистор R4 подтягивается к линии +5 вольт. Транзистор Q2 закрывается, а Q1 открывается. Через Q1 и токоограничивающий резистор R6, конденсатор C1 очень быстро разряжается. Напряжение на неинвертирующем входе компаратора становится меньше чем на инвертирующем, на его выходе устанавливается низкий уровень и через резистор R2 начинает течь ток. Конденсатор C2 поддерживает схему своим зарядом.
Спустя короткое время микроконтроллер снова выставляет на линии управления ключа высокий уровень и транзистор ключа Q1 открывается. Но теперь конденсатор датчика C1 разряжен, уровень на выходе компаратора датчика низкий, и его резистор R2 течет ток. А это дополнительные 10 миллиампер. На резисторе R1 ключа теперь падает 0.6-0.7 вольта, что достаточно для открывания транзистора ключа Q2. Уровень на линии прерывания ключа становится низким. Транзистор датчика Q2 в этот момент открывается, а Q1 закрывается. Конденсатор C1 начинает заряжаться.
Наконец спустя время, определяемое постоянной времени цепочки RxC1 (а именно сопротивление Rx нам и нужно измерять !) и напряжением стабилизации стабилитрона D1 (3.3 вольта), напряжение на неинвертирующем входе компаратора становится больше чем на неинвертирующем и на его выходе устанавливается высокий уровень. Ток через резистор R2 перестаёт течь, и потребление датчика падает до бывших ранее 5-6 миллиампер. Напряжение на резисторе R1 ключа снова падает до 0.3 вольт, его транзистор Q2 закрывается и на линии прерывания устанавливается высокий уровень. Схема переходит в первоначальное состояние. Измерив время, которое линия прерывания ключа имела низкий уровень, мы можем измерить сопротивление Rx.
Алгоритм работы микроконтроллера:
Перед началом работы разрешаем прерывания от таймера и по одной из ног(линии прерывания) по положительному перепаду (от низкого уровня к высокому). На линию управления подаем высокий уровень.
Устанавливаем на линии управления низкий уровень и запускаем таймер на очень короткое время (сотня-другая микросекунд).
Получив прерывание от таймера, выставляем на линии управление высокий уровень, а сам таймер запускаем на счёт (без прерываний).
Получив прерывание от линии останавливаем таймер и считываем его значение.
Повторяем эти шаги столько, сколько будет надо.
Приятное дополнение. Линии прерывания ключей это выходы с открытым коллектором. Поэтому их можно объединить по схеме монтажного ИЛИ. Например вот так:

Правда только в том случае, если датчики будут опрашиваться ПООЧЕРЕДНО. В самом деле, если каждый раз активен только один датчик, то мы во-первых точно знаем какой, ибо его мы и активировали, во-вторых только он может переводить линию прерывания в низкий уровень. Это весьма полезно, ибо экономит дефицитные ноги микроконтроллера.
Ну и наконец интересный момент, посчитаем во сколько нам всё это обойдётся. Цены брал по каталогу магазина Чип и дип на март 2026-го. Причем брал только те товары, которые есть в наличии в магазине на Абельмановской в Москве. Цены там конские, наверняка можно взять и дешевле. Здесь посчитано и на датчик и на ключ.
Компаратор LM393P 1 шт. 25 рублей.
Транзисторы 2N4403BU 2 шт. по 2 рубля
Диод Шотки SR3100S 1 шт. 9 рублей
Стабилитрон 1N4728A 1 шт. 3 рубля
Конденсатор плёночный 0.01 мкф 1 шт. 6 рублей
Конденсатор электролитический 470 мкф 6.3 в 1 шт. 8 рублей
Транзисторы BC547A 2 шт. по 6 рублей
Резисторы 9 шт. по 4 рубля
Итого 97 рублей. Уложились в сотню ! Хотя на самом деле может быть дороже, эти ребята любят играть с наценками. Но вряд ли сильно больше.
Как выбирались компоненты. Транзисторы в ключе npn типа, в датчике pnp. Коэффициент передачи h21э не менее 100. Граничная частота без разницы. Рабочие напряжение и ток в 5 вольт и 20 миллиампер выдерживают все. Резисторы ключа R2 и R3 достаточно безразличны. 1k будет достаточно. На резисторе R1 ключа должно падать 0.3-0.4 вольта при токе 5-6 миллиампер и свыше 0.6 вольта при токе 10-15 миллиампер. Резисторы R3, R4, R5 датчика довольно безразличны. Желательно чтобы ток через них был порядка миллиампера при напряжении 4 вольта. Стабилитрон D1 с напряжением стабилизации 3-3.3 вольта. Резистор R1 должен обеспечивать для него минимальный ток стабилизации (это порядка миллиампера) при напряжении питания 4 вольта. Следует учитывать падение напряжения на самом стабилитроне. Конденсатор C1 довольно безразличен. Я выбирал из соображений постоянной времени цепочки RxC1 порядка 10 миллисекунд. Конденсатор нужен с небольшим температурным коэффициентом ёмкости. Подойдут плёночные или слюдяные. Резистор R6 ограничивает ток разряда конденсатора C1, проходящий через транзистор Q1. Его желательно выбирать поменьше, чтобы конденсатор быстрее разрядился. Но так чтобы не спалить транзистор. Компаратор - единственное требование выход с открытым коллектором и допустимый ток не менее 20 миллиампер. Прекрасно подходит LM393P. Резистор R2 выбирается таким, чтобы при напряжении 4 вольта, ток через него был порядка 10 миллиампер. В качестве D2 желательно брать диод Шотки, с небольшим прямым напряжением. Конденсатор C2 - электролит на несколько сотен микрофарад. Он поддерживает схему во время активации, когда микроконтроллер отключает её от питания. На этом вроде бы всё...
И да, таварисчам особо дотошным и въедливым. Я прекрасно знаю закон заряда конденсатора через резистор. Физтех всё-таки заканчивал, а не физкультурный техникум. Поэтому не надо мне рассказывать про нелинейность. Всё равно каждый датчик придётся калибровать, и это отдельная история.
ДИСКЛЕЙМЕР !!! Реально схема пока не собиралась. Только вот планирую завтра идти закупаться комплектухой. Просто показалось что придумал красивое решение, самому понравилось. Копеечная стоимость, работает всего по двум проводам, и решает проблему удаленных высокоомных датчиков. Вот и спешу поделиться с народом. Наверняка кому-то окажется полезным. Такие датчики достаточно распространены, и не только термо. Так что задача думаю для многих актуальна.
