Работа с ADS1115
Рисунок 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 для подключения к внешним клеммам контроллера. Более подробную информацию см. на странице модуля.
Рисунок 2. Общий вид модуля LTEU-ADS1115-ISO
На этой странице представлена информация по настройке модуля LTEU-ADS1115-ISO, содержащего чип ADS1115, а также пример работы с этим модулем. Сама настройка производится в несколько этапов:
- Настройка I2C интерфейса
- I2C_Scanner
- Активация работы ADS1115
- Пример получения данных
- Как использовать полученные данные
Настройка I2C интерфейса
Поскольку модуль LTEU-ADS1115-ISO для своей работы использует I2C интерфейс, то для работы с ним в первую очередь нужно настроить сам I2C интерфейс. Это можно сделать на странице «Hardware».
Рисунок 3. Пункт меню «Hardware»
Здесь нужно выставить номера GPIO, которые по умолчанию используются в контроллерах Lavritech для I2C интерфейса (SDA:33, SCL:32). И затем нажать на кнопку «Set» для сохранения настроек.
Рисунок 4. Установка настроек интерфейса I2C
I2C_Scanner
Для определения адресов подключённых на I2C шине устройств в прошивке Lavritech существует т. н. «I2C_Scanner» — это специальная страница (утилита) на которой показываются найденные на I2C шине компоненты (устройства).
Рисунок 5. Пункт меню «I2C_Scanner»
Если к вашему контроллеру (материнской плате) Lavritech подключён модуль (внутренний) или блок (внешний) с I2C интерфейсом, то I2C_Scanner покажет это на своей странице.
Рисунок 6. Определение микросхемы ADS1115 на I2C шине
В нашем случае определяется наличие на I2C шине микросхемы ADS1115 на адресе 0x48. Модуль LTEU-ADS1115-ISO имеет возможность изменять этот адрес при помощи перемычек на плате, подробнее см. об этом на странице модуля.
Активация работы ADS1115
После проведённой предварительной настройки можно активировать работу чипа ADS1115. Для этого нужно снова зайти на страницу «Hardware», установить соответствующую галочку и нажать на кнопку «Set».
Рисунок 7. Активация работы ADS1115
Обратите внимание: для сохранения настроек нажимать нужно ближайшую к установленной галочке кнопку «Set».
В результате на главной странице мы можем видеть четыре канала микросхемы ADS1115, установленной на модуле LTEU-ADS1115-ISO, которые имеют нулевые значения (поскольку ко входам ничего не подключено).
Рисунок 8. Данные с аналоговых входов в веб-интерфейсе
Пример получения данных
Модуль LTEU-ADS1115-ISO имеет четыре канала, которые могут быть сконфигурированы либо для измерения напряжения 0-4,096 В, либо для измерения тока 4-20 мА. Выбор того или иного режима работы производится при помощи замыкания перемычек на плате модуля.
Рисунок 9. Конфигурация модуля LTEU-ADS1115-ISO перемычками
В нашем случае установлены все четыре перемычки и все четыре канала работают в режиме измерения тока 4-20 мА.
С точки зрения схемотехники, входные цепи модуля LTEU-ADS1115-ISO выполнены следующим образом:
Рисунок 10. Схема аналоговых входов модуля LTEU-ADS1115-ISO
Здесь либо входные сигналы подаются на микросхему через ограничивающие резисторы 10 кОм (для режима измерения напряжения), либо дополнительно подключаются шунтирующие резисторы 100 Ом для режима измерения тока.
Схема работы измерения тока датчиков 4-20 мА представлена ниже.
Рисунок 11. Блок-схема работы токового интерфейса датчиков
Поскольку верхний предел измерения напряжения составляет 4,096 вольта, а мы производим измерение входного тока на нагрузочном сопротивлении 100 Ом, то предел измерения тока в этом режиме составляет 40,96 мА.
4,096 В / 100 Ом = 0,04096 А или 40,96 мА
Учитывая, что весь диапазон измерений разбит на 32768 значений, мы можем вычислить коэффициент на который нужно будет умножить «сырые» данные микросхемы ADS1115, чтобы получить значение измеренного тока датчика в миллиамперах.
40,96 мА / 32768 = 0,00125
Теперь подключаем тестовый источник тока, эмулирующий датчик с токовым выходом, и задаём на нём ток в диапазоне 4-20 мА, в данном случае — 12 мА.
Рисунок 12. Тестовый стенд с генератором тока и контроллером Lavritech
Подробнее распиновка разъёма: подключаем источник тока (эмулятор датчика) между изолированной землёй AGND и третьим каналом AIN3.
Рисунок 13. Распиновка подключения источника тока к контроллеру
И получаем в веб-интерфейсе контроллера сырые данные с третьего входа:
Рисунок 14. Получение сырых данных с входа ADC3
Что соответствует 11,96 мА измеренного тока. Расхождение в 0,04 мА в данном случае можно считать несущественным, поскольку использовался некалиброванный тестовый генератор.
9568 * 0,00125 = 11,96 мА
Таким образом, используя получаемые данные с модуля LTEU-ADS1115-ISO, и умножая их на коэффициент 0,00125 мы можем получать значения измеренного тока датчиков в миллиамперах.
Как использовать полученные данные
Программное обеспечение Lavritech помещает получаемые с аналоговых входов данные в так называемые «Метрики» («Metrics»), которые можно увидеть на соответствующей странице.
Рисунок 15. Пункт меню «Metrics»
Здесь указано имя метрики («ADS1115»), её статус («ON» — включено) и шаблоны для использования при программировании контроллера или вывода значений на экран.
Рисунок 16. Метрики микросхемы ADS1115
Общий принцип наименования метрик следующий: если устройство имеет несколько однотипных каналов, например как в нашем случае четыре входных аналоговых канала, то в конце метрики указывается её порядковый номер.
Для программирования в виде переменных:
ads1 ads2 ads3 ads4
Для вывода на экран в виде текста:
_ADS1_ _ADS2_ _ADS3_ _ADS4_
Каждая из этих метрик будет содержать текущее значение входного тока для каждого из четырёх каналов. В случае метрик-переменных (ads1, ads2 и т. д.) мы можем в Интерпретаторе умножить эти значения на коэффициент 0,00125 и получить реальные значения тока датчиков в миллиамперах.
Работа с MQTT
Программное обеспечение Lavritech автоматически создаёт соответствующие MQTT топики и помещает в них получаемые с датчиков данные, которые можно использовать для интеграции контроллера с вашей IoT системой.
Рисунок 17. Пример работы MQTT
В данном случае MQTT топики имеют следующий вид:
/название контроллера/ads1 /название контроллера/ads2 /название контроллера/ads3 /название контроллера/ads4
Связанные темы
Модуль LTEU-ADS1115-ISO
Разъём EUHP
Разъём WB
Настройка опций
Где купить
Купить оборудование Lavritech можно в официальном интернет-магазине.