Перейти к содержанию

Работа с ADS1115

controller

Рисунок 1. Модуль LTEU-ADS1115-ISO в составе контроллера Lavritech

В стандартную конфигурацию контроллеров Lavritech входит поддержка микросхемы 4-канального 16-битного АЦП с I2C интерфейсом ADS1115. Эта микросхема(ы) может быть установлена во внешнем блоке на DIN-рейку, например в блоке Wiren Board WBIO-AI-DV-12/4-20mA или, как в нашем случае, во внутреннем модуле Lavritech LTEU-ADS1115-ISO 4-канального АЦП с гальванической изоляцией.

Устанавливается модуль LTEU-ADS1115-ISO в разъем EUHP и дополнительно занимает 2 разъёма WB для подключения к внешним клеммам контроллера. Более подробную информацию см. на странице модуля.

module

Рисунок 2. Общий вид модуля LTEU-ADS1115-ISO

На этой странице представлена информация по настройке модуля LTEU-ADS1115-ISO, содержащего чип ADS1115, а также пример работы с этим модулем. Сама настройка производится в несколько этапов:

  1. Настройка I2C интерфейса
  2. I2C_Scanner
  3. Активация работы ADS1115
  4. Пример получения данных
  5. Как использовать полученные данные

Настройка I2C интерфейса

Поскольку модуль LTEU-ADS1115-ISO для своей работы использует I2C интерфейс, то для работы с ним в первую очередь нужно настроить сам I2C интерфейс. Это можно сделать на странице «Hardware».

menu

Рисунок 3. Пункт меню «Hardware»

Здесь нужно выставить номера GPIO, которые по умолчанию используются в контроллерах Lavritech для I2C интерфейса (SDA:33, SCL:32). И затем нажать на кнопку «Set» для сохранения настроек.

i2c

Рисунок 4. Установка настроек интерфейса I2C

I2C_Scanner

Для определения адресов подключённых на I2C шине устройств в прошивке Lavritech существует т. н. «I2C_Scanner» — это специальная страница (утилита) на которой показываются найденные на I2C шине компоненты (устройства).

menu

Рисунок 5. Пункт меню «I2C_Scanner»

Если к вашему контроллеру (материнской плате) Lavritech подключён модуль (внутренний) или блок (внешний) с I2C интерфейсом, то I2C_Scanner покажет это на своей странице.

scan

Рисунок 6. Определение микросхемы ADS1115 на I2C шине

В нашем случае определяется наличие на I2C шине микросхемы ADS1115 на адресе 0x48. Модуль LTEU-ADS1115-ISO имеет возможность изменять этот адрес при помощи перемычек на плате, подробнее см. об этом на странице модуля.

Активация работы ADS1115

После проведённой предварительной настройки можно активировать работу чипа ADS1115. Для этого нужно снова зайти на страницу «Hardware», установить соответствующую галочку и нажать на кнопку «Set».

ads1115

Рисунок 7. Активация работы ADS1115

Обратите внимание: для сохранения настроек нажимать нужно ближайшую к установленной галочке кнопку «Set».

В результате на главной странице мы можем видеть четыре канала микросхемы ADS1115, установленной на модуле LTEU-ADS1115-ISO, которые имеют нулевые значения (поскольку ко входам ничего не подключено).

data

Рисунок 8. Данные с аналоговых входов в веб-интерфейсе

Пример получения данных

Модуль LTEU-ADS1115-ISO имеет четыре канала, которые могут быть сконфигурированы либо для измерения напряжения 0-4,096 В, либо для измерения тока 4-20 мА. Выбор того или иного режима работы производится при помощи замыкания перемычек на плате модуля.

conf

Рисунок 9. Конфигурация модуля LTEU-ADS1115-ISO перемычками

В нашем случае установлены все четыре перемычки и все четыре канала работают в режиме измерения тока 4-20 мА.

С точки зрения схемотехники, входные цепи модуля LTEU-ADS1115-ISO выполнены следующим образом:

circuit

Рисунок 10. Схема аналоговых входов модуля LTEU-ADS1115-ISO

Здесь либо входные сигналы подаются на микросхему через ограничивающие резисторы 10 кОм (для режима измерения напряжения), либо дополнительно подключаются шунтирующие резисторы 100 Ом для режима измерения тока.

Схема работы измерения тока датчиков 4-20 мА представлена ниже.

sensor

Рисунок 11. Блок-схема работы токового интерфейса датчиков

Поскольку верхний предел измерения напряжения составляет 4,096 вольта, а мы производим измерение входного тока на нагрузочном сопротивлении 100 Ом, то предел измерения тока в этом режиме составляет 40,96 мА.

4,096 В / 100 Ом = 0,04096 А или 40,96 мА

Учитывая, что весь диапазон измерений разбит на 32768 значений, мы можем вычислить коэффициент на который нужно будет умножить «сырые» данные микросхемы ADS1115, чтобы получить значение измеренного тока датчика в миллиамперах.

40,96 мА / 32768 = 0,00125

Теперь подключаем тестовый источник тока, эмулирующий датчик с токовым выходом, и задаём на нём ток в диапазоне 4-20 мА, в данном случае — 12 мА.

example

Рисунок 12. Тестовый стенд с генератором тока и контроллером Lavritech

Подробнее распиновка разъёма: подключаем источник тока (эмулятор датчика) между изолированной землёй AGND и третьим каналом AIN3.

pinout

Рисунок 13. Распиновка подключения источника тока к контроллеру

И получаем в веб-интерфейсе контроллера сырые данные с третьего входа:

circuit

Рисунок 14. Получение сырых данных с входа ADC3

Что соответствует 11,96 мА измеренного тока. Расхождение в 0,04 мА в данном случае можно считать несущественным, поскольку использовался некалиброванный тестовый генератор.

9568 * 0,00125 = 11,96 мА

Таким образом, используя получаемые данные с модуля LTEU-ADS1115-ISO, и умножая их на коэффициент 0,00125 мы можем получать значения измеренного тока датчиков в миллиамперах.

Как использовать полученные данные

Программное обеспечение Lavritech помещает получаемые с аналоговых входов данные в так называемые «Метрики» («Metrics»), которые можно увидеть на соответствующей странице.

menu

Рисунок 15. Пункт меню «Metrics»

Здесь указано имя метрики («ADS1115»), её статус («ON» — включено) и шаблоны для использования при программировании контроллера или вывода значений на экран.

metrics

Рисунок 16. Метрики микросхемы ADS1115

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

Для программирования в виде переменных:

ads1
ads2
ads3
ads4

Для вывода на экран в виде текста:

_ADS1_
_ADS2_
_ADS3_
_ADS4_

Каждая из этих метрик будет содержать текущее значение входного тока для каждого из четырёх каналов. В случае метрик-переменных (ads1, ads2 и т. д.) мы можем в Интерпретаторе умножить эти значения на коэффициент 0,00125 и получить реальные значения тока датчиков в миллиамперах.

Работа с MQTT

Программное обеспечение Lavritech автоматически создаёт соответствующие MQTT топики и помещает в них получаемые с датчиков данные, которые можно использовать для интеграции контроллера с вашей IoT системой.

mqtt

Рисунок 17. Пример работы MQTT

В данном случае MQTT топики имеют следующий вид:

/название контроллера/ads1
/название контроллера/ads2
/название контроллера/ads3
/название контроллера/ads4

Связанные темы

Модуль LTEU-ADS1115-ISO
Разъём EUHP
Разъём WB
Настройка опций

Где купить

Купить оборудование Lavritech можно в официальном интернет-магазине.