Подключение 16-битного модуля АЦП ADS1115 к Arduino


В данной статье мы узнаем как использовать 16-битный модуль АЦП ADS1115 с платой Arduino. Плата коммутации ADS1115 — это 16-битный аналого-цифровой преобразователь (АЦП), который можно использовать с Arduino, ESP8266/32, STM32 или любыми другими микроконтроллерами.

Подключение 16-битного модуля АЦП ADS1115 к Arduino

Платы Arduino поставляются со встроенным 10-битным АЦП, который имеет несколько ограниченные возможности. AD1115 имеет 16-битное разрешение АЦП . Это означает, что наименьшее напряжение, которое может измерить Arduino, составляет 5 В / 1024 = 0,0049 В (или 4,9 мВ). Тогда как наименьшее напряжение, которое может измерить ADS1115, составляет 5 В / 65536 = 0,000076 В (76 мкВ). Таким образом, по сравнению с Arduino АЦП ADS1115 может измерять более широкий диапазон напряжений с более высокой разрешающей способностью.

Ранее на нашем сайте мы рассматривали подключение АЦП ADS1115 к другим микроконтроллерам/платам:

Если вам нужно еще большее разрешение чем то, которое может обеспечить модуль ADS1115, то рекомендуем присмотреться к его "старшему брату" - 24-битному модулю ADS1220.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. ЖК дисплей 16x2 с модулем I2C (купить на AliExpress).
  3. Модуль АЦП ADS1115 (купить на AliExpress).
  4. Потенциометр 10 кОм - 2 шт. (купить на AliExpress).
  5. Макетная плата.
  6. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Микросхема ADS1115

ADS1115 — это прецизионная, маломощная, 16-битная, совместимая с I2C ИС (интегральная схема) аналого-цифрового преобразователя.

Микросхема ADS1115

Особенности ADS1115

  • Разрешение 16 бит.
  • Четыре (4) канала с несимметричным входом или два (2) канала с дифференциальным входом.
  • Интерфейс протокола I2C.
  • Программируемый компаратор.
  • Широкий ассортимент поставок.
  • Низкое потребление тока.
  • Режим непрерывного преобразования.
  • Программируемая скорость передачи данных.
  • Программируемый компаратор.
  • Одноцикловое осаждение.
  • Внутренний источник опорного напряжения с малым дрейфом.
  • Внутренний генератор
  • Широкий диапазон рабочих температур.
  • Доступно в сверхмалом корпусе X2QFN.

Конфигурация выводов ADS1115

На рисунке ниже показана конфигурация выводов микросхемы ADS1115.

Конфигурация выводов ADS1115

  • Контакт 1 — это контакт ADDR, который выбирает адрес I2C для чипа.
  • Контакт 2 — это контакт оповещения/готовности, который служит в качестве сигнала готовности данных и оповещения.
  • Контакт 3 — это клемма GND.
  • Контакты 4, 5, 6 и 7 — это четыре (4) входных контакта АЦП. Мы можем использовать эти контакты как четыре (4) несимметричных входа или два (2) дифференциальных входа.
  • Контакт 8 — это положительный контакт источника питания, который принимает напряжение от 2,0 В до 5,5 В.
  • Контакты 9 и 10 являются клеммами для интерфейса I2C, SDA и SCL соответственно.

Функциональная блок-схема ADS1115

Ниже представлена ​​функциональная схема микросхемы ADS1115:

​​Функциональная схема микросхемы ADS1115

Сначала мультиплексор выбирает входной сигнал. Затем этот выбранный сигнал поступает в программируемый усилитель усиления (PGA), который можно запрограммировать на усиление меньших сигналов до того, как произойдет преобразование.

Затем 16-битный преобразователь Delta Sigma обрабатывает входной сигнал. Этот преобразователь использует собственный встроенный опорный источник напряжения и генератор для измерения входного сигнала. После завершения преобразования полученные данные отправляются на интерфейс I2C. Кроме того, компаратор генерирует сигнал для внешнего интерфейса, указывая, что преобразованный результат доступен для извлечения.

Типовая схема подключения соединения ADS1115

Основные соединения I2C для ADS1115 можно увидеть на следующем изображении.

Типовая схема подключения соединения ADS1115

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

Более подробную информацию см. в техническом описании ADS1115.

Модуль (коммутационная плата) ADS1115

ADS1115 доступен в корпусах X2QFN и VSSOP, которые не подходят для прототипирования. В результате для использования с ESP32 или любым другим микроконтроллером необходим модуль ADS1115 или отладочная плата.

Модуль ADS1115 (вид сверху и снизу) 

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

Распиновка модуля ADS1115

Модуль ADS1115 имеет общее количество контактов равное 10.

Номер контакта Название контакта Описание контакта
1 VDD Питание: от 2,0 В до 5,5 В
2 GND Земля (общий провод)
3 SCL Последовательный вход синхронизации: синхронизирует данные на SDA (используется для связи I2C)
4 SDA Последовательные данные: передача и прием данных (используется для связи I2C)
5 ADDR Выбор адреса I2C (ведомый)
6 ALERT/RDY Цифровой компараторный выход или готовность к преобразованию
7 AIN0 Дифференциальный канал 1: несимметричный вход канала 1 или отрицательный вход
8 AIN1 Дифференциальный канал 1: несимметричный вход канала 2 или отрицательный вход
9 AIN2 Дифференциальный канал 2: несимметричный вход канала 3 или положительный вход
10 AIN3 Дифференциальный канал 2: несимметричный вход канала 4 или отрицательный вход

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

Схема модуля ADS1115

Приведенная выше принципиальная схема представляет собой версию модуля ADS1115 от компании Adafruit.

Схема модуля ADS1115

Она следует типичному подключению для чипа ADS1115. Подтягивающие резисторы 10 кОм установлены на выводах I2C и Alert. Также между выводом VDD и GND установлен конденсатор емкостью 1 мкФ, который служит в качестве развязывающего конденсатора.

Взаимодействие модуля ADS1115 с Arduino

Схема подключения модуля АЦП ADS1115 к плате Arduino очень проста и приведена на следующем рисунке.

Схема подключения модуля АЦП ADS1115 к плате Arduino

Подключите выводы VDD и GND модуля к выводам 5V и GND платы Arduino. Аналогично подключите вывод I2C ADS1115 (SDA и SCL) к выводу I2C (SDA и SCL) Arduino. Вывод ADDR чипа подтянут резистором 10K к земле. Это означает, что по умолчанию он подключен к GND.

Адрес I2C ADS1115 по умолчанию — 0x48. Чтобы использовать адреса 0x49, 0x4A или 0x4B, мы можем подключить вывод ADDR к VDD, SDA или SCL соответственно.

Вывод ALERT/READY модуля ADS1115 также остается неподключенным. Чтобы использовать этот вывод, вам необходимо подключить его к цифровому выводу Arduino. Этот вывод имеет два назначения. Во-первых, вы можете использовать его для преобразования, управляемого прерываниями, где он служит сигналом READY данных. И, во-вторых, вы можете использовать его с программируемым выходным компаратором для определения порогов преобразования. В этом случае он служит сигналом ALERT.

Собранная на макетной плате конструкция проекта

A0, A1, A2 и A3 — это 4 выхода АЦП датчика. Это означает, что к этому модулю можно подключить 4 аналоговых датчика. В этом примере можно использовать потенциометр для проверки показаний модуля. Поэтому подключите потенциометр согласно схемы выше.

Установка библиотеки Arduino ADS1115

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

Библиотеки Ардуино для работы с модулем ADS1115

Из всех доступных библиотек мы можем попробовать использовать одну из стабильных библиотек для нашего приложения. Это библиотека от RobTillaart. Вы можете загрузить данную библиотеку по следующей ссылке.

Загрузить: Библиотека RobTillaart ADS1X15
Библиотека имеет функциональность для установки тактовой частоты I2C, установки программируемого усиления, рабочего режима и скорости передачи данных. Используя эту библиотеку, мы можем считывать данные АЦП датчика в одиночном режиме, дифференциальном режиме и непрерывном режиме.

Исходный код программы

Используя базовый пример кода из папки примеров ADS1115, мы можем проверить работу датчика.

Скопируйте следующий код и загрузите его на плату Arduino Nano.

После загрузки кода откройте Serial Monitor (окно монитора последовательной связи) - он покажет значение АЦП для всех 4 выходов вместе с выходным напряжением.

Тестирование работы базового примера в окне монитора последовательной связи (часть 1)

Максимальное наблюдаемое значение АЦП составляет 25550, а максимальное напряжение — 4,779 В.

Тестирование работы базового примера в окне монитора последовательной связи (часть 2)

Аналогично минимальное значение АЦП наиболее близко к 0 при минимальном напряжении 0 В.

Тестирование точности модуля ADS1115

Теперь давайте проверим точность модуля АЦП ADS1115. Для проверки точности мы можем использовать ЖК-дисплей, который может отображать значение АЦП и измеренные напряжения. Затем мы можем использовать мультиметр для измерения обнаруженного напряжения и сопоставления его с напряжением в последовательном мониторе.

Схема подключения ADS1115, Arduino и ЖК-дисплея

Подключите ЖК-дисплей к предыдущей цепи согласно следующей принципиальной схеме.

Схема подключения ADS1115, Arduino и ЖК-дисплея

Подключите контакты SDA и SCL модуля к контактам A4 и A5 Arduino. Обеспечьте подключение 5 В VCC и GND к ЖК-дисплею, используя контакты 5 В и GND Arduino.

Собранная на макетной плате схема проекта с ЖК дисплеем

Исходный код программы

Для компиляции кода требуется библиотека I2C LCD. Затем вы можете скопировать следующий код и загрузить его на плату Arduino Nano.

Результаты теста

После загрузки кода модуль готов к тестированию. Для этого нам понадобится мультиметр.

На ЖК-дисплее отобразится значение АЦП и измеренное напряжение.

Тестирование работы проекта с помощью ЖК-дисплея

ЖК-дисплей показывает значение 3,19 В, тогда как мультиметр показывает значение 3,2 В.

Тестирование работы проекта с помощью ЖК-дисплея и мультиметра (часть 1)

Максимальное выходное напряжение АЦП модуля составляет 4,742 В на ЖК-дисплее, а при проверке мультиметром оно равно 4,72 В.

Тестирование работы проекта с помощью ЖК-дисплея и мультиметра (часть 2)

Где-то около значения АЦП 427 напряжение, отображаемое на ЖК-дисплее, составляло 0,080 В , а мультиметр показывал 0,086 В.

Тестирование работы проекта с помощью ЖК-дисплея и мультиметра (часть 3)

Таким образом, можно сделать вывод, что 16-разрядный модуль АЦП ADS1115 имеет хорошую точность и может использоваться для многоцелевых приложений.

Согласно другим тестам, это устройство имеет заявленную типичную точность 0,01%, но его максимальная точность составляет 0,15%. Эта точность включает в себя все источники ошибок, такие как опорное напряжение, ошибка усиления, смещение и шум.

Видео, демонстрирующее работу проекта

Ссылка на видео на YouTube

(Проголосуй первым!)
Загрузка...
93 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *