Я пытаюсь получить более точное значение температуры от датчика PT100 (2 провода) с помощью Arduino.
Вот как выглядит моя схема:
Когда температура датчика около 20 °CI, получите значение на выводе A5, равное 432, а когда датчик около 30 °CI, получите значение на выводе A5, равное 440. Как вы можете видеть, это очень маленький диапазон (432–440). ).
Я хочу больший диапазон аналогового сигнала, например, от 100 до 1000.
Может быть, я смогу как-то получить сопротивление PT100 и с помощью какой-то математической формулы получить температуру.
Что я могу сделать со своей схемой, чтобы получить более точные показания температуры?
Вы можете использовать внешнюю микросхему, которая считывает показания датчика, а затем получает результат в цифровом виде, например MAX31865.
Может быть, я мог бы как-то получить сопротивление PT100 и с помощью какой-то математической формулы получить температуру?
Вы можете найти таблицы сопротивлений в Интернете, вы можете создать таблицу во флэш-памяти и использовать интерполяцию для расчета температуры на основе полученного сопротивления.
Вы не можете получить более точные показания с RTD, напрямую подключенным к аналого-цифровому преобразователю Arduino. Чтобы получить более точные показания, вам нужно поместить RTD в мост и использовать инструментальный усилитель для получения более сильного сигнала.
Прежде всего, если вы хотите получить точность от PT100, вы должны использовать 4-проводную версию, а не 2-проводную.
В 4-проводной версии одна пара используется для «питания» PT100, вторая используется для измерения падения напряжения в PT100. Таким образом, падение напряжения в кабеле минимально: поскольку V=RI, а I в измерительной паре почти равно нулю, падение напряжения отсутствует. При этом, поскольку PT100 не требует специального провода, очень легко преобразовать 2-проводной PT100 в 4-проводной PT100.
Вы также должны убедиться, что резистор, используемый для измерения тока, проходящего через PT100, является очень точным (например, 0,01%). Я также подозреваю, что вам понадобится AD получше, чем тот, который у вас есть в Arduino.
Если вы уверены, что получаете достаточно точные данные из AD, вам придется использовать таблицы PT100 для интерполяции значений. Метод Ньютона прост в программировании и дает хорошие результаты.
Если вы считаете, что все это слишком сложно, то вам следует переключиться на более простой датчик температуры. Например, NTC, вероятно, будет работать непосредственно на вашем Arduino, но вы получите точность ~ 1 ° вместо 0,03 °.
Эта тема может быть ответом для вас Точно измерить сопротивление с помощью arduino?
Для расчета температуры можно использовать следующую формулу:
Могут быть поставлены элементы термометра сопротивления, работающие до 1000 °C. Связь между температурой и сопротивлением определяется уравнением Каллендара-Ван Дузена:
Здесь, это сопротивление при температуре , это сопротивление на , а константы (для платиновый RTD):
Источник: англоязычная Википедия ( http://en.wikipedia.org/wiki/Resistance_thermometer ) .
Я надеюсь, что это было полезно.
Я думаю, вам нужно подавать от 7 В до 12 В на контакт VIN вашего Arduino и использовать контакт AREF для одной стороны PT100, а другую — для аналогового входа. Это может помочь получить согласованные показания, но у вас все еще может быть сделать 4-проводное измерение, чтобы получить его точно.
Учебное пособие по измерению сопротивления 4-проводного Кельвина имеет хорошее объяснение 4-проводного измерения. Вы, наверное, уже подозревали об этом.
Изменить. Вы подключаете AREF к Arduino 5 В или 3,3 В, а pt100 от того же напряжения к подходящему аналоговому входному контакту на Arduino. Линейные регуляторы напряжения на плате Arduino намного более стабильны, чем ваш блок питания USB, и поэтому обеспечивают лучшую точность. Основы Arduino (аналоговый справочник)
Мухамед Крлич
позитив