Общие сведения
Датчик ADS1115 — 16-ти разрядный аналогово-цифровой преобразователь с 4 выходами для преобразования аналогового сигнала в цифровой.
Характеристики
- Габариты: 17 мм × 27 мм × 1,2 мм.
- Напряжение питания: 2,0 В–5,5 В. (!)
- Низкое потребление тока: 150 мкА.
- 16-ти разрядный АЦП.
- 4 выхода для измерения аналогового сигнала.
- Интерфейс I2C.
- Программируемый компаратор.
- Входной мультиплексор (MUX), который позволяет выполнять два дифференциальных или четыре односторонних входных измерения.
- Диапазон рабочих температур: от -40 ° C до + 125 ° C.
Подключение
Для удобства подключения к Arduino воспользуйтесь Trema Shield, Trema Power Shield, Motor Shield или Trema Set Shield.
Подключение одного датчика к Arduino
Напряжение на входах A0...A3 не должно превышать напряжение на выходе VDD больше, чем на 0,3 В, иначе можно сжечь плату.
Выводы SDA и SCL модуля подключаются к аппаратной шине I2C Arduino.
Выводы GND, VDD являются выводами питания (вывод VDD - питание модуля +3,3 в или +5 В)
Выводы A0...A3 являются аналоговыми выводами для измерения аналогового сигнала, поступающего с внешних устройств.
Вывод ADDR используется для выбора адреса шины I2C.
Вывод ALRT предназначен для подключения компаратора или сигнализирует о готовности преобразования.
Подключение нескольких датчиков к Arduino с разным адресами I2C
Существует возможность подключения до 4 датчиков одновременно. Для этого вывод ADDR подключается к разным выводам в зависимости от адреса:
- Адрес 0х48 - вывод ADDR подключается к линии GND.
- Адрес 0х49 - вывод ADDR подключается к линии 5V.
- Адрес 0х4A - вывод ADDR подключается к линии SDA.
- Адрес 0х4B - вывод ADDR подключается к линии SCL.
Питание
Напряжение питания модуля от 2,0 до 5,5 В (по стандарту используется 3,3 В или 5 В для платArduino.) постоянного тока, подаётся на выводы «VDD» модуля. Диапазон питания может быть изменен с помощью предустановленных функция. Не превышайте диапазон напряжения на аналоговых выводах соответствующий заданной функции, больше чем на 0,3 В.
Подробнее о датчике
Датчик ADS1115 разработанный на базе одноименного чипа, маломощного, 16-разрядного, совместимый с I2C шиной. Оснащен программируемым усилителем и цифровым компаратором. Выполняет преобразования со скоростью передачи данных от 8 до 860 выборок в секунду (SPS). Имеет 4 входа для преобразования аналогового сигнала. Диапазоны входных сигналов от ± 256 мВ до ± 6.144 В. Питание модуля толерантно к 3,3 В или 5 В.
Для работы с датчиком рекомендуем вам воспользоваться библиотекой Adafruit_ADS1X15.
Примеры
Считывание показаний датчика, перевод значений в вольты и вывод в монитор порта.
Для примера преобразуем напряжения 3.3 В на выходе Arduino из аналогового сигнала в цифровой. И выведем полученные результаты в монитор порта. Для этого подключим контакты модуля ADS1115 к плате Arduino в соответствии с таблицей указанной ниже.
Таблица подключения выводов датчика:
- SDA - подключается к линии данных SDA шины I2C или к выводу A4 Arduino UNO.
- SCL - подключается к линии тактирования SCL шины I2C или к выводу A5 Arduino UNO.
- GND - подключается к выводу GND Arduino UNO.
- VDD - подключается к выводу 5V Arduino UNO.
- ADDR - линия адреса шины I2C. Подключается к выводу GND Arduino UNO, чтобы задать адрес 0x48.
- ALRT - вывод компаратора или готовность преобразования. Не используется.
- A0 - аналоговый вывод 0. Подключается к выводу 3.3V Arduino UNO.
- A1 - аналоговый вывод 1. Не используется.
- A2 - аналоговый вывод 2. Не используется.
- A3 - аналоговый вывод 1. Не используется.
Загрузим скетч, указанный ниже.
#include <Wire.h> // Подключаем стандартную библиотека, позволяющая работать с I2C шиной. #include <Adafruit_ADS1015.h> // Подключаем библиотеку для работы с датчиком ADS1115. Adafruit_ADS1115 ads(0x48); // Задаем адрес устройства по которому будем работать на I2C шине. // float Voltage = 0.0; // Определяем переменную для вывода напряжения. int16_t adc0; // Определяем переменную 16-бит для считывания 16-ти разрядов АЦП. // void setup(void) // { // Serial.begin(9600); // Подключаем последовательный порт на скорости 9600 Бод. ads.begin(); // Подключаем АЦП. } // // void loop(void) // { // adc0 = ads.readADC_SingleEnded(0); // Считываем полученные значения с АЦП с нулевого канала и записываем в переменную. Voltage = (adc0 * 0.1875)/1000; // Пересчитываем в вольты. // Serial.print("AIN0: "); // Выводим надпись значения АЦП. Serial.print(adc0); // Выводим значения АЦП. Serial.print("\tVoltage: "); // Выводим надпись значение напряжения, делая табуляцию. Serial.println(Voltage, 7); // Выводим значение напряжения. Serial.println(); // Делаем пробел. // delay(1000); // Задержка одна секунда. } //
Комплектация
- 1х Датчик АЦП ADS1115;
- 1х Соединитель типа "ПАПА-ПАПА";
Ссылки
- Библиотека Adafruit_ADS1X15;
- DataSheet;