Цифровой датчик тока и напряжения INA219
Характеристики INA219
- Напряжение питания: от 3.0 до 5.5 В;
- Разрядность АЦП: 12 бит;
- Выходной интерфейс: I2C;
- Скорость интерфейса: 3.4 МГц;
- Диапазон измеряемых напряжений: от 0 до 26 В;
- Максимальный измеряемый ток: от -3.2 A до 3.2 A;
- Дискретность при измерении тока: 0.8 мА;
- Точность измерений по току и напряжению: 1 %;
- Диапазон рабочих температур: от -40 до +125 °C;
- Дрейв в рабочем температурном диапазоне: 100 мкВ;
- Калибровка: калибровочный регистр;
- Внутренние данные: измеренный ток и мощность;
- Фильтрация: х128 отсчетов.
Модуль GY-219 на базе INA219
Модуль GY-219 — это законченный модуль, который можно подключать к различным устройствам, не только к платформе Arduino, но и к Raspberry Pi, Orange PI, Banana Pi и др.. Основным элементом на плате является микросхема INA219. Несмотря на маленький размер и малое количество выводов, INA219 обладает большими возможностями. Микросхема измеряет падение напряжения на шунте (резисторе с малым сопротивлением на выводах Vin+ и Vin-). На плате установлен шунт с сопротивлением 0.1 Ом.
Принципиальная схема GY-219/INA219
Модуль имеет минимальный набор компонентов для правильной работы датчика INA219.
Распиновка
Плата имеет 6+2 вывода, 2 из 6 дублируют Vin+ и Vin-.
Вывод | Описание |
---|---|
Vcc | Питание модуля от 3.0 до 5.5 В |
Gnd | Земля |
Scl | |
Sda | Линия данных (Serial Data) |
Vin- | Выход напряжения от источника питания через шунт. Напряжение измеряется от этого вывода относительно земли |
Vin+ | Вход напряжения от источника питания |
A0 | Выбор I2C адреса |
A1 | Выбор I2C адреса |
Система установки I2C адреса на INA219
Если используется более одной платы INA219, каждой плате должен быть присвоен уникальный адрес. Это делается с помощью адресных перемычек на правом краю платы. Базовый адрес I2C для каждой платы равен 0x40. Бинарный адрес, который вы программируете с помощью перемычек адресов, добавляется к базовому адресу I2C.
A1 | A0 | Адрес (bin) | Адрес (hex) |
---|---|---|---|
GND | GND | 1000000 | 0x40 |
GND | VS+ | 1000001 | 0x41 |
GND | SDA | 1000010 | 0x42 |
GND | SCL | 1000011 | 0x43 |
VS+ | GND | 1000100 | 0x44 |
VS+ | VS+ | 1000101 | 0x45 |
VS+ | SDA | 1000110 | 0x46 |
VS+ | SCL | 1000111 | 0x47 |
SDA | GND | 1001000 | 0x48 |
SDA | VS+ | 1001001 | 0x49 |
SDA | SDA | 1001010 | 0x4A |
SDA | SCL | 1001011 | 0x4B |
SCL | GND | 1001100 | 0x4C |
SCL | VS+ | 1001101 | 0x4D |
SCL | SDA | 1001110 | 0x4E |
SCL | SCL | 1001111 | 0x4F |
Для изменения адреса шины I2C платы микросхемы INA219 нужно запаять/отпаять перемычки на A0 и A1. Определить текущий адрес можно с помощью I2cScanner от Arduino.
Описание регистров INA219
INA219 использует 5 регистров для хранения настроек конфигураций, результатов измерений, максимальных/минимальных пределов и информации о состоянии. В таблице ниже представлены регистры INA219.
Содержимое регистра обновляется 4 мкс после завершения команды записи. Следовательно, требуется задержка в 4 мкс между завершением записи в заданный регистр и последующим считыванием этого регистра (без изменения указателя) при использовании частот SCL, превышающих 1 МГц.
АДРЕС | ИМЯ РЕГИСТРА | ФУНКЦИЯ | СБРОС | ТИП |
---|---|---|---|---|
HEX | HEX | |||
0x00 | Конфигурации | Сброс всех регистров, настройка диапазона напряжения шины, усиление PGA, разрешение / усреднение АЦП. | 0x399F | R/W |
0x01 | Напряжение шунта | Данные измерения напряжения шунта. | — | R |
0x02 | Напряжение шины | Данные измерения напряжения шины. | — | R |
0x03 | Мощность | Данные измерения мощности. | 0x0000 | R |
0x04 | Ток | Содержит значение тока, протекающего через шунтирующий резистор. | 0x0000 | R |
0x05 | Калибровка | Калибровочный регистр. Полная калибровка системы. | 0x0000 | R/W |
Рекомендуемые товары
Датчик тока и напряжения на INA219
Цифровой датчик тока и напряжения GY-219 предназначен для измерения таких параметров постоянног..
1 400 ₸
Цифровой датчик тока и напряжения на INA219 с шиной I2C
Цифровой датчик тока и напряжения CJMCU-219 предназначен для измерения таких параметров постоянного тока как напряжение, ток и потребляемая мощность.
Модуль выполнен на микросхеме INA219 – измерителем тока и напряжения с нулевым дрейфом и обладает малыми размерами и весом при очень больших возможностях и высокой точности измерений.Микросхема измеряет параметры протекания тока в любом направлении с автоматическим переключением полярности измерения. Применить модуль можно в системах, контролирующих процесс заряда/разряда аккумуляторных батарей, источниках питания с контролем напряжения и потребляемого нагрузкой тока.Возможности изменения I2C адреса измерителя позволяют подключить на одну шину до 4-х таких устройств. Для увеличения точности измерений предусмотрен регистр калибровки.
Характеристики:
- Тип модуля: измерение электрического тока
- Рабочая температура: от -40C до 85C
- Дрейф в рабочем температурном диапазоне: 100мкВ
- Максимальный измеряемый ток: 3,2А
- Точность измерения тока: 0,8мА
- Разрешение измерителя: 12-бит
- Интерфейс: I2C
- Скорость интерфейса: 3,4МГц
- Максимальное измеряемое напряжение: +-26 В
- Калибровка: калибровочный регистр
- Внутренние данные: измереренный ток и мощность
- Фильтрация: х128 отсчетов
- Напряжение питания: от 3В до 5В
- 0
- 0
- 0
- 0
- 0
Raspberry Pi INA219 | Rototron
В этом учебном пособии показано, как измерять постоянное напряжение, ток и мощность с помощью Raspberry Pi и INA219. Это может быть очень полезно во многих приложениях, таких как измерение уровня заряда батареи, оценка срока службы батареи, отслеживание выработки солнечной энергии, контроль количества и стоимости потребления электроэнергии и т. д.
Вот коммутационная плата INA219. Она может измерять напряжение до 26 В. На этой плате имеется шунтирующий резистор для измерения тока 0,1 Ом с маркировкой R100.
Микросхема INA219 может очень точно измерять падение напряжения на шунте. Это разница между напряжением, поступающим на шунт, и напряжением после шунта.
Затем он использует это падение напряжения вместе со значением резисторного шунта для определения тока в амперах, поскольку закон Ома гласит, что ток (I) = напряжение (В) / сопротивление (R). С напряжением и током он может рассчитать мощность, используя мощность (P) = напряжение (V) x ток (I). Следующая круговая диаграмма суммирует множество полезных уравнений.
Максимальное падение напряжения, которое может измерить INA219, составляет 320 мВ или 0,32 В. Следовательно, максимальный ток, который INA219 может измерить с резистором по умолчанию, составляет 0,32 В / 0,1 Ом = 3,2 А. Если вам нужно измерить более 3,2 A можно заменить шунт 0,1 Ом на меньшее значение. Шунт 0,01 Ом позволяет измерять ток 32 А.
Однако резистор с меньшим номиналом должен рассеивать больше тепла, поэтому он должен иметь более высокую номинальную мощность. Рассеиваемая мощность (P) = ток (I) 2 x сопротивление (R). Номинал платы по умолчанию 3,2 А означает, что резистор 0,1 Ом должен рассеивать 1,024 Вт: 3,2 2 x 0,1 Ом = 1,024 Вт. Возможно, больше, если резистор расположен рядом с другими компонентами, выделяющими тепло. При токе 32 ампера уравнения мощности показывают, что шунт резистора 0,01 Ом должен рассеивать в 10 раз больше ватт: 32 2 x 0,01 Ом = 10,24 Вт.
Прецизионные шунтирующие резисторы для измерения тока, рассчитанные на 10 Вт, обычно дороги и довольно сильно нагреваются. Поэтому, если вы хотите измерить силу тока более 3,2 ампера, я бы рассмотрел более эффективное решение, такое как Allegro ACS37800, которое может измерять напряжение до 60 В постоянного тока и ток до 30 А с использованием технологии измерения тока на основе эффекта Холла с гальванической развязкой. . Будьте осторожны при работе с опасными течениями!
INA219 предоставляет цифровые отчеты с использованием протокола связи I 2 C. В отличие от аналогового датчика, который обеспечивает пропорциональное значение, цифровой INA219 возвращает фактические значения напряжения, тока и мощности в вольтах, амперах и ваттах. I 2 C позволяет очень легко подключить адаптер INA219 к Raspberry Pi. Вывод VCC подключен к выводу 3,3 В на Pi. Штырь заземления подключен к штырю заземления на пи. Контакты SDA и SCL подключены к SDA и SCL на Pi, которые являются GPIO 2 и 3 соответственно. Начиная с INA219работает при напряжении 3,3 В, сдвиг уровня не требуется. Вы также можете последовательно подключить несколько устройств I 2 C, используя только 2 контакта GPIO SDA и SCL. На приведенной ниже схеме показано, как измерить индикаторную лампу на 12 В. Положительная клемма источника питания 12 В подключается к разъему V IN PLUS на INA219. V IN MINUS подключается к одному из проводов индикаторной лампы. Другой провод подключается к отрицательной клемме источника питания. Это замыкает цепь и позволяет току течь. Для INA219для правильной работы измеряемый источник питания должен иметь общую землю с Pi. Следовательно, отрицательная клемма источника питания 12 В также подключается к земле на Pi.
ЖК-дисплей 16×2 можно использовать для обеспечения визуальной обратной связи. У меня есть специальный учебник по ЖК-дисплею для получения дополнительной информации. Заземляющий контакт ЖК-дисплея подключен к земле на Pi. VCC подключен к контакту 5 В на Pi. Контрастный контакт соединен с землей с помощью последовательного резистора 4,7 кОм для снижения контраста. Вы также можете использовать переменный резистор для регулируемой контрастности или не использовать резистор для полной контрастности. RS подключен к GPIO 21. Контакт чтения и записи заземлен, чтобы обеспечить только запись. Контакт включения подключен к GPIO 20. Дисплей используется в 4-битном режиме, поэтому линии данных 0–3 пропускаются, а 4–7 подключаются к GPIO 16, 12, 7 и 8 соответственно. Вы можете использовать любые контакты GPIO для управления ЖК-дисплеем и линий данных, если вы укажете их в своем коде. Анод светодиода задней подсветки дисплея питается от контакта 5 В на Pi с последовательно включенным резистором 51 Ом для снижения яркости. Катод светодиода задней подсветки дисплея заземлен на Pi. Опять же, вы можете использовать переменный резистор со светодиодом задней подсветки для регулируемой яркости или без резистора для полной яркости. Обратите внимание, что для некоторых дисплеев требуется резистор для защиты светодиода задней подсветки, поэтому дважды проверьте таблицу данных.
Перед установкой любого программного обеспечения убедитесь, что ваш Pi обновлен с помощью sudo apt-get update и sudo apt-get upgrade.
обновление sudo apt-get && обновление sudo apt-get
Я также рекомендую вам использовать только что очищенный PI с последней версией Raspbian. Он поставляется с предварительно загруженными многими библиотеками, которые мы будем использовать. Чтобы использовать I 2 C, он должен быть включен. В главном меню Raspberry Pi нажмите «Настройки», а затем нажмите «Конфигурация Raspberry Pi». Выберите вкладку «Интерфейсы» и щелкните, чтобы включить I 2 C. Нажмите OK, чтобы закрыть.
Утилита обнаружения I 2 C может использоваться для проверки правильности подключения INA219. В следующей таблице показано одно устройство I 2 C с шестнадцатеричным адресом 40, которое используется по умолчанию для INA219. На старых Pi параметр шины может быть равен 0 вместо 1.
К одной шине I 2 C можно подключить 16 INA219, если каждый из них имеет уникальный адрес подчиненного устройства. Вы можете изменить адрес, используя различные подключения к контактам A0 и/или A1 (см. таблицу ниже, основанную на таблице 1 из таблицы данных).
A1 | A0 | Адрес подчиненного устройства | Шестнадцатеричный |
---|---|---|---|
Земля | Земля | 1000000 | 40 |
Земля | VS+ | 1000001 | 41 |
Земля | ДПД | 1000010 | 42 |
Земля | SCL | 1000011 | 43 |
VS+ | Земля | 1000100 | 44 |
ВС+ | ВС+ | 1000101 | 45 |
ВС+ | ПДД | 1000110 | 46 |
ВС+ | SCL | 1000111 | 47 |
ПДД | Земля | 1001000 | 48 |
ПДД | ВС+ | 1001001 | 49 |
ПДД | ПДД | 1001010 | 4А |
ПДД | СКЛ | 1001011 | 4Б |
SCL | GND | 1001100 | 4C |
SCL | ВС+ | 1001101 | 4D |
СКЛ | ПДД | 1001110 | 4Е |
СКЛ | СКЛ | 1001111 | 4F |
Я протестировал несколько библиотек Python для INA219, и в настоящее время самая надежная из них принадлежит ChrisB2. Оптимальная настройка INA219 требует некоторых усилий, а библиотека Криса делает ее очень простой. Команду pip для установки библиотеки можно скопировать прямо из файла readme GitHub, а затем просто вставить ее в терминал и нажать Enter. Эта одна команда устанавливает библиотеку и все необходимые зависимости.
sudo pip установить git+git://github.com/chrisb2/pi_ina219.git
Библиотека ЖК-дисплея Adafruit python будет использоваться для управления ЖК-дисплеем. Он также быстро устанавливается с помощью sudo pip install adafruit-charlcd. Опять же, это обрабатывает библиотеку LCD и все зависимости.
sudo pip установить adafruit-charlcd
Вот код Python:
из времени импорта сна из ina219 импортировать INA219 из Adafruit_CharLCD импортировать Adafruit_CharLCD ina = INA219 (shunt_ohms = 0,1, max_expected_amps = 0,6, адрес=0x40) ina.configure(voltage_range=ina.RANGE_16V, усиление=ina.GAIN_AUTO, bus_adc=ina. ADC_128SAMP, shunt_adc=ina.ADC_128SAMP) lcd = Adafruit_CharLCD(rs=21, en=20, d4=16, d5=12, d6=7, d7=8, столбцы=16, строки=2) пытаться: пока 1: v = ина.напряжение() я = ina.current () р = ina.power () ЖК.очистить() lcd.message('{0:0.1f}В {1:0.1f}мА'.format(v, i)) lcd.message('\n{0:0.1f} Вт'.format(p/1000)) спать(1) кроме KeyboardInterrupt: print ("\nCtrl-C нажата. Программа завершает работу...") окончательно: ЖК.очистить()
Значение shunt_ohms указано как 0,1 Ом при создании экземпляра INA219. Это соответствует значению шунта на коммутационной плате. Для max_expected_amps установлено значение 0,6. Это максимальный ток, который вы ожидаете измерить. Результаты будут неточными, если фактическое текущее потребление выше указанного значения, но в целом более низкие значения дадут более точные результаты. Следовательно, вы хотите выбрать значение, немного превышающее максимальный ток измеряемого устройства. Вы всегда можете установить его выше, чтобы получить начальное примерное значение, а затем снизить его, чтобы получить лучшие результаты. Значение 0,6 обеспечивает безопасный запас для моей контрольной лампы, которая потребляет около 0,56 А при 12 В. Адрес указывает шестнадцатеричный код 40 для I 9.0019 2 C-адрес, который можно подтвердить с помощью I2C Detect. По умолчанию используется шестнадцатеричное число 40, поэтому этот параметр является необязательным.
Метод configure настраивает INA219. Для параметра voltage_range задано значение 16 В. Это полный диапазон напряжения. Возможные варианты: 16 В или 32 В. Хотя INA219 ограничен 26 В. Поскольку индикаторная лампа рассчитана на 12 В, выбирается более низкий вариант 16 В. Усиление используется для программирования регистра калибровки INA219, чтобы максимизировать разрешение датчика. Допустимые значения: 1, 2, 4 или 8. Функция автоматического усиления устраняет любые догадки. АЦП шины устанавливает разрешение аналоговой шины в цифровое преобразование 9, 10, 11 или 12 бит (чем выше, тем лучше). Также предусмотрена множественная выборка для повышения точности за счет более медленного считывания. Меня не волнует скорость, поэтому я использую ADC 128 SAMP для 128 выборок при 12 битах, что занимает около 68 миллисекунд на чтение. Шунтирующий АЦП имеет те же рекомендации, что и шинный АЦП, но для шунта. Я снова использую ADC_128 SAMP.
Создан ЖК-дисплей с выбором GPIO из приведенной выше схемы. Основной цикл программы заключен в оператор try для отлова ошибок. Переменная (V) будет хранить напряжение, возвращаемое методом напряжения, который опрашивает INA219.для напряжения на шине переменная (I) будет хранить ток в мА, возвращаемый текущим методом, а переменная (P) будет хранить мощность в мВт, возвращаемую методом мощности. ЖК-дисплей очищается методом очистки. Сообщение отображает вольты и амперы на шине в первой строке. Сообщение снова используется с \n для следующей строки на дисплее. Здесь показаны ватты. P делится на 1000, чтобы преобразовать милливатт в ватт. Цикл останавливается на 1 секунду и повторяется.
Я получил вопрос о неточных показаниях, когда INA219Клеммы Vin+ и Vin- отключены, как если бы для управления измеряемым устройством использовался переключатель. Если входные клеммы не подключены, они считаются плавающими. Напряжения измеряются относительно земли цепи. Если нет прямого электрического пути к этой земле, входное напряжение может иметь произвольные показания. Одним из решений является использование однополюсного двухпозиционного переключателя (SPDT). Однополюсный подключен к Vin+. Один виток подключается к земле, а другой виток подключается к положительной линии питания. Во включенном состоянии переключатель соединяет Vin+ с 12 В+. В выключенном состоянии Vin+ замыкается на землю, чтобы обеспечить нулевое напряжение на шунте. Переключатель меняет Vin+ между 12 В+ и землей. Пожалуйста, дважды проверьте свою проводку, чтобы убедиться, что ваш переключатель не замыкает 12 В + на землю.
Вот еще один пример кода без ЖК-дисплея:
из ina219 импорт INA219, DeviceRangeError из времени импортировать сон ШУНТ_Ом = 0,1 MAX_EXPECTED_AMPS = 2,0 ina = INA219 (SHUNT_OHMS, MAX_EXPECTED_AMPS) ina. configure(ina.RANGE_16V) защита read_ina219(): пытаться: print('Напряжение на шине: {0:0.2f}В'.format(ina.voltage())) print('Ток шины: {0:0.2f} мА'.format(ina.current())) print('Мощность: {0:0.2f} мВт'.format(ina.power())) print('Напряжение шунта: {0:0.2f}мВ\n'.format(ina.shunt_voltage())) кроме DeviceRangeError как e: # Ток вне диапазона устройства с указанным шунтирующим резистором печать (е) пока 1: read_ina219() спать(1)
ПРИМЕЧАНИЕ. Для библиотеки Криса INA219 требуется библиотека ведения журналов, которая является частью репозитория MicroPython Lib.
INA219 Обрыв датчика постоянного тока на стороне высокого напряжения — макс. 26 В ±3,2 А
- Обрыв цепи
- Электроника org/ListItem”> Модули
- Модули датчиков
- Датчики тока и напряжения
- Датчики тока и напряжения
- Макс.
Эта коммутационная плата решит все ваши проблемы с контролем питания. Вместо того, чтобы возиться с двумя мультиметрами, вы можете просто использовать удобный INA219.Микросхема B на этом переходе для измерения как напряжения на стороне высокого напряжения, так и потребления постоянного тока по I2C с точностью 1%.
Большинство токоизмерительных устройств, таких как наш панельный измеритель тока, подходят только для измерения низкого напряжения. Это означает, что если вы не хотите использовать батарею, вам нужно вставить измерительный резистор между целевой землей и истинной землей. Это может вызвать проблемы с цепями, поскольку электроника, как правило, не любит, когда ссылки на землю меняются и перемещаются с переменным потреблением тока. Этот чип намного умнее – он может измерять ток на стороне высокого напряжения до +26 В постоянного тока, даже если он питается от 3 или 5 В. Он также сообщит о высоком боковом напряжении, что отлично подходит для отслеживания срока службы батареи или солнечных батарей.
Прецизионный усилитель измеряет напряжение на чувствительном резисторе 0,1 Ом, 1 %. Поскольку максимальная разность входного сигнала усилителя составляет ±320 мВ, это означает, что он может измерять до ±3,2 А. С внутренним 12-разрядным АЦП разрешение в диапазоне ±3,2 А составляет 0,8 мА. При минимальном значении внутреннего усиления div8 максимальный ток составляет ±400 мА, а разрешение — 0,1 мА. Опытные хакеры могут удалить резистор датчика тока 0,1 Ом и заменить его своим собственным, чтобы изменить диапазон (скажем, 0,01 Ом для измерения 32 А с разрешением 8 мА)
В комплект поставки входит 6-контактный разъем (чтобы вы могли легко прикрепить этот датчик к макетной плате), а также разъем 3,5 мм, чтобы вы могли легко присоединять и отсоединять нагрузку. Использование простое. Включите сам датчик от 3 до 5 В постоянного тока и подключите два контакта I2C к вашему микроконтроллеру. Затем подключите целевой источник питания к VIN+, а нагрузку к земле к VIN-. У нас есть подробное руководство, которое сделает за вас все усиление, диапазон и математику — просто подключите и работайте с Arduino или CircuitPython!
€ 12,65 € 10,50 Искл. НДС (NL)
Заказано до 23:59 , отправлено сегодня. … штук на складе
Доставка от 3,50 евро (NL) 30 дней охлажденияINA219 Датчик постоянного тока на стороне высокого напряжения, макс. Регулятор D36V28F5
+
Pololu 3,3 В, 2,6 А Понижающий регулятор напряжения D24V22F3
=
Часто покупают вместе Общая цена:
Альтернативные продукты
Вопросы клиента
Q Peterhow SET Programmable усилитель усиления (PGA) Ответьте на этот вопрос
Q Задайте вопрос