Датчик температуры LM35 не работает - что делать


Датчик температуры LM35 в настоящее время находит достаточно широкое применение в различных электронных проектах, но иногда он может вести себя достаточно "капризно". И если его подключение к плате Arduino поначалу может показаться очень легкой задачей, то на самом деле это может превратиться в сплошные мучения.

Датчик температуры LM35 не работает - что делать

Первоначально мы предполагали, что датчик неисправен, но после тестирования около 15 датчиков мы снова и снова сталкивались с одной и той же проблемой; все эти датчики были взяты из одной и той же партии из 85 датчиков, которые были у нас в лаборатории. Мы пытались не только протестировать многочисленные датчики с помощью Arduino, но и измерить выходной сигнал датчика с помощью мультиметра, однако каждый протестированный нами датчик давал странные результаты. После этого мы были уверены, что проблема в датчике. Мы попробовали кучу разных вещей, просмотрели множество обсуждений на форуме и обнаружили, что мы не единственные, у кого возникла эта проблема, и, в конце концов, мы не смогли найти решение. Поэтому в данной статье мы рассмотрим возможные причины неисправности датчика температуры LM35 и способы их устранения, обобщив в ней весь опыт наших мучений с этим датчиком.

На нашем сайте вы можете посмотреть следующие электронные проекты с применением датчика LM35:

Проблема 1. Выходное напряжение LM35 возвращается к нулю

Итак, как и любой другой проект, мы начали с Arduino и датчика температуры LM35 и подключили его в соответствии со схемой, показанной ниже.

Схема подключения датчика температуры LM35 к плате Arduino

Собранная конструкция этого проекта показана на следующем рисунке.

Конструкция проекта подключения датчика температуры LM35 к плате Arduino

После того, как аппаратные подключения были выполнены, мы загрузили базовый скетч в Arduino UNO (рассмотрен ниже) и наблюдали в окне последовательного монитора ситуацию что выходной сигнал колеблется от 0 ° C до 35 ° C. Это было первое необычное поведение, с которым мы столкнулись.

Поскольку значения быстро прокручивались в окне последовательного монитора, мы решили открыть окно последовательного плоттера и были потрясены, увидев синусоидальную волну, выдаваемую датчиком.

Данные температуры с выхода датчика LM35

Ниже представлен скриншот окна последовательного плоттера, где датчик LM35 был подключен к Arduino. Согласно схеме, Arduino питалась напряжением 5В от ноутбука.

Скриншот окна последовательного плоттера с данными температуры от LM35

Решение проблемы нестабильности значений LM35

Результаты нас очень шокировали, поэтому мы сделали то, что сделал бы любой другой инженер на данный момент: мы начали читать даташит на датчик. Почитав некоторое время техническое описание, мы обнаружили кое-что интересное.

В техническом описании датчика температуры LM35 рекомендуется использовать демпферную цепь RC и развязывающий конденсатор. И на следующем рисунке представлена наша схема с учетом этих доработок.

Схема подключения датчика температуры LM35 к плате Arduino с использованием демпферной цепи RC и развязывающего конденсатора

Фактическое изображение аппаратного обеспечения, где мы подключили RC-демпфер и развязывающий конденсатор, показано на рисунке ниже.

Конструкция проекта подключения датчика температуры LM35 к плате Arduino с RC демпфером и развязывающим конденсатором

Для развязывающего конденсатора мы использовали конденсатор емкостью 104 пФ, а для RC-демпфера мы использовали конденсатор емкостью 224 пФ и резистор сопротивлением 100 Ом. Как только мы это сделали, выходной сигнал в окне последовательного монитора стал выглядел так, как показано ниже.

Данные температуры с выхода датчика LM35 после подключения демпферной цепи RC и развязывающего конденсатора

Как видите, это ничего не изменило, поскольку выходной ток, выходящий из датчика температуры LM35, очень мал, а выходной конденсатор заряжается очень медленно, поэтому мы получили результат, аналогичный показанному выше.

Код Arduino для измерения данных датчика температуры LM35

Теперь, когда мы увидели проблемы, связанные с датчиком, давайте посмотрим на код, который использовался для измерения данных о температуре. Чтобы прочитать данные датчика температуры LM35, нам нужно использовать аналоговый вывод Arduino, поскольку выходной сигнал датчика является аналоговым.

Начнем с определения аналогового контакта для Arduino.

Далее у нас есть функция setup, в которой мы инициализируем последовательный порт для отладки со скоростью 9600 бод.

В функции loop мы считываем необработанные данные, поступающие от датчика, и сохраняем их в переменной raw_adc_data .

Далее мы вычисляем истинное значение напряжение по считанному с выхода АЦП значению.

Затем мы преобразуем данные о напряжении в данные о температуре и печатаем выходные данные в окне последовательного монитора.

Наконец, мы добавляем небольшую задержку для стабильности проводимых измерений.

Проверка датчика LM35 вручную с помощью мультиметра

После всех неудачных попыток с Arduino мы попробовали кучу разных идей. В этом разделе статьи мы обсудим эти идеи. 

Для нашей первой попытки мы только что подключили 5 В и GND к контактам датчика и подключили выход датчика к выходу мультиметра UNI-T. Также мы добавили мультиметр от HTC Instruments для вывода значений температуры.

Проверка датчика LM35 вручную с помощью мультиметра

Как вы можете видеть, мы получаем отрицательное напряжение от датчика LM35. Это справедливо для всех 15 различных датчиков температуры LM35, которые мы протестировали.

Следующее, что мы сделали, это добавили развязывающий конденсатор и RC-демпферную цепь, согласно таблице данных. Мы также попытались измерить выходной сигнал, как показано на схеме выше.

Тестирование датчика LM35 с развязывающим конденсатором и RC-демпферной цепью

Как вы можете видеть на изображении выше, выходное напряжение датчика составляет -159,1 мВ, но это неверно, поскольку температура в помещении во время тестирования составляла 30°C. Согласно даташиту, выходное напряжение датчика должно составлять около 300мВ.

LM35: проблемы с нагревом

Мы обнаружили серьезные проблемы с нагревом датчика поскольку в технических характеристиках указано, что этот датчик может работать при напряжении от 4 до 30 В, а потребление тока должно быть менее 60 мкА при нормальной работе. Но в нашем случае мы наблюдали экстремальное потребление тока в 220 мА или даже больше; изображение ниже показывает именно это.

Обнаружение проблемы с нагревом у датчика LM35

Как вы, наверное, можете себе представить, после этого датчик сильно нагрелся и выпустил волшебный дым.

Проблема 2. Выходное напряжение LM35 снижается при повышении температуры

После добавления демпферной цепи и развязывающего конденсатора выходное напряжение датчика температуры LM35 стало стабильным, поэтому мы решили немного прогреть его с помощью нашей термофеновой станции, но нас снова встретило разочарование. Выходное напряжение датчика начало уменьшаться, а выходное значение в окне последовательного монитора начало уменьшаться. Помимо всех вышеперечисленных проблем, мы также столкнулись с этой проблемой.

В итоге мы не смогли разгадать загадку нашего загадочного датчика LM35, и нам пришлось выбросить все 85 наших датчиков. Мы до сих пор не знаем, в чем заключалась проблема: был ли это производственный дефект или все 85 датчиков были поддельными? Остался вопрос, на который должна ответить остальная часть сообщества.

(Проголосуй первым!)
Загрузка...
20 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *