Главная » Статьи » Proton PICBasic |
Когда-то мне заказали разработать одно устройство, в функции которого входило измерение температуры по трем каналам. Поскольку планировалось серийное производство, то вопрос цены комплектующих был не на последнем месте. Пришлось продумывать варианты и искать альтернативы. В результате логических умозаключений по ряду объективных причин было принято решение использовать аналоговые датчики. Выбор пал на TC1047A, цена которых в то время в 2-2,5 раза была ниже, чем у всем известных DS18B20 (данные брались из расчета при покупке от 10 шт)
Датчик TC1047 отличается от датчика TC1047A тем, что последний работает от напряжения 5В. Смотрите даташит. К тому же, простые исследования показали простоту работы с ним. В числе причин, по которым был выбран датчик, было наличие АЦП в микроконтроллере, так как требовалось большое число портов для измерения, управления и индикации всех процессов и режимов. Микроконтроллером для прототипа прибора стал имеющийся под рукой PIC16F877, как нельзя лучше подходивший для этих целей. Ну и, естественно, любой жидкокристаллический индикатор. Также плюсом была практически идеально линейная зависимость выходного сигнала от температуры. Можно убедиться в этом, взглянув на график из документации: Документацию на датчик вы можете скачать здесь. Итак, с компонентами определились. Рисуем простую схему. Мы рассматриваем пример работы с датчиком, а не готовое практическое устройство, поэтому не будем забивать схему ненужной информацией. Производитель рекомендует в приложениях с высоким уровнем шумов использовать для датчиков конденсаторы номиналом 0,1 мкФ, подключенные к сигнальному и питающему выводам(на схеме не указаны). Рассмотрим программу:
А теперь внимание! Установив в качестве источника опоры для АЦП значение 2,5 вольта мы получаем практически идеальный результат при разрешении АЦП в 8 разрядов. То есть, максимальный результат преобразования, который мы можем получить при 2,5 вольтах выходного сигнала - это 255. Но мы не получим такой результат, поскольку максимальное значение положительной температуры, которую может измерить датчик - 125 градусов, при которых уровень выходного напряжения будет равен 1,75 вольт (смотри график зависимости). Соответственно, разница между значением температуры и выходным уровнем напряжения - 500 мВ (о чем сказано на том же самом графике). Нам остается вычесть это значение. Так как мы приняли значение выходного сигнала прямо пропорциональным разрешению АЦП, то просто вычтем 50 из измеренного значения, что будет равно вычитанию 500 мВ из результата. Если бы мы установили опорное напряжение равным 5В, тогда нам потребовался бы АЦП с разрешением в 10 разрядов и отнимать нам пришлось бы другую цифру. Какую - посчитайте сами :). Таким образом. нам подойдет любой микроконтроллер с разрешением в 8 разрядов. Для получения наиболее точного результата опору можно подобрать не 2,5 вольта, а 2,55 вольта. Это будет самый точный результат. С помощью такого датчика запросто можно сделать навороченный терморегулятор для инкубатора или аквариума, например. А можно и регулятор температуры для холодильника собрать. Архив с программой и файлом протеуса можно скачать здесь. Пишем комментарии и задаем вопросы. Похожие материалы: USB HID термометр, Терморегулятор, Прибор для измерения влажности, Работа с датчиком DS18S20, Цифровая паяльная станция, Программируемый термостат, Работа с датчиком DS18B20
| ||||||||
Просмотров: 14123 | Комментарии: 8 | | |
Всего комментариев: 8 | ||||||||
| ||||||||