Независимые аналоговые датчики имеют зависимые показания?

Я работал с Nucleo f411re (MCU STM32), чтобы считывать данные с нескольких аналоговых датчиков.
Я начал тестировать один датчик температуры (LM35), и все было в порядке. Когда я добавил линейный потенциометр для чтения его расширения, произошел странный факт: показания температуры увеличились пропорционально расширению потенциометра. Вот схема:

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

PA0 и PA1 — аналоговые выводы, подключенные к АЦП stm32. Здесь вы можете найти техническое описание АЦП.

Поэтому я измерил выходное напряжение LM35 мультиметром, и оно было стабильным, даже когда я выдвигал потенциометр; в то время как, если считывать с Nucleo, температура «следила» за показаниями потенциометра.

Я решил эту проблему, добавив конденсатор емкостью 1 мкФ между землей и выходом V_out LM35. Но я не удовлетворен, потому что я хотел бы знать причину странного поведения чтения температуры. Есть идеи?

РЕДАКТИРОВАТЬ : я нашел что-то, что могло бы объяснить эту проблему в разделе 3.4.1 таблицы данных ADC. Кажется, это известная проблема из-за переключателя выборки во внутренней цепи выборки АЦП. Вы можете это подтвердить?

Нам нужна принципиальная схема. На панели инструментов редактора есть кнопка. Нажмите это! " Когда я добавил линейный потенциометр... " Как мы можем догадаться, где вы его добавили?
Пожалуйста, опубликуйте свой код также.
Вероятно, ваше время выборки было слишком коротким для импеданса датчика, и вы считываете его сразу после горшка (я предполагаю, что у него есть один АЦП, мультиплексированный на контакты)
@ pjc50, я думаю, что проблема в АЦП. Можете ли вы объяснить мне вашу гипотезу?
@Bernheart В этих устройствах обычно используется мультиплексированный АЦП, в техническом описании будут подробности. Вы не предоставили нам спецификацию, поэтому мы должны проделать дополнительную работу, чтобы помочь вам . Поэтому мы можем только догадываться и намекать.
@pipe, извините, я не мог представить себе природу проблемы. В моих интересах держать вас в форме, чтобы помочь мне
Ну а с даташитом и принципиальной схемой это теперь хороший и увотейший вопрос.
Если ваши провода к LM35 длинные, вы должны следовать рекомендациям таблицы данных, чтобы предотвратить нестабильность.
@SpehroPefhany, провода действительно короткие.
По вашей ссылке нет даташита.
@ScottSeidman попробуй сейчас
@ScottSeidman: это не техническое описание ADC, но в данном случае это более полезный документ: документ по устранению неполадок для ADC.
На вашем микро нет земли. В реальной версии есть? И LM35, и потенциометр должны быть подключены к нему.
@ Транзистор, конечно, нет, мой STM32 подключен к земле!

Ответы (1)

Есть много вещей, которые могут быть причиной этой проблемы. см. здесь . Однако, что кажется наиболее очевидным, так это проблема со временем дискретизации.

Если вы заглянете на страницу 35, там упоминается, что АЦП является преобразователем выборки и хранения: у него есть конденсатор, который заряжается (или разряжается) до тех пор, пока его напряжение не станет таким же, как у источника, а затем он считывает это значение. Время для этого устанавливается временем включения SW1: «время выборки». Если конденсатору не хватило времени разрядиться/зарядиться до нужного напряжения до выключения переключателя и считывания значения (в зависимости от сопротивления источника), то вы не получите правильное значение.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Это находится в разделе о проблемах с чтением высокоимпедансных источников. LM35 имеет выход с низким импедансом, если он является источником тока, однако он может потреблять только 1 мкА тока, что делает его приемником тока с очень высоким импедансом .

Если вы устанавливаете более высокое напряжение с помощью потенциометра, чем считываете с LM35, то ток от конденсатора должен течь из C_sh через LM35: это очень медленно (из-за того, что ток может потреблять 1 мкА), и, таким образом, ваше время выборки слишком короткое.

Конденсатор помогает сгладить это, но также замедляет время отклика LM35.

Быстрое решение - поставить резистор> 1 кОм параллельно с LM35. Это потребляет ток, когда вам это нужно, и дает ток на землю для тока от C_sh.

Спасибо! Но я не понял, как конденсатор может помочь решить эту проблему: в самом деле, как внешний конденсатор может уменьшить время разряда C_sh?
Несколько пояснений: 1) когда переключатель изначально подключен, внешний конденсатор выглядит как короткое замыкание на быстрый переходный процесс более высокого напряжения C_sh, поэтому большой ток будет быстро течь таким образом. Низкочастотные компоненты переходного процесса меньше и могут проходить через LM35. 2) у вас на выходе конденсатор больше, чем C_sh. Когда они соединены параллельно, весь заряд равномерно распределяется между ними. Поскольку выходной конденсатор больше, он поглощает лишний заряд внутреннего конденсатора и почти не меняет свое напряжение.