Схема вольтметра с автоматическим выбором диапазона с PIC uC ADC

Я хочу разработать вольтметр с автоматическим выбором диапазона с микроконтроллером PIC и его АЦП.

Требования:

  • Измерение напряжения от +0,2В до +50В
  • Защита от обратного входа или немного более высокого напряжения
  • Входное сопротивление может быть довольно низким, до нескольких мА.
  • Точность около 1% или лучше (хотя и не обязательно для меньших напряжений)
  • Время выборки около 0,5 мс или лучше

У меня есть схема в виду, и буду признателен за обратную связь. Возможно, есть более простые схемы, которые я мог бы использовать. PIC будет питаться от 5В. Я бы, вероятно, использовал простой дешевый операционный усилитель, работающий от 0 В и шины + 12 В. Выходы uC с тремя состояниями либо устанавливают делители входного напряжения, либо изменяют коэффициент усиления схемы операционного усилителя выше единицы.

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

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

Это выглядит разумно?

Ответы (2)

Я не уверен в этом на 100%, но я думаю, что большинство АЦП PIC являются 10-битными (разрешение 1 в 1024), но могут иметь погрешность до 10x LSB - это означает, что вы находитесь примерно на уровне точности 1% без учета точности резистора.

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

Кроме того, я думаю, что стабилитрон не понадобится, потому что R1 будет ограничивать ток в операционном усилителе, и он будет самозащитным - 50 В на 50 кОм дает 1 мА, и большинство операционных усилителей способны работать с таким током, используя свои внутренние диоды. . Я бы также запустил операционный усилитель от 5 В - это означает, что нет никаких шансов, что он сможет подавать убийственное напряжение (6 В или выше) на вывод PIC ADC. Используйте что-то вроде AD8605 - это от шины к шине, но, поскольку вы не можете точно достичь 5 В, уменьшите масштаб на 10% и восстановите в ЦП с коэффициентом охлаждения.

Наличие операционного усилителя с самозащитой (из-за 50k) означает, что отрицательные напряжения также защищены от отрицательных напряжений, но для полной уверенности прочитайте спецификации на операционный усилитель. Если вы все еще считаете, что вам нужен стабилитрон, учтите, что стабилитрон начнет потреблять ток при напряжении значительно ниже 5 В — это не будет включаться и выключаться, как только вы достигнете 4,99 вольт.

Спасибо. Я рассмотрю токи утечки и цифровые выходы уровня логического 0 на выводах UC. Возможно, я мог бы использовать NPN-транзисторы, чтобы минимизировать токи утечки для понижения напряжения и учесть их падение. Однако, если повезет, я могу компенсировать утечку и ненулевое напряжение на выводах UC в программном обеспечении.
Я бы использовал полевые МОП-транзисторы или аналоговые переключатели — они будут переключаться без большой утечки, а их сопротивление будет составлять доли ома, если вы выберете правильный.
Мой подход заключался бы в том, чтобы спроектировать каждый диапазон отдельно (возможно, с общим интерфейсом), подключить каждый к другому контакту A/D и заставить PIC переключать свой аналого-цифровой вход по мере необходимости.
@WoutervanOoijen Кажется, я помню, как вы (или кто-то другой) предлагали это по вопросу в прошлом году. Преимущество заключается в том, что вам не нужны контакты ввода-вывода для принудительного изменения коэффициента усиления путем замыкания резисторов — ADC1 работает до 50 В, а ADC2 работает до 5 В (или 10 В).
Правильный. В чипе уже есть мультиплексор, так почему бы его не использовать. Загвоздка в том, что вход(ы) с «более высоким коэффициентом усиления» не должен выводить ничего за пределами 0 .. Vcc на аналогово-цифровые входы, даже если они не выбраны.
Лично я, если бы не стоимость, мог бы использовать хороший последовательный АЦП с усилителем с программируемым коэффициентом усиления. Что-то вроде ti.com/lit/gpn/ads1146 . При цене менее 3 долларов стоимость может быть даже не такой уж большой проблемой, учитывая большое изменение количества компонентов.

Большинство микроконтроллеров pic имеют 10-битный АЦП, и для этого вам нужно преобразовать его по формуле, например:

В а л ты е "=" в а л ты е * ( р е ф е р е н с е м В 2 10 1 )

В а л ты е "=" в а л ты е * ( 5000 1024 1 )

В а л ты е "=" в а л ты е * 4,89

или вы посетите эту ссылку , они написали очень хорошее объяснение с кодом c.

Если вы каким-либо образом связаны с этим блогом, пожалуйста, открыто сообщите об этом, поскольку самореклама на этом сайте не рекомендуется.
@clabacchio Почему ты так думаешь?
@Butzke на основе истории сообщений, здесь и на Stack Overflow. Он неоднократно ссылается на страницы блога с одного и того же сайта.
Не говоря уже о том, что, как и в вашем последнем сообщении в блоге, код ужасен и находится за пределами mikroC, который не скомпилируется ни одним стандартным компилятором C.