Ардуино измерение напряжения отрицательной полярности

Как измерить отрицательное напряжение с помощью АЦП.

Как известно многие современные микроконтроллеры имеют встроенный многоканальный АЦП, как правило, физически АЦП всего один, а многоканальность обеспечивается с помощью мультиплексирования. Диапазон напряжений с которыми может работать АЦП определяют уровни опорных напряжений(+VREF и -VREF), они не должны выходить за диапазон питания микроконтроллера. Диапазон напряжений, питающих микроконтроллер, может быть от 0 до 3.3, либо от 0 до 5 вольт. Отсюда становится понятно что измерять отрицательные напряжения АЦП не может, а это бывает необходимо.

Для измерения отрицательных напряжений с помощью АЦП существует несколько способов, во всех примерах будем считать что -VREF = 0, а +VREF = 5 вольт.

Необходимо измерять только отрицательные напряжения, например, от -5 до 0.
В таком случае можно применить инвертирующий усилитель, построенный на операционном усилителе(ОУ), с коэффициентом усиления равным -1.

Когда на вход схемы будет приходить -1 вольт, на вход АЦП будет поступать +1 вольт. Если же сигнал, который хотим измерить нужно усилить, достаточно изменить номиналы резисторов R1 и R2.

Необходимо измерять только отрицательные напряжения, например, от -15 до 0.
В таком случае можно применить сумматор построенный на ОУ

Предположив, что R1 и R4 равны 10К, получаем

Необходимо измерить напряжение, которое может изменяться от -10 до 10 вольт.

Сделать это очень просто, для этого надо создать смещение, чтобы при подаче -10 вольт на вход схемы на входе АЦП было 0 вольт, тогда при подаче 10 вольт на входе АЦП будет 5 вольт.

Реализовать это можно несколькими способами:

  • на резисторах

Номиналы резисторов рассчитываются очень просто, когда мы подаём на левый вход R2 -10 вольт на его правом выводе должно быть 0 вольт, в таком случае ток через R3 не течёт, так как на его концах отсутствует разность потенциалов.

Ток, протекающий через R2, равен

Предположим R2 равен 10K, тогда R1 равен 5K.

Осталось рассчитать R3, для этого на левый вывод R2 подадим 10 вольт, при этом на правом выводе должно быть 5 вольт, в таком случае ток через R1 не течёт.

Ток через R2 равен току через R3, получаем

Минус схемы на резисторах, это то что R2 ограничивает ток, поступающий на вход АЦП и то что любой шум в цепи питания будет попадать на вход АЦП. Хотелось бы обратить внимание на то, что у АЦП есть такой параметр, как входное сопротивление, которое, как правило, зависит от частоты сэмплирования, ниже изображена таблица в которой показано как зависит сопротивление входа от периода преобразования АЦП для STM32

сопротивление источника сигнала должно быть меньше этого значения, а последовательно включеный резистор R2 явно его не уменьшает. Говоря простыми словами за короткий промежуток времени АЦП должно получить достаточный заряд чтобы работать с ним, а резистор, включённый последовательно с входом, не даёт этого сделать.

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

  • сумматор на операционном усилителе

Источник

Ардуино измерение напряжения отрицательной полярности

Каравкин В.
В статье «Двойной вольтметр на ARDUINO UNO» (Л.1) автор предложил описание вольтметра и программы для одновременного измерения и индикации двух постоянных напряжений. Что очень удобно, если нужно измерять одновременно два постоянных напряжения и сравнивать их. Это может потребоваться, например, при ремонте или налаживании стабилизатора постоянного напряжения, чтобы измерять напряжение на его входе и выходе, либо в других случаях. Однако, бывают схемы с двухполярным питанием, когда напряжение в какой-то точке схемы относительно общего «нуля» может быть как положительным, так и отрицательным. Здесь описывается доработка схемы и программы, чтобы прибор мог измерять и индицировать как положительное, так и отрицательное напряжение.


А0-А5, можно было выбрать любые два из них. В данном случае, выбраны А1 и А2.
Напряжение на аналоговых портах может быть только положительным и только в пределах от нуля до напряжения питания микроконтроллера, то есть, номинально, до 5V. Выход аналогового порта преобразуется АЦП микроконтроллера в цифровую форму. Для получения результата в единицах вольт, нужно его умножить на 5 (на опорное напряжение, то есть, на напряжение питания микроконтроллера) и разделить на 1024.
Для того чтобы можно было измерять напряжение более 5V, вернее, более напряжения питания микроконтроллера, потому что реальное напряжение на выходе 5-вольтового стабилизатора на плате ARDUINO UNO может отличаться от 5V, и обычно немного ниже, нужно на резисторах R1, R3 и R2, R4.
А как быть, если напряжение нужно измерить меньше нуля? В этом случае есть только один выход из положения, — это поднять уровень входного нуля. Идеально, нужно на половину напряжения питания, то есть, до 2,5V. При этом, к напряжению на входе будет прибавляться данные 2,5V. Затем, программно это напряжение просто вычитать из измеряемого. Но, это потребует необходимости дополнительного источника данного напряжения. В принципе, это не сложно сделать, но есть и более простое решение. Помимо стабилизатора напряжения 5V на плате ARDUINO UNO есть источник и напряжения 3,3V. Вот его и можно
использовать как «виртуальный нуль» для входа. Изменения в схеме видны на рисунке 1. По сравнению с первым вариантом входной «нуль» просто переставлен с общего нуля на источник +3.3V. Поэтому, когда входное напряжение положительное, на входе оно более 3,3V (но не более 5V — это верхний предел измерения), а когда отрицательное — менее 3,3V (но не менее 0V — это нижний предел измерения). Увеличение пределов измерения (по модулю) достигается резистивным делителем, а индикация фактического входного напряжения, поступающего на Х2 и ХЗ, путем программного вычитания из напряжения на входах микроконтроллера величины в 3,3V. Программа приведена в таблице 1.
Это видно в строках:
volt=(vout*5.0/1024.0-3.3)/0 . 048 ;
voltl=(voutl*5.0/1024.0-3.3)/0.048;

Число 3.3 — это как раз данное напряжение «виртуального нуля» входа.
В этих строках число 5.0 — это напряжение на выходе стабилизатора платы ARDUINO UNO. В идеале должно быть 5V, но для точной работы вольтметра это напряжение нужно предварительно измерить. Подключите источник питания и измерьте достаточно точным вольтметром напряжение +5V на разъеме POWER платы. Что будет, то и вводите в эти строки вместо 5.0, То же самое касается и напряжения +3.3V, — его нужно измерить на разъеме платы, потому что фактически оно может несколько отличаться от 3,3V. Например, если «5V» будет на самом деле 4.85V, a «3,3V» будет на самом деле 3,32V строки будут выглядеть так:
volt=(vout*4.85/1024.0-3.32)/0.048;
voltl=(voutl*4.85/1024.0-3.32)/0.048;
На следующем этапе нужно будет измерить фактические сопротивления резисторов R1-R4 и определить коэффициенты К (указаны 0.048) для этих строк по формулам:
К1 = R3 / (R1+R3) и К2 = R4 / (R2+R4)
Допустим, К1 = 0.046, а К2 = 0.051, так и пишем:
volt=(vout*4.85/1024.0-3.32)/0.046;
voltl=(voutl*4.85/1024.0-3.32)/0.051;
Таким образом, в текст программы нужно внести изменения соответственно фактическому напряжению на выходе 5-вольтового и 3,3-вольтового стабилизаторов платы ARDUINO UNO, и согласно фактическим коэффициентам деления резистивных делителей.
После этого прибор будет работать точно, и никакого налаживания или калибровки не потребует.
При измерении отрицательного напряжения на ЖК-индикаторе в соответствующей строке перед величиной напряжения будет знак «минус». При измерении положительного напряжения — знака нет.
Изменив коэффициенты деления резистивных делителей (и, соответственно, коэффициенты «К») можно сделать другие пределы измерения, и совсем не обязательно одинаковые для обоих входов.
Хочу напомнить, что к цифровым портам D2-D7 платы ARDUINO UNO подключен модуль жидкокристаллического индикатора Н1 типа 1602А. Питается ЖК-индикатор от стабилизатора напряжения 5V, имеющегося на плате стабилизатора напряжения 5V.
Для того чтобы индикатор взаимодействовал с ARDUINO UNO нужно в программу загрузить подпрограмму для его управления. Такие подпрограммы называются «библиотеками», и в программном комплекте для ARDUINO UNO есть много разных «библиотек». Для работы с ЖК-индикатором на основе HD44780 нужна библиотека LiquidCrystal. Поэтому программа (таблица 1) начинается с загрузки этой библиотеки:
#include

Эта строка дает команду загрузить в ARDUINO UNO данную библиотеку. Затем, нужно назначить порты ARDUINO UNO, которые будут работать с ЖК-индикатором. Я выбрал порты с D2 по D7. Можно выбрать другие. Эти порты назначены строкой:
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
После чего, программа переходит собственно к работе вольтметра.
Литература:
1. Каравкин В. «Двойной вольтметр на ARDUINO UNO». ж. Радиоконструктор, №1, 2017, с. 16-18.
06-2017

Читайте также:  Не хватает напряжения usb портам

Оставлять комментарии могут только зарегистрированные пользователи

Источник

Отрицательное напряжение от Arduino?

Я недавно получил INA101HP, см. Рисунок ниже. Я пытался использовать это на макете. Для питания операционного усилителя я подключил 5V к выводу + vcc, но потом понял, что действительно не понимаю, как обеспечить -5V для вывода -vcc . как это возможно, если я использую Arduino Uno в качестве источника напряжения ??

РЕДАКТИРОВАТЬ: на основе ответов, полученных до сих пор

было бы проще / ДЕШЕВЛЕ, если бы я приобрел отдельную батарею на 9 В с крышкой батареи на 9 В и подключил контактный конец к земле, а негативный конец к -vcc? величины + vcc и -vcc должны быть эквивалентны для операционного усилителя? Кажется, мне придется получить какой-то дополнительный компонент в любом случае .

Если вам требуется всего несколько мА, самое простое решение — использовать зарядный насос, такой как ICL7660, для создания -5 В от + 5 В:

Как видите, для этого нужно всего несколько компонентов. Эта простота имеет свою цену, и это означает, что выходное напряжение начинает падать, если вы нагружаете его более чем несколькими мА.

В качестве альтернативы вы можете использовать инвертирующий SMPS (импульсный источник питания), как этот

что позволит больше тока. Отношение R1 / R2 устанавливает выходное напряжение. Это самое простое приложение переключения, которое я знаю. SMPS, однако, требует тщательного выбора компонентов и компоновки печатной платы, чтобы получить хорошую эффективность и низкий уровень EMI.

  • Напряжения питания opamp + ve и -ve не должны быть одинаковыми. Требуется, чтобы используемые напряжения f = обеспечивали достаточный запас для любых сигналов, которые будут обрабатываться.

INA101HP измерительного усилитель (техническое описание) говорит , что минимальная подача разрешено составляет +/- 5 вольт , а максимум +/- 20. технического описания не говорит , насколько близко Vout будет подходить шины питания на +/- 5V поставок , но с +/- Напряжение 15 В для Vout обычно может составлять +/- 12,5 В, поэтому вы, вероятно, получите на 2-3 вольт меньше в верхней и нижней части диапазона Vout.

Читайте также:  Методика измерения напряжения шага

Существует несколько способов изготовления слаботочных источников отрицательного напряжения.

Вы можете использовать «диодный насос», управляемый прямоугольным сигналом с вывода процессора.

То же, что и выше, но с собственным внутренним генератором. Микросхемы емкостного ограничителя напряжения делают это, например, хорошо известный ICL7660 (таблица данных ->), но коэффициент усиления (Vout / Vin) может не соответствовать потребностям.

Сделай сам версии 7660 с функциональностью — допускают столько этапов, сколько может разумно рассмотреть с последующим более высоким соотношением Vin / Vout. ,

Преобразователь отрицательного напряжения ICL7660 — чрезвычайно прост в реализации.

Кроме того, ИС, такие как драйвер MAX232 RS232, имеют встроенные конденсаторные диодные насосы и могут использоваться в качестве источников для питания операционных усилителей. MAx232 данные

Если у вас есть + 5 В, то 7660 даст вам немного меньше, чем -5 В — ниже официальной спецификации — МОЖЕТ работать, но незначительно. Использование MAX232 или аналогичной более современной версии даст вам> +/- 8 В — более чем достаточно.

Если у вас есть только 3V3, ваши возможности более ограничены. (Я думал, что Arduino использовал питание 3V3, но вы говорите, что у вас есть 5V, так или иначе, так что не проблема). Два транзисторных инвертора, которые я опишу, будут работать (вам понадобятся два). Или вы можете построить многоступенчатый диодный насос и получить напряжение +/- 5В от 3В3 или что-то еще.

Вы также можете использовать дешевый, доступный и очень гибкий (и очень старый) MC34063 (таблица данных -> . Это около 60c в 1 в Digikey и может использоваться практически во всех известных топологиях smps. Не очень эффективный по современным стандартам. на 3В — 40В.

Вот пример MC34063 в инвертирующем источнике питания — от положительного к отрицательному. +4,5 — 6 В на входе / -12 В на выходе, но можно обеспечить любое требуемое соотношение. Помимо колпачков входного и выходного фильтров требуется 3 x R, 1 x D, 1 xc и IC. Аналогично для других режимов, таких как stepup.

Читайте также:  От каких величин зависит напряжение электрического поля по переносу заряда

MAX232, показанный здесь, использует больше конденсаторов, но создает отрицательные и положительные напряжения. Существует множество вариантов этой микросхемы, в том числе некоторые с крышками по 0,1 мкФ и некоторые с внутренними крышками. (Преобразователи / драйверы уровня RS232 в этом случае являются бонусом :-)).

— Некоторая форма SMPS (импульсный источник питания) с использованием индуктора.

Smps обычно не является предпочтительным вариантом из-за сложности. Однако следующая схема «LD Flasher», которую я разработал несколько лет назад (и которая, вероятно, была изобретена многими и многими другими людьми), может обеспечить отрицательный запас очень небольшого количества компонентов и при низких затратах.

Как показано здесь, это светодиодная вспышка, но если ни один из светодиодов не используется, а диод подключен к коллектору Q1 (верх L1), будет получено отрицательное напряжение. Это может быть блок питания для программатора, блок питания смещения на ЖК-дисплее, источник питания -ve и т.д.

Как показано, коллектор Q1 движется в отрицательном направлении под землей, когда Q1 выключается до тех пор, пока энергия в L1 не рассеется. Поменяйте местами заземление и тип питания и транзистор для + ve питания. Добавьте диод с выхода для использования в качестве источника постоянного тока. L1 — маленький герметичный «резистороподобный» индуктор или многие другие — эксперимент. Q1 Q2 — практически любые «желейные» маленькие транзисторы pnp и npn. С1 поляризован только для получения высокой емкости на размер. Может быть, например, керамическим, если емкость достаточно высока для нужд. Используйте только LED2 (лучший) или LED1 одновременно.

Долгая постоянная времени приводит к дискретным импульсам. Короткая постоянная времени производит более высокую выходную частоту. Используйте резистор между Q1b-Q2c для более высоких напряжений питания. Резистор последовательно с C1 продлит длительность импульса.

Эта схема обычно представлена ​​нагрузкой некоторого вида вместо L1 — это может быть светодиод (в зависимости от напряжения или транзисторной базы (часть следующей ступени) или лампочка и т. Д.) Моё «новшество» было очень очевидным одно из использования индуктивности (L1) в качестве нагрузки.Это обеспечивает импульс тока в L1, когда Q1 включен и когда Q1 выключается, L1 «отлетает назад» и подает любое напряжение, необходимое для сброса энергии из L1 в нагрузку.

Что вы могли бы сделать, это получить инвертор напряжения. Даже Микрочип делает эти вещи, что-то вроде TC1044S. Ищите преобразователи постоянного тока в зарядный насос. Эти чипы «инвертируют» источник питания от Vout к-Vout. (5 В до -5 В) Тогда вы можете подключить это к вашему чипу. Приятно то, что вам нужно всего несколько конденсаторов, и они доступны в DIP-упаковках. Обратите внимание, что эти источники питания не могут подавать гораздо больше, чем несколько десятков мА (этот может сделать 20 мА).

Кроме того, эти чипы генерируют много шума переключения. Поскольку вы подаете это в аналоговую часть, вы должны остерегаться этого. Если вас это не волнует, и вы просто хотите -5В, сделайте это.

Если вам нужно более чистое решение, вы не можете питать его только от Arduino. Вам нужно было бы получить отдельный изолированный штекер и подключить его + к текущему GND, и у вас — будет -5 В (или любой другой, который выбрасывает штекер). С серией 79xx (вместо 78xx) вы можете регулировать подачу при необходимости. Блок штепсельной вилки должен быть изолирован, иначе вы просто перебиваете расходные материалы.

Источник

Оцените статью
Adblock
detector