ADS1115 является одним из наиболее часто используемых аналого-цифровых преобразователей (АЦП) производителями и энтузиастами электроники благодаря своей универсальности и точности. Это 16-битное устройство легко подключается к таким платформам, как Arduino или Raspberry Pi, благодаря интерфейсу I2C. ADS1115 способен измерять до 4 аналоговых или 2 дифференциальных входов, обеспечивая более высокое разрешение, чем встроенное во многие микроконтроллеры.
Благодаря программируемому усилению и способности измерять как положительные, так и отрицательные сигналы, он стал важным инструментом для тех проектов, которые требуют большей точности, чем то, что могут предложить внутренние АЦП, например, высокоточные датчики или измерения низкого напряжения.
Что такое ADS1115?
ADS1115 — это аналого-цифровой преобразователь (АЦП), который преобразует аналоговые сигналы в цифровые данные, обрабатываемые такими платформами, как Arduino o ESP8266. Это устройство выделяется своим 16-битным разрешением, что делает его намного более точным, чем внутренние АЦП микроконтроллеров, таких как Arduino Uno, который предлагает только 10 бит.
Одной из наиболее полезных функций ADS1115 является его способность выполнять измерения как простых (несимметричных), так и дифференциальных сигналов. В несимметричном режиме можно подключить до четырех независимых сигналов, а в дифференциальном режиме — две пары сигналов, что позволяет измерять отрицательные сигналы.
Технические характеристики ADS1115
ADS1115 включает в себя несколько расширенных функций, которые делают его отличным выбором для проектов, где необходимы аналоговые измерения с высоким разрешением:
- Разрешение 16 бит: Это означает, что он может измерять до 65,536 10 различных уровней сигнала. Это делает его гораздо более точным, чем XNUMX-битные АЦП, встроенные в большинство микроконтроллеров.
- Интерфейс I2C: Это позволяет устройству легко взаимодействовать с микроконтроллерами. Кроме того, можно подключить до четырех ADS1115 к одной шине благодаря настраиваемому адресу ADDR.
- Режимы измерения: Прибор обеспечивает как несимметричные (4 независимых канала), так и дифференциальные (2 канала) измерения. В дифференциальном режиме шум снижается и можно измерять отрицательные сигналы.
- Программируемый PGA: El усилитель с программируемым усилением (PGA) Регулирует усиление в диапазоне от ±6.144 В до ±0.256 В, обеспечивая большую точность при измерении низких напряжений. Следует отметить, что, хотя PGA позволяет обрабатывать до ±6.144 В, невозможно измерить напряжение, превышающее напряжение питания устройства (в большинстве случаев 5 В).
- Компаратор напряжения: ADS1115 включает в себя программируемый компаратор, который может генерировать предупреждение через вывод ALERT, когда сигнал превышает программно определенное пороговое значение.
Режимы работы
ADS1115 имеет два основных режима работы, которые можно адаптировать в соответствии с потребностями проекта:
- Непрерывное преобразование: В этом режиме устройство продолжает постоянно принимать данные, что идеально подходит для приложений непрерывного мониторинга.
- Режим одиночного выстрела: Устройство снимает показания, а затем переходит в режим пониженного энергопотребления до тех пор, пока не будет предложено выполнить еще одно показание. Это полезно, если вы хотите минимизировать энергопотребление в проектах с батарейным питанием.
Режим программируемого усиления (PGA)
ADS1115 имеет усилитель с программируемым усилением (PGA), что позволяет регулировать диапазон его измерения. Это особенно полезно при работе с сигналами низкого напряжения, поскольку вы можете усилить сигнал, чтобы в полной мере воспользоваться разрешением АЦП. Поддерживаемые диапазоны: от ±6.144 В до ±0.256 В, что обеспечивает гибкость в широком спектре приложений. Однако, Важно не превышать напряжение питания устройства., которое обычно составляет 5 В, поскольку вы можете повредить преобразователь.
Приложения ADS1115
- Измерение датчика: Когда вам необходимо считывать точные данные с аналоговых датчиков, таких как датчики температуры, освещенности или pH, ADS1115 становится ключевым инструментом.
- Исследовательские проекты: В некоторых проектах, где необходимо измерить незначительные изменения при небольших напряжениях, 16-битное разрешение ADS1115 обеспечивает необходимую точность.
- Мониторинг батареи: Благодаря способности измерять дифференциальные сигналы и внутреннему компаратору ADS1115 также можно использовать для создания систем мониторинга аккумуляторов, в которых может генерироваться предупреждение, когда напряжение падает ниже критического уровня.
Связь с Arduino
Подключить ADS1115 к плате Arduino очень просто благодаря интерфейсу I2C. Вам нужно только подключить выводы SDA и SCL АЦП к соответствующим на Arduino, помимо питания устройства 5В.
Ниже мы покажем вам базовую схему подключения:
VCC (ADS1115) -> 5V (Arduino)
GND (ADS1115) -> GND (Arduino)
SCL (ADS1115) -> SCL (Arduino)
SDA (ADS1115) -> SDA (Arduino)
Для выбора I2C-адреса АЦП необходимо соединить вывод ADDR с GND, VDD, SDA или SCL, получив адреса 0x48, 0x49, 0x4A или 0x4B соответственно. В зависимости от того, сколько ADS1115 вы хотите использовать в своем проекте, эта опция становится очень полезной.
Использование библиотеки Adafruit для ADS1115.
Чтобы упростить использование ADS1115 с Arduino, можно установить библиотеку Adafruit. Эта библиотека предоставляет очень четкие примеры, которые помогут вам начать работу. Ниже приведен базовый пример чтения четырех каналов в несимметричном режиме:
#include <Wire.h>
#include <Adafruit_ADS1015.h>
Adafruit_ADS1115 ads;
void setup(void) {
Serial.begin(9600);
ads.begin();
}
void loop(void) {
int16_t adc0, adc1, adc2, adc3;
adc0 = ads.readADC_SingleEnded(0);
adc1 = ads.readADC_SingleEnded(1);
adc2 = ads.readADC_SingleEnded(2);
adc3 = ads.readADC_SingleEnded(3);
Serial.print("AIN0: "); Serial.println(adc0 * 0.1875);
Serial.print("AIN1: "); Serial.println(adc1 * 0.1875);
Serial.print("AIN2: "); Serial.println(adc2 * 0.1875);
Serial.print("AIN3: "); Serial.println(adc3 * 0.1875);
delay(1000);
}
Этот код считывает четыре аналоговых канала и преобразует их в напряжение, используя соответствующий множитель в соответствии с коэффициентом усиления, который мы вставили в АЦП.
Дифференциальный режим
Дифференциальный режим ADS1115 очень полезен для измерения отрицательных напряжений или минимизации шума. Это базовый пример дифференциального считывания между контактами A0 и A1:
#include <Wire.h>
#include <Adafruit_ADS1015.h>
Adafruit_ADS1115 ads;
void setup(void) {
Serial.begin(9600);
ads.begin();
}
void loop(void) {
int16_t results;
results = ads.readADC_Differential_0_1();
Serial.print("Diferencial: "); Serial.println(results * 0.1875);
delay(1000);
}
В этом альтернативном режиме считывания вы можете измерить разницу напряжений между двумя входами, что идеально подходит для приложений, где шум может быть проблемой.
Заключительные мысли
ADS1115 не только обеспечивает выдающуюся точность для АЦП такого типа, но и чрезвычайно прост в использовании. Его интерфейс I2C и способность измерять как одиночные, так и дифференциальные сигналы делают его ценным компонентом для любого электронного проекта, независимо от того, измеряете ли вы датчики с низким напряжением или вам нужна более высокая точность, чем обеспечивает типичный микроконтроллер. Кроме, его встроенный компаратор добавляет дополнительный уровень полезности, позволяя создавать сигналы тревоги при превышении определенных пороговых значений, что делает его идеальным для приложений мониторинга. Если вам нужна точность и функциональность в аналоговых измерениях, настоятельно рекомендуется использовать ADS1115.