ADS1115 е един от най-използваните аналогово-цифрови преобразуватели (ADC) от производителите и ентусиастите на електрониката поради своята гъвкавост и прецизност. Това 16-битово устройство лесно се свързва с платформи като Arduino или Raspberry Pi благодарение на своя I2C интерфейс. ADS1115 има способността да измерва до 4 аналогови или 2 диференциални входа, предлагайки по-висока резолюция от тази, вградена в много микроконтролери.
Благодарение на програмируемото си усилване и способността му да измерва както положителни, така и отрицателни сигнали, той се превърна в основен инструмент за онези проекти, които изискват по-голяма прецизност от това, което могат да предложат вътрешните ADC, като високопрецизни сензори или измервания на ниско напрежение.
Какво е ADS1115?
ADS1115 е аналогово-цифров преобразувател (ADC), който преобразува аналогови сигнали в цифрови данни, обработваеми от платформи като Arduino o ESP8266. Това устройство се отличава със своята 16-битова резолюция, което го прави много по-прецизно от вътрешните ADC на микроконтролери като Arduino Uno, който предлага само 10 бита.
Една от най-полезните функции на ADS1115 е способността му да извършва измервания както на прости (еднопосочени), така и на диференциални сигнали. В еднопосочен режим можете да свържете до четири независими сигнала, докато в диференциален режим можете да свържете две двойки сигнали, което позволява измерване на отрицателни сигнали.
Технически характеристики на ADS1115
ADS1115 включва няколко разширени функции, които го правят отличен избор за проекти, където са необходими аналогови измервания с висока разделителна способност:
- 16 битова резолюция: Това означава, че може да измерва до 65,536 10 различни нива на сигнала. Това го прави много по-прецизна опция от XNUMX-битовите ADC, вградени в повечето микроконтролери.
- I2C интерфейс: Това позволява на устройството лесно да комуникира с микроконтролери. В допълнение, възможно е да се свържат до четири ADS1115 към една шина, благодарение на неговия ADDR конфигурируем адресен щифт.
- Режими на измерване: Устройството предлага както еднопосочни (4 независими канала), така и диференциални (2 канала) измервания. В диференциален режим шумът се намалява и могат да се измерват отрицателни сигнали.
- Програмируем PGA: El усилвател с програмируемо усилване (PGA) Регулира усилването в диапазони от ±6.144V до ±0.256V, което позволява по-голяма точност при измерване на ниски напрежения. Трябва да се отбележи, че въпреки че PGA позволява работа до ±6.144V, не е възможно да се измери повече от захранващото напрежение на устройството (5V в повечето случаи).
- Сравнител на напрежението: ADS1115 включва програмируем компаратор, който може да генерира предупреждение чрез щифта ALERT, когато сигнал надвиши софтуерно дефинирана прагова стойност.
Режими на работа
ADS1115 има два основни режима на работа, които могат да бъдат адаптирани според нуждите на проекта:
- Непрекъснато преобразуване: В този режим устройството продължава непрекъснато да събира данни, което е идеално за приложения за непрекъснат мониторинг.
- Режим на единична снимка: Устройството отчита и след това преминава в режим на ниска мощност, докато бъде подканено за друго отчитане. Това е полезно, когато искате да минимизирате консумацията на енергия при проекти, захранвани с батерии.
Режим на програмируемо усилване (PGA).
ADS1115 има a усилвател с програмируемо усилване (PGA), което ви позволява да регулирате обхвата му на измерване. Това е особено полезно при работа със сигнали с ниско напрежение, тъй като можете да усилите сигнала, за да се възползвате напълно от разделителната способност на ADC. Поддържаните диапазони са от ±6.144V до ±0.256V, предлагайки гъвкавост в голямо разнообразие от приложения. обаче Важно е да не превишавате захранващото напрежение на устройството, което обикновено е 5V, тъй като можете да повредите преобразувателя.
ADS1115 Приложения
- Сензорно измерване: Когато трябва да прочетете прецизни данни от аналогови сензори, като сензори за температура, светлина или pH, ADS1115 се превръща в ключов инструмент.
- Изследователски проекти: В някои проекти, където трябва да се измерват фини промени при малки напрежения, 16-битовата разделителна способност на ADS1115 осигурява необходимата прецизност.
- Мониторинг на батерията: Благодарение на способността си да измерва диференциални сигнали и своя вътрешен компаратор, ADS1115 може да се използва и за създаване на системи за наблюдение на батерията, където може да се генерира предупреждение, когато напрежението падне под критично ниво.
Връзка с Arduino
Свързването на ADS1115 към платка Arduino е много лесно благодарение на неговия I2C интерфейс. Трябва само да свържете SDA и SCL щифтовете на ADC към съответните на Arduino, в допълнение към захранването на устройството с 5V.
По-долу ви показваме основната диаграма на свързване:
VCC (ADS1115) -> 5V (Arduino)
GND (ADS1115) -> GND (Arduino)
SCL (ADS1115) -> SCL (Arduino)
SDA (ADS1115) -> SDA (Arduino)
За да изберете I2C адреса на ADC, е необходимо да свържете извода 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);
}
Този код чете четирите аналогови канала и ги преобразува в напрежение, използвайки съответния множител според усилването, което сме поставили в ADC.
Диференциален режим
Диференциалният режим на 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 не само осигурява изключителна точност за ADC от този тип, но е и изключително лесен за използване. Неговият I2C интерфейс и способността да измерва както единични, така и диференциални сигнали го правят ценен компонент за всеки електронен проект, независимо дали измервате сензори с ниски напрежения или се нуждаете от повече точност, отколкото осигурява типичният микроконтролер. освен това неговият вграден компаратор добавя допълнителен слой полезност, като позволява създаването на аларми при надвишаване на определени прагове, което го прави идеален за приложения за наблюдение. Ако търсите прецизност и функционалност във вашите аналогови измервания, ADS1115 е силно препоръчителна опция.