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


В этой статье мы рассмотрим процесс подключения 16-битного модуля АЦП ADS1115 к плате ESP32. Плата коммутации ADS1115 представляет собой аналого-цифровой преобразователь (АЦП) высокого разрешения , который можно использовать с различными микроконтроллерами и платами на их основе, включая Arduino, STM32 и ESP8266/32. В частности, ESP32 — это мощный микроконтроллер со встроенными возможностями Wi-Fi и Bluetooth, что делает его идеальным выбором для приложений Интернета вещей (IoT).

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

ESP32 имеет встроенный 12-битный АЦП, который обеспечивает более высокое разрешение, чем 10-битный АЦП, используемый на платах Arduino. Однако ADS1115 может похвастаться еще более высоким разрешением в 16 бит, предлагая превосходную производительность с точки зрения измерения напряжения. Наименьшее напряжение, которое может измерить ESP32, составляет 3,3 В / 4096 = 0,0008 В (или 0,8 мВ), в то время как ADS1115 может измерять всего 5 В / 65536 = 0,000076 В (76 мкВ). Это делает ADS1115 отличным выбором, когда требуются точные измерения напряжения. Если вам нужна большая точность до 0,3 мкВ, вы можете использовать 24-битный модуль АЦП ADS1220.

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

Ранее на нашем сайте мы рассматривали подключение модуля АЦП ADS1115 к плате Raspberry Pi. Также можете прочитать статью о том, что такое АЦП и как он работает.

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

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

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

Контакты и точность АЦП ESP32

ESP32 — это мощный микроконтроллер с интегрированными возможностями Wi-Fi и Bluetooth. Он имеет несколько контактов аналого-цифровых преобразователей (АЦП), которые можно использовать для измерения аналоговых сигналов и преобразования их в цифровые значения. ESP32 имеет два АЦП - это АЦП1 (ADC1) и АЦП2 (ADC2) с общим количеством 18 доступных каналов АЦП.

Контакты АЦП в модуле ESP32

  • ADC1 имеет 8 каналов (GPIO32 - GPIO39)
  • ADC2 имеет 10 каналов (GPIO0, GPIO2, GPIO4, GPIO12 - GPIO15 и GPIO25 - GPIO27)

Точность: АЦП ESP32 имеют разрешение 12 бит, что означает, что они могут представлять аналоговый сигнал с использованием 4096 дискретных уровней. Однако из-за внутреннего шума и нелинейных характеристик эффективное разрешение обычно составляет около 10-11 бит.

График точности АЦП ESP32

Чтобы повысить точность показаний АЦП на ESP32, вы можете:

  1. Используйте встроенный датчик Холла для калибровки.
  2. Реализуйте избыточную выборку и усреднение для снижения шума.
  3. Для лучшей стабильности используйте внешний источник опорного напряжения.
  4. Если требуется более высокая точность, рассмотрите возможность использования внешнего модуля АЦП, например ADS1115.

Помните, что каналы ADC2 используются совместно с функциями Wi-Fi, поэтому, если вы используете Wi-Fi, лучше использовать каналы ADC1, чтобы избежать потенциальных конфликтов или помех в показаниях АЦП.

Микросхема 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 с ESP32

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

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

Сначала подключите выводы VDD и GND модуля к выводам 3.3V и GND ESP32 соответственно. Затем подключите выводы ADS1115 I2C (SDA и SCL) к выводам I2C (SDA=GPIO21 и SCL=GPIO22) ESP32. Вывод ADDR чипа должен быть подключен либо к VDD, SDA, либо к SCL, в зависимости от того, какой из адресов 0x49, 0x4A или 0x4B вы хотите использовать. Обратите внимание, что вывод ADDR по умолчанию подтянут к земле резистором 10K.

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

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

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

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

Библиотеки для модуля ADS1115 от разных разработчиков

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

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

Базовый исходный код программы

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

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

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

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

Поскольку мы использовали только два потенциометра для AIN0 и AIN1, мы получим изменение этих значений при вращении потенциометра.

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

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

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

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

Подключите выводы SDA и SCL ЖК-дисплея к GPIO21 и GPIO22 ESP32. Обеспечьте подключение 5 В VCC и GND к ЖК-дисплею с помощью выводов Vin и GND ESP32.

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

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

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

Результаты тестирования

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

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

Тестирование работы проекта на экране ЖК дисплея

Мы используем два потенциометра для ввода напряжения АЦП и отображения их обоих на ЖК-дисплее. Одно из измеренных напряжений, показанных мультиметром, составляет 3,28 В, а на ЖК-дисплее отображается 3,31 В.

Тестирование работы проекта (часть 1)

Максимальное выходное напряжение АЦП модуля составляет 3,3 В, а минимальное — 0 В.

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

Тестирование работы проекта (часть 2)

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

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

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

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

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

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

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