(Pt100 -> HX711 -> Arduino) + FLProg = «оцифровка» Pt100

Использование датчиков и обсуждение пользовательских блоков к ним
Ответить
arisov77
Рядовой
Сообщения: 41
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 3
Откуда: Инза

(Pt100 -> HX711 -> Arduino) + FLProg = «оцифровка» Pt100

#1

Сообщение arisov77 » 23.10.2016{, 05:16}

Делаю некий проект и как часть этого проекта понадобилось мне измерять температуру при помощи RTD Pt100.
Перебрав множество вариантов, остановился на использовании 24-х разрядного АЦП HX711.
Первоначально задумка была измерять двумя каналами АЦП, но после практических опытов отказался, т.к. конечный результат был со многими нулями после запятой, а если делать без «float», нужно многократно опросить АЦП с накоплением «длинных» чисел. Многократно опросить НХ711 не получится, т.к. этот АЦП при переключении каналов оказался очень «заторможенным» и результат измерения надо будет долго ждать. Короче, отказался я этой идеи и сделал по «классическому» мосту.

См. прилагаемую схемку.

Номиналы деталей подобранны для диапазона измерения от 0 до +500Гр. Для другого диапазона нужно будет резисторы R=3kOm и R=180 Om немного подкорректировать. Резисторы для моста я не подбирал, взял какие есть, в расчёте на программную калибровку и линеаризацию. Защитную цепочку из R=1kOm и двух диодов BAV99, пока не устанавливал (тестировал на макетке), надеюсь эта цепочка не будет влиять на результат измерений.

Для программной обработки HX711 был создан пользовательский блок .
На основе этого блока, выкладываю здесь пример на FLProg. В примере, для линеаризации я использовал встроенный блок «Нелинейное масштабирование». Сделал линеаризацию показаний по 4 точкам (мин.= 0Гр. и макс.=500Гр.- сделал константами «Zero» и «Scale» на входах блока НХ711). Этих четырёх точек (через каждые 100Гр.) хватило, чтобы во всём диапазоне от 0 до 500Гр. отклонение не превышало 2Гр. (в некоторых редких точках, в основном «всё по нулям»). Для более точных результатов можно было бы добавить точек, но это и так превзошло все мои ожидания!!! Для моих целей было достаточно и +/-10Гр.
Pt100 я имитировал калибратором «Метран-540» с пределом допускаемой основной погрешности +/-0,02%. Модуль с НХ711 и мост из резисторов грел феном – показания ни на один градус не изменились. Но у меня показания «целочисленные», возможно с десятичными долями будут «плавать» - не проверял.

Т.к. в моём применении (модернизация некой печки) не нужна высокая точность и Pt100 уже установлен и соединён с «старым» контроллером управления по 2-х проводной схеме, то я не стал делать «3-х проводный вариант». Кому нужна компенсация соединительных проводов, могут попробовать её компенсировать при помощи измерения падения напряжения с помощью «свободного» канала В при помощи пользовательского блока с двумя выходами.
Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось arisov77 23.10.2016{, 05:27}, всего редактировалось 1 раз.

Ответить

Вернуться в «Датчики температуры, влажности и давления»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей