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


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

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

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

Хотя плата Raspberry Pi предоставляет множество цифровых контактов ввода/вывода, у нее нет встроенного АЦП, что означает что она не может напрямую считывать аналоговые сигналы. Это может быть ограничением для проектов, требующих сопряжения с датчиками или устройствами, которые выводят аналоговые сигналы. Благодаря включению модуля ADS1115, который может похвастаться 16-битным разрешением АЦП, способность Raspberry Pi обрабатывать аналоговые сигналы может быть значительно расширена. С ADS1115 наименьшее напряжение, которое можно измерить, составляет 5 В / 65536 = 0,000076 В (76 мкВ), что обеспечивает повышенную точность для ваших проектов.

Также на нашем сайте вы можете посмотреть следующие проекты с использованием платы Raspberry Pi и АЦП  ADS1115:

В этом руководстве мы рассмотрим технические характеристики и преимущества модуля ADS1115, проиллюстрируем необходимые компоненты и соединения для его взаимодействия с Raspberry Pi, а также предоставим пример кода Python, который поможет вам приступить к реализации этого мощного модуля АЦП.

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

  1. Плата Raspberry Pi 4 Model B (или другая) (купить на AliExpress).
  2. Модуль АЦП ADS1115 (купить на AliExpress).
  3. Потенциометр 10 кОм (купить на AliExpress).
  4. Макетная плата.
  5. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 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, Programmable Gain amplifier). PGA можно запрограммировать на усиление малых сигналов перед преобразованием.

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

Соединения ADS1115

Принципиальная схема соединений I2C для ADS1115 показаны на рисунке ниже.

Принципиальная схема соединений I2C для ADS1115

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

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

ADS1115 поставляется с пакетом X2QFN и VSSOP, который не может быть использован для прототипирования. Поэтому нам нужен модуль ADS1115 (Breakout Board), чтобы использовать его с Raspberry Pi или любым другим микроконтроллером.

Модуль 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 с Raspberry Pi

Сопряжение модуля ADS1115 с Raspberry Pi 4 не вызывает затруднений, поскольку оба устройства используют протокол связи I2C. В этом руководстве мы проведем вас через шаги по подключению и настройке ADS1115 с Raspberry Pi 4.

Схема подключения модуля ADS1115 к плате Raspberry Pi

Сделайте следующие подключения:

  1. Подключите контакт VCC ADS1115 к контакту 3,3 В Raspberry Pi.
  2. Подключите контакт GND ADS1115 к любому контакту GND на Raspberry Pi.
  3. Подключите контакт SDA ADS1115 к контакту SDA Raspberry Pi.
  4. Подключите контакт SCL ADS1115 к контакту SCL Raspberry Pi.

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

Вы можете подключить контакты A0, A1, A2 и A3 модуля ADS1115 к датчикам или устройствам, аналоговые значения которых вы хотите считать. В этом примере мы будем использовать потенциометр 10K, который можно подключить к контакту A0 ADS1115.

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

Прежде чем перейти к программированию на Python, нам необходимо установить библиотеку для работы с ADS1115 на Raspberry Pi.

Откройте окно терминала на Raspberry Pi. Выполните следующую команду, чтобы установить библиотеку Python ADS1x15.

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

Ниже приведен код Python для сопряжения 16-битного модуля АЦП ADS1115 с платой Raspberry Pi. Код будет считывать аналоговое значение с контакта A0, подаваемое с помощью потенциометра.

Скопируйте следующий код и вставьте его в окно редактора Thonny IDE.

Запустите код, и вы увидите следующие показания в Thonny Shell.

Тестирование работы проекта с помощью Thonny Shell

Если потенциометр повернут в крайнее положение, Thonny Shell покажет 3,3 В - это полное напряжение.

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

Если потенциометр повернут в нулевое положение, Thonny Shell покажет напряжение 0 В.

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

Код Python для чтения нескольких аналоговых значений

ADS1115 имеет 4-канальный вход. Таким образом, он может считывать 4 различных аналоговых значения одновременно.

Следующий код Python считывает несколько аналоговых значений с 4 различных контактов АЦП A0, A1, A2, A3.

Запустите код Python, и оболочка Thonny Shell покажет показания 4 аналоговых входов.

Тестирование работы проекта при считывании показаний 4 аналоговых входов

Заключение

В этой статье мы рассмотрели как подключить модуль ADS1115 к плате Raspberry Pi, показывая его возможности и преимущества. Вооружившись этими знаниями и предоставленным примером кода Python, пользователи будут хорошо подготовлены к значительному улучшению возможностей Raspberry Pi в обработке аналоговых сигналов, прокладывая путь для более сложных и ориентированных на точность проектов.

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

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

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