Как подключить индуктивный датчик к ардуино

Arduino.ru

Из-за наличия транзисторного ключа, причём бывают как npn, так и pnp, а также питание датчика 6-36 вольт, необходима рапиновка датчика хотя бы.

  • Войдите на сайт для отправки комментариев

берите с ключем NPN. GND датчика соеденить с GND ардуины, выход датчика через резистор согласно документации датчика на плюс его питания и через диод (катод к датчику, анод к ардуине) на вход ардуины. На входе ардуины активировать подтяжку. Диод нужен, чтобы отвязать от ардуины высокое (от 6в и выше) для ардуины плюсовое напряжение питания датчика, через диод вход ардуины будет замыкаться на землю при срабатвании датчика, а его не срабатывании диод будет блокировать попадание плюсового напряжения с датчика на ардуину

Interfacing Inductive Proximity Sensor LJ12A3-4-Z/BY with Arduino

A proximity sensor is a sensor able to detect the presence of nearby objects. The inductive proximity sensor LJ12A3-4-Z / BY has three pins, two of which are connected to a supply voltage of 6 to 36V. The output pin is PNP and NO (Normally Open). That is, it is normally Low and when it detects an object, it is HIGH. The detection distance is 4 mm and it can only detect metal objects such as copper, aluminum, iron, etc.

Because the operation voltage is more than 5V, it can’t be powered by Arduino. So, we can use a battery to power it up.

Warning

Since the output voltage is more than 5 volts, we use voltage divider to connect the sensor output to Arduino.

Adafruit TDK InvenSense ICM-20948 9-DoF IMU

You will be redirected back to this guide once you sign in, and can then subscribe to this guide.

Using the ICM20948 with Arduino is a simple matter of wiring up the sensor to your Arduino-compatible microcontroller, installing the Adafruit ICM20X library we’ve written, and running the provided example code.

Use this wiring if you want to connect via I2C interface. The default I2C address for the ICM20948 is 0x69 but it can be switched to 0x68 by pulling the address pin low to GND.

Here is how to wire up the sensor using one of the STEMMA QT connectors. The examples show a Metro but wiring will work the same for an Arduino or other compatible board.

  • Connect board VIN (red wire) to Arduino 5V if you are running a 5V board Arduino (Uno, etc.). If your board is 3V, connect to that instead.
  • Connect board GND (black wire) to ArduinoGND
  • Connect board SCL (yellow wire) to ArduinoSCL
  • Connect board SDA (blue wire) to ArduinoSDA

Here is how to wire the sensor to a board using a solderless breadboard:

  • Connect board VIN (red wire) to Arduino 5V if you are running a 5V board Arduino (Uno, etc.). If your board is 3V, connect to that instead.
  • Connect board GND (black wire) to ArduinoGND
  • Connect board SCL (yellow wire) to ArduinoSCL
  • Connect board SDA (blue wire) to ArduinoSDA

You can install the Adafruit ICM20X library for Arduino using the Library Manager in the Arduino IDE. This library is compatible with both the ICM20948 and it’s sister sensor, the ICM20649

image

image

image

Казалось бы все просто. Но не на столько просто как я думал вначале. Давайте будем разбираться детальнее. Этот датчик кондуктивности имеет полярность NPN. Есть такие же датчики PNP полярности. Если я не ошибаюсь, у тех датчиков желтый наконечник. Разница между датчиками разной полярности состоит в том, что при срабатывании на NPN появляется единица, а на PNP при срабатывании появляется 0. Если мы, например, подключаем датчик от 9 вольт то на сигнал он также будет выдавать 9 вольт. То есть на сигнал мы получаем столько же вольт, от скольки его будем запитывать. Запитали от 20 — на сигнал будет выходить 20 вольт. А на Arduino как мы знаем больше 5 вольт подавать нельзя. У нас есть два варианта решения этой проблемы — это или ставить делитель напряжения в виде резисторов или вместо делителя напряжения подключить небольшой понижающий преобразователь dc-dc. Мы с вами проверим оба варианта.

Принцип работы этого датчика следующий. Когда перед индуктивным датчиком появляется металл, то датчик открывает проход от плюса сигнальному проводу. Датчик срабатывает на любой металл. На обычный, к которому клеится магнит и также на нержавейку. В данный момент в этой схеме подключения я использую делитель напряжение. То есть из девяти вольт я при помощи делителя напряжения в лице подстроечного резистора получаю 5 вольт для сигнал на Arduino. Схема подключения изображена на рисунке ниже

Теперь вместо делителя напряжения подключим понижающий преобразователь и рассмотрим схему подключения через понижающий преобразователь. Теперь у нас схеме вместо делителя напряжения стоит понижающий преобразователь. После проверки работоспособности вы сможете убидится сами, что все работает так же ка и в первой схеме.

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

Теперь давайте в программе FLProg составим скетч для этого датчика. В программе создаем один вход — это наш датчик индуктивности. Вешаем его на второй пин, например, и один выход — это светодиод, который у нас показывает сработку датчика.

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

Подключение датчика тока к Ардуино

Датчик тока для Ардуино основан на эффекте Холла, имеет прямую зависимость измеряемой силы тока и выходного сигнала. Модули ACS712 / TA12-100 для измерения тока используются в проектах, где требуется защита от перегрузки, например, при изготовлении зарядных устройств и внешних аккумуляторов (power bank), импульсных источников питания. Рассмотрим, как работать с датчиками тока и Arduino Uno.

Характеристики датчика тока Arduino

ACS713 и ACS712 состоит из линейного датчика на базе эффекта Холла с медным проводником. Ток создает магнитное поле в медном проводнике, которое улавливается датчиком и преобразуется в напряжение. Сила магнитного поля линейно зависит от силы тока. Точность обеспечивается микросхемой на модуле с заводскими настройками. Работает цифровой датчик с постоянным и переменным током.

Принцип работы датчика тока ACS712 с элементом Холла

Технические характеристики ACS712

  • Тип интерфейса: цифровой;
  • Напряжение: постоянное и переменное;
  • Напряжение питания: 5 Вольт;
  • Ток потребления: не более 11 мА;
  • Измерение силы тока: от 5 до 30 Ампер;
  • Чувствительность: от 66 мВ/А до 185 мВ/А;
  • Температура эксплуатации: от -40°C до +85°C;
  • Размер платы модуля: 31 мм на 13 мм.

Датчик TA12-100 Arduino работает на другом принципе. Модуль измеряет напряжение, падающее на транзисторе в 200 Ом, который находится на выходе трансформатора. Датчик TA12-100 преобразует напряжение на резисторе в аналоговый сигнал, применяя закон Ома (I = E / R). Коэффициент трансформатора составляет 1000:1 и, чтобы получить значение тока, следует полученные данные умножить на 1000.

Датчик тока TA12-100 для платы Ардуино

Технические характеристики TA12-100

  • Тип интерфейса: аналоговый;
  • Напряжение: постоянное;
  • Напряжение питания: 5 Вольт;
  • Ток потребления: не более 5 мА;
  • Измерение силы тока: до 5 Ампер;
  • Чувствительность: не известна;
  • Температура эксплуатации: от -55°C до +85°C;
  • Размер платы модуля: 30 мм на 24 мм.

Как подключить к Ардуино датчик ACS712

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • датчика тока ACS712 / TA12-100;
  • источник питания 12 Вольт;
  • нагрузка, например, лампа 12V;
  • провода «папа-папа», «папа-мама».

Датчик ACS712 является аналоговым, для подключения потребуется три провода. Два для питания — GND и 5V и один провод для сигнала. Датчик подключается в разрыв цепи между источником питания и нагрузкой. Используется библиотека TroykaCurrent.h (скачать ее можно здесь), которая переводит значения аналогового сигнала в миллиамперы. Соберите схему, установите библиотеку и загрузите скетч.

Схема подключения к Arduino датчика тока ACS712

Счетч для датчика тока Arduino ACS712

Пояснения к коду:
  1. для переменного тока используйте команду sensorCurrent.readCurrentAC() ;
  2. при отрицательных значениях поменяйте местами провода на колодках.

Как подключить к Ардуино датчик TA12-100

Данный датчик используется только для измерения переменного тока и является аналоговым. Для подключения к плате вам потребуется два провода (хотя на модуле имеется три контакта) — один провод подключается к GND, а второй к аналоговому входу. Провод, где вы хотите измерить силу тока, должен проходить через катушку модуля. Соберите схему, как на картинке и загрузите следующий скетч.

Датчик тока для Arduino

Шунт, используемый в данной схеме, имеет маркировку — R005, что означает, что он имеет сопротивление 5 мОм.

Смысл заключается в том, чтобы использовать небольшую нагрузку вместе с источником питания с мильтиметром и токовым шунтом последовательно с нагрузкой.

Таким образом, здесь мультиметр может измерять фактический ток, потребляемый нагрузкой, и от нашего текущего модуля шунтирования мы можем получить соответствующее аналоговое значение через Arduino.

Как подключить датчик тока к Arduino

Для проекта нам понадобятся:

Датчики тока, как следует из их названия, служат для измерения силы тока. Существуют датчики, которые основаны на различных физических эффектах и имеют различные особенности. В частности, рассматриваемый датчик ACS712 основан на эффекте Холла, датчик INA219 имеет в своём составе аналого-цифровой преобразователь (АЦП ), а датчик INA3221 – трёхканальный. Рассмотрим их по порядку.

1 Описание датчикатока ACS712

Датчик тока ACS712 – это датчик, который основан на эффекте Холла. Эффект Холла заключается в том, что когда через проводник, помещённый в магнитное поле, протекает электрический ток, в проводнике возникает напряжение. Это напряжение и служит индикатором силы тока: оно линейно зависит от силы тока. Ещё оно имеет небольшую зависимость от температуры окружающей среды и поддаётся влиянию внешних магнитных полей. Так, например, на графике ниже показана зависимость напряжения на выходе датчика ACS712 от силы протекающего тока (для одной из разновидностей датчика, об этом чуть ниже) при различных температурах:

Зависимость напряжения на выходе датчика ACS712 от силы тока

Модуль с датчиком ACS712 может выглядеть, например, так:

Модуль с датчиком тока ACS712 и схема подключения

Датчик ACS712 имеет следующие характеристики:

  • работает с постоянным и переменным током;
  • ток потребления – до 13 мА;
  • температура эксплуатации -40…+85 °C.

Существуют несколько разновидностей датчика ACS712, которые отличаются величиной измеряемого тока. Так, существуют разновидности с максимально измеряемым током 5, 20 и 30 А. Широкий диапазон измеряемых значений тока можно отнести к существенным преимуществам датчика ACS712. Перечисленные модификации имеют чувствительность 185, 100 и 66 мВ/А соответственно.

2 Подключение датчика тока ACS712 к Arduino

Как мы помним из курса школьной физики, для измерения тока необходимо пропустить ток через измерительный прибор, помещённый в разрыв между источником питания и нагрузкой. Соответственно, схема подключения датчика проста:

Вывод датчика ACS712 Назначение
VCC Питание, 5 В
GND Земля
OUT Аналоговый выход датчика, напряжение на котором линейно зависит от протекающего через датчик тока
IP+ Вывод 1 для подачи измеряемого тока
IP- Вывод 2 для подачи измеряемого тока

Выводы IP+ и IP- как раз и есть тот разрыв цепи, через который нужно пропустить интересующий ток. Если перепутать полярность, то измерения будут с обратным знаком.

Кстати, эта особенность – измерять ток как с положительным, так и отрицательным знаком, позволяет использовать датчик ACS712 для измерений переменного тока.

Таким образом, для подключения датчика ACS712 к плате Arduino используются 3 провода:

Схема подключения датчика тока ACS712 к Arduino

Выход сенсора VOUT подключим к любому аналоговому выводу Arduino, например, A0. В качестве нагрузки будем использовать двигатель постоянного тока.

Модуль с датчиком тока ACS712 подключён Arduino, нагрузка – двигатель постоянного тока

Либо вместо нагрузки можно использовать мощную лампу накаливания. Либо любую другую нагрузку.

Модуль с датчиком тока ACS712 подключён Arduino, нагрузка – 10 Вт лампа накаливания

Питать нагрузку будем от лабораторного источника тока, на котором можно менять напряжение и ток.

3 Чтение показаний датчика тока ACS712с помощью Arduino

В скетче будем постоянно читать значение с порта A0 и выводить в монитор последовательных данных. Напомню, АЦП у разных плат Arduino имеет различную разрядность, обычно 10 или 12 бит. Подробнее здесь. Это означает, что с аналогового порта могут приходить значения от 0 до 2 10 = 1024 для 10-разрядного АЦП . Будем считать, что у нас датчик тока, диапазон измерений которого от -5 А до +5 А, а чувствительность 185 мВ/А.

Пояснение принципа вычисления силы тока

На практике значение на аналоговом выводе A0 не будет равняться точно 512. Поэтому, чтобы определить начало отсчёта, добавим в скетч примитивную калибровку. Калибровка будет заключаться в том, что некоторое количество раз прочитаем значение с аналогового порта A0 при отсутствии тока на датчике ACS712, и усредним его. Естественно, нагрузка на время калибровки должна быть выключена, чтобы ток не протекал через датчик.

Скетч для измерения постоянного тока датчиком ACS712 (разворачивается)

Загрузим скетч и плавно начнём поднимать напряжение и ток на нагрузке. Какое-то время подождём, а затем начнём уменьшать ток. В результате получим примерно такую картинку:

Вывод тока датчика ACS712 в монитор последовательного порта и его график

Как видно, аналоговый сигнал постоянно «прыгает». Чтобы этого избежать, следует добавить в скетч сглаживание. Для этого будем проводить подряд несколько измерений, а затем брать среднее арифметическое от них в качестве действительного значения. Заодно совместим начальную калибровку, т.к. она выполняется точно так же. Вот как изменится в результате скетч:

Скетч для измерения постоянного тока датчиком ACS712 со сглаживанием

Кстати, желательно вынести чувствительность датичка ACS712 в константу в начале скетча, чтобы можно было быстро изменить скетч для модификации датчика с другим диапазоном измерений.

В результате выполнения данного скетча картинка получается гораздо более приятная:

Сглаженный график тока, измеренного датчиком ACS712

Тот же самый принцип заложен в библиотеки для Arduino, которые оперируют с датчиком тока ACS712. Например, вот эта библиотека Troyka Current.

По результату эксперимента получается, что датчик ACS712 очень простой, но при этом довольно не точный. Гораздо точнее датчик тока, который мы рассмотрим в следующем разделе.

4 Описание датчика тока,напряжения и мощности INA219

Датчик INA219 – цифровой датчик тока, напряжения и мощности. Он позволяет измерять напряжения от 0 до 26 вольт и ток от 0 до 3,2 ампер. Питается датчик напряжением от 3 до 5,5 В. Существуют модули, полностью готовые к подключению к Arduino. Один из таких модулей GY-219:

Модуль GY-219 с датчиком тока INA219: назначение выводов и частей

Датчик INA219 выполняется в двух разновидностях: A и B. Последняя отличается повышенной точностью и меньшей погрешностью. На фото ниже как раз модификация INA219B.

Модуль GY-219 с датчиком тока INA219

Для конфигурирования датчика INA219 и для считывания показаний с него используется последовательный интерфейс I2C. Причём адрес на шине можно задать с помощью перемычек A0 и A1 на модуле. Допустимые адреса:

  • 0x40 (без перемычек);
  • 0x41 (с перемычкой A0);
  • 0x44 (с перемычкой A1);
  • 0x45 (установлены обе перемычки).

Соответственно, на одной шине IIC можно иметь до 4-х таких датчиков, подключённых одновременно.

5 Подключение датчика тока и напряжения INA219 к Arduino

Для начала пойдём простым путём: скачаем готовую библиотеку, загрузим в Arduino и посмотрим на результат. Существует несколько библиотек для работы с нашим датчиком. Предлагаю воспользоваться вот этой популярной библиотекой для INA219 от Adafruit. Скачаем её, установим стандартным образом и загрузим в Arduino скетч из примеров getcurrent.

Если скетч не компилируется, а в сообщениях об ошибках присутствуют какие-то недостающие компоненты (например, Adafruit_I2CDevice.h или Adafruit_BusIO_Register.h, то необходимо доустановить их. Проще всего это сделать так. Для этого способа требуется подключение к интернету на компьютере, где запущена среда разработки. Открыть в среде Arduino IDE менеджер библиотек: в меню Tools Manage Libraries…. Откроется окно Library Manager. В поле поиска следует ввести adafruit busio. Когда библиотека будет обнаружена и покажется в списке, нажать кнопку Install.

Установка недостающих библиотек через менеджер библиотек Arduino IDE

Подключим модуль GY-219 к Arduino по следующей схеме. SDA и SCL датчика можно подключить как к аналоговым входам A4 и A5 Arduino, так и к специально выделенным портам SDA и SCL (если они есть на вашей плате).

Схема подключения датчика INA219 к Arduino

В качестве нагрузки может быть любой источник, например, электромотор, лампа или просто мощный резистор. У меня это 5 соединённых параллельно 5-ваттных 16-омных резисторов. В качестве источника питания также может выступать любой из имеющихся у вас источников. Я буду использовать лабораторный источник питания.

Датчик INA219 подключён к Arduino

В результате выполнения скетча получится следующий вывод:

Результат работы скетча «GetCurrent» для датчика тока INA219

Отлично! Всё работает! Как говорится, бери – и пользуйся.

Данная библиотека позволяет также проводить калибровку датчика INA219 при необходимости. Подробности – в описании библиотеки и в самих исходниках (в файле Adafruit_INA219.cpp библиотеки даётся большое число пояснений).

6 Как читать данные сдатчика тока и напряжения INA219

Если посмотреть на обмен данными по шине I2C, который происходит при работе данного скетча (с помощью логического анализатора, конечно), то увидим следующее.

Осциллограмма чтения регистров датчика INA219

Чтобы понять, что здесь происходит, необходимо познакомиться с картой регистров датчика INA219. Датчик содержит всего 6 регистров. Все регистры 16-разрядные.

Чтение регистров датчика тока INA219 с помощью FT2232H

Запустим программу SPI via FTDI, выберем в меню «Устройство» интерфейс I2C. Подключимся к порту A. Просканируем устройства на шине I2C. Программа найдёт устройство по адресу 64 (0x40), если конечно вы не меняли адрес перемычками A0 и A1. Выберем это устройство. В разделе «Чтение» зададим размер буфера 2 байта, напишем команду 00 и нажмём кнопку «Прочитать». Прочитанные данные будут в таблице, которая открывается по нажатию на кнопку с пиктограммой таблицы. Вот что мы увидим.

Чтение регистров датчика тока INA219 с помощью FT2232H и программы «SPI via FTDI»

Как вы уже наверное догадались, команда «0» означает адрес регистра, из которого мы хотим прочитать данные. А число 0x399F – это данные в нулевом регистре (регистр конфигурации). И это соответствует документации, т.к. после включения и загрузки микросхема INA219 имеет именно такую конфигурацию по умолчанию. Вот какую структуру имеет регистр конфигурации.

Структура конфигурационного регистра датчика тока INA219

В регистре конфигурации датчика INA219 присутствуют следующие части:

0x399F в двоичном виде это «001_11_0011_0011_111». Следовательно, значения по умолчанию после включения такие.

Для чтения других регистров необходимо сначала так же записать их адрес в поле «Чтение» «Команда», а затем прочитать 2 байта. Или можно записать номер регистра в поле «Запись» «Команда», а затем просто читать (не указывая адрес регистра в команде чтения).

К сожалению, последовательного чтения всех регистров микросхемы INA219 «за один проход» не предусмотрено.

Вернёмся к нашей осциллограмме. Мы видим на ней 6 циклов чтения (каждый начинается с зелёной точки ● и заканчивается тёмно-красной ● ). Сначала читаем регистр с напряжением шунта Vшунт. (адрес 0x01), который хранит значение 0x1957. Далее читаем значение регистра напряжения шины Vшины (0x02), в котором значение 0x19BA. Далее читаем регистр калибровки Cal (0x05) со значением 0x1000. Потом регистр тока шунта Iшунт. (0x04), в котором значение 0x1959. Потом снова читаем регистр калибровки Cal (0x05). И наконец читаем регистр мощности Pwr (0x03), в котором находится значение 0x042B. При этом монитор последовательного порта показывает следующее:

Вывод монитора порта в момент снятия осциллограммы с датчика INA219

Рассмотрим, как привести данные в регистрах «в человеческий вид». Нам интересны не все значения, а только напряжения и ток. Плюс регистр калибровки, который играет роль поправочного коэффициента.

Регистр Shunt Voltage (адрес 0x01) датчика INA219

Напряжение на шунте равняется тому значению, которое записано в регистре, поделённое на 100: Uшунта = Shunt_voltage/100 = 0x1957/100 = 64.87 (мВ) Для случаев, когда напряжение отрицательное, расчёт несколько сложнее. Это можно посмотреть в техническом описании (datasheet).

Регистр Bus Voltage (адрес 0x02) датчика INA219

Начнём с регистра, в котором записано напряжение шины, т.к. он самый простой. В текущий момент данные в нём это 0x19BA. Согласно всё тому же техническому описанию (datasheet на INA219), для преобразования значения в милливольты необходимо сделать следующее: Uшины = (0x19BA >> 3) × 32000 (мВ) / 8000 = 3292 (мВ).

Здесь 0x19BA это значение в регистре. Его нужно сдвинуть на 3 разряда вправо, т.к. данные о напряжении хранятся, начиная с 3-го разряда. 32000 (мВ) – это предел шкалы измерения (он указан в регистре конфигурации). А 8000 – это предел шкалы измерения в отсчётах. Получается 3292 (мВ) или 3.29 вольта, что мы и видим в выводе скетча в мониторе порта Arduino.‬

Регистр Current Register (адрес 0x04) датчика INA219

Значение тока рассчитывается тоже просто: I = 0x1959 × 0x1000 / 4096 = 6489.

Значение в регистре напряжения шунта 0x1959 умножается на значение регистра калибровки, который в нашем случае равен 0x1000. А затем результат делится на 4096 (что, кстати, то же самое, что 0x1000). То есть ток получается равным 6489. Но в каких единицах? Чтобы ответить на этот вопрос, необходимо определить параметр Current_LSB: Current_LSB = 0.04096 / 0x1000 / 0.1 (Ом) = 0.0001 Здесь 0x1000 – значение регистра калибровки, 0.1 (Ом) – сопротивление шунта, а 0.04096 – просто коэффициент. Теперь посчитанный ток нужно умножить на число Current_LSB, и получим 0.6489 (А) или 648,90 (мА). Такой ток мы видим и в мониторе.

Регистр Power (адрес 0x03) датчика INA219

Мощность рассчитывается как произведение напряжения на шине и тока: P = Uшины × I = 3292 (мВ) × 648.9 (мА) = 2136 (мВт)

Небольшое расхождение с выводом монитора Arduino связано с ошибкой округления. А именно, если посмотреть на вывод монитора порта, мы увидим, что значение напряжения на шине принято равным 3.29 В, в то время как в регистре записано 3.292 В. Из-за этого рассчитанное значение на 2 милливатта больше, чем показанное в выводе скетча.

7 Подключение трёхканального датчика тока и напряжения INA3221 к Arduino

Датчик тока INA3221 практически идентичен датчику INA219. Основное отличие состоит в том, что он имеет 3 измерительных канала вместо одного. Показания с них можно снимать независимо друг от друга. Будем использовать вот такую небольшую плату с датчиком:

Подключается данный модуль к Arduino всего 4-мя проводами: два для питания, и ещё два – шина I2C.

Вывод модуля INA3221 Вывод Arduino Назначение
SDA A4 Данные шины I2C
SCL A5 Импульсы синхронизации шины I2C
VS +3.3V Питание
GND GND Общий

Подключение датчика INA3221 к Arduino Nano

Назначение остальных выводов модуля показано на приведённом рисунке и в таблице ниже.

Вывод модуля INA3221 Назначение
TC Цифровой выход оповещения о сбое таймингов (timing control alert).
WAR Цифровой выход оповещения о сбоях измерений (warning).
CRI Цифровой выход оповещения о критических сбоях (critical).
PV Цифровой выход оповещения о валидности питающего напряжения (power valid).
VPU Аналоговый вход подтягивающего напряжения для смещения выходных цепей определения валидности питания.
POW Аналоговый вход питания измеряемой нагрузки.
CH1, CH2, CH3 Порты для подключения измеряемых цепей.

Используем библиотеку для работы с датчиком INA3221. Поместим файлы с расширениями *.cpp и *.h в одну директорию, в ней же создадим файл с расширением *.ino и следующим содержимым:

Скетч для чтения показаний датчика INA3221

Загрузим данный скетч в память Arduino. Перед тем как подключать нагрузку, необходимо подать с источника питания напряжение на контакты POW и GND, расположенные с одного из краёв модуля. Это напряжение будет подаваться на нагрузку и оно в данном модуле общее для всех трёх измерительных каналов. Допустимый диапазон напряжений от 0 до 26 вольт. Я сейчас подам 5 В.

Удобно в места подключения нагрузки и питания впаять клеммники для быстрого монтажа.

Теперь можно подключать нагрузку. Давайте нагрузим выходы модуля и посмотрим, что будет выводиться в монитор последовательного порта. Я подключу на канал 1 два параллельных резистора номиналом 4,3 кОм, что в сумме даст сопротивление 2,15 кОм. А на канал 3 – один резистор 4,3 кОм.

Датчик тока INA3221 с нагрузкой

В мониторе последовательного порта видно, как меняются показания датчика INA3221 при изменении нагрузки. На иллюстрации для примера показаны три состояния: показания датчика без нагрузки, с нагрузкой на одном канале и с разной нагрузкой на двух каналах.

Показания датчика тока INA3221 в мониторе COM-порта

Если мы подключим в измеряемую цепь амперметр, то убедимся, что показания цифрового датчика INA3221 довольно точно совпадают с показаниями амперметра.

Показания датчика тока INA3221 в сравнении с амперметром

Ссылка на основную публикацию
Похожее