Журнал РАДИОЛОЦМАН, ноябрь 2013
Petre Petrov
EDN
Многие датчики, используемые для получения информации об окружающей среде, являются резистивными. Примером могут служить терморезисторы с положительным и отрицательным температурным коэффициентом сопротивления (ТКС), фоторезисторы, различного рода контактные сенсоры. Если преобразовать сопротивление датчика в частоту или длительность импульса, эти параметры можно измерить с помощью любого микроконтроллера, для чего не потребуется АЦП.
На Рисунке 1 изображена простая схема на одном инверторе с триггером Шмитта (74xx14 или 40106), которая позволяет подключать к одной линии ввода/вывода микроконтроллера два резистивных датчика Rs1 и Rs2. Сопротивление одного из датчиков определяет продолжительность состояния низкого логического уровня на выходе схемы (TL), а другой – высокого (TH). Диоды D1 и D2 делают времена TL и TH независимыми друг от друга. Резисторы R2 и R4 при необходимости могут использоваться для смещения сопротивления датчиков. Резисторы R1 и R3 нужны в том случае, когда требуется корректировка кривой отклика датчиков или установка порогов калибровки.
Рисунок 1. | Один инвертор с триггером Шмитта обслуживает два резистивных датчика. |
Рассмотрим пример настройки схемы с использованием резисторов R1 и R3:
- Если для повышения точности измерений требуется опорное напряжение Vref, переключатель S5 устанавливается в верхнее по схеме положение, и с помощью потенциометра P1 задается величина опорного напряжения Vref (например, 5.0 В, 5.5 В, 4.5 В и т.д.).
- Переключатели S1 и S3 замкнуты, а S2 и S4 разомкнуты. В этом случае резисторы R1 и R3 определяют длительности низкого и высокого уровня выходного сигнала.
- Длительности низкого и высокого уровня выходного сигнала измеряются и сохраняются в памяти микроконтроллера.
- Теперь переключатели S2 и S4 замкнуты, а S1 и S3 разомкнуты. При такой конфигурации длительности низкого и высокого уровня выходных импульсов определяются сопротивлением резистивных датчиков Rs1 и Rs2.
- Микроконтроллер измеряет длительности уровней и сравнивает их сохраненными в памяти опорными значениями.
Сопротивления резисторов R5, R6 и потенциометра P1 в схеме источника опорного напряжения зависят от конкретной реализации и могут быть легко рассчитаны по формулам в техническом описании микросхемы TL431A или ее аналога.
Отслеживание состояния нескольких контактов с помощью одного инвертора
Один инвертор может использоваться также для получения информации о состоянии нескольких контактных датчиков или переключателей. На Рисунке 2 показано, как единственный триггер Шмитта определяет статус четырех переключателей S1-S4. Схема преобразует сопротивление цепи обратной связи микросхемы IC1a в частоту. Для увеличения количества контактов можно добавить в схему диоды, точно также, как в схеме на Рисунке 1.
Рисунок 2. | Один инвертор с триггером Шмитта обслуживает нескольких контактных датчиков. |
В схеме возможны 16 комбинаций замкнутых и разомкнутых переключателей. Каждой комбинации соответствует меандр с предопределенной частотой. Если потребуется калибровка, эти частоты могут быть измерены и сохранены в памяти микроконтроллера. Резистор R5 задает частоту генерации для случая, когда все контакты разомкнуты. Сопротивления резисторов R1-R5 могут быть любыми. Важно лишь то, чтобы частоты для каждой комбинации замкнутых и разомкнутых контактов были различными и попадали в диапазон измерений микроконтроллера.
Элементы IC1b, R6 и D1 необязательны. Они могут служить для визуализации состояния комбинаций кнопок.
Количество контактных датчиков ограничивается только разрешением и точностью номиналов элементов. Оно зависит от используемой микросхемы, стабильности источника питания, погрешности сопротивлений резисторов обратной связи, а также от возможностей конкретного микроконтроллера в части измерений длительности импульсов и частоты.