Я работал с Nucleo f411re (MCU STM32), чтобы считывать данные с нескольких аналоговых датчиков.
Я начал тестировать один датчик температуры (LM35), и все было в порядке. Когда я добавил линейный потенциометр для чтения его расширения, произошел странный факт: показания температуры увеличились пропорционально расширению потенциометра. Вот схема:
смоделируйте эту схему - схема, созданная с помощью CircuitLab
PA0 и PA1 — аналоговые выводы, подключенные к АЦП stm32. Здесь вы можете найти техническое описание АЦП.
Поэтому я измерил выходное напряжение LM35 мультиметром, и оно было стабильным, даже когда я выдвигал потенциометр; в то время как, если считывать с Nucleo, температура «следила» за показаниями потенциометра.
Я решил эту проблему, добавив конденсатор емкостью 1 мкФ между землей и выходом V_out LM35. Но я не удовлетворен, потому что я хотел бы знать причину странного поведения чтения температуры. Есть идеи?
РЕДАКТИРОВАТЬ : я нашел что-то, что могло бы объяснить эту проблему в разделе 3.4.1 таблицы данных ADC. Кажется, это известная проблема из-за переключателя выборки во внутренней цепи выборки АЦП. Вы можете это подтвердить?
Есть много вещей, которые могут быть причиной этой проблемы. см. здесь . Однако, что кажется наиболее очевидным, так это проблема со временем дискретизации.
Если вы заглянете на страницу 35, там упоминается, что АЦП является преобразователем выборки и хранения: у него есть конденсатор, который заряжается (или разряжается) до тех пор, пока его напряжение не станет таким же, как у источника, а затем он считывает это значение. Время для этого устанавливается временем включения SW1: «время выборки». Если конденсатору не хватило времени разрядиться/зарядиться до нужного напряжения до выключения переключателя и считывания значения (в зависимости от сопротивления источника), то вы не получите правильное значение.
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Это находится в разделе о проблемах с чтением высокоимпедансных источников. LM35 имеет выход с низким импедансом, если он является источником тока, однако он может потреблять только 1 мкА тока, что делает его приемником тока с очень высоким импедансом .
Если вы устанавливаете более высокое напряжение с помощью потенциометра, чем считываете с LM35, то ток от конденсатора должен течь из C_sh через LM35: это очень медленно (из-за того, что ток может потреблять 1 мкА), и, таким образом, ваше время выборки слишком короткое.
Конденсатор помогает сгладить это, но также замедляет время отклика LM35.
Быстрое решение - поставить резистор> 1 кОм параллельно с LM35. Это потребляет ток, когда вам это нужно, и дает ток на землю для тока от C_sh.
Транзистор
Бенс Кауликс
pjc50
Бернхарт
трубка
Бернхарт
трубка
Спехро Пефхани
Бернхарт
Скотт Сейдман
Бернхарт
Эндрю Спот
Транзистор
Бернхарт