Udforskning af ADS1115: En 16-bit ADC til præcisionsprojekter

  • ADS1115 tilbyder høj præcision med sin 16-bit opløsning.
  • Den har evnen til at måle både simple og differentielle signaler, hvilket gør den alsidig.
  • Programmerbar forstærkning (PGA) tillader justering af det målte spændingsområde for at forbedre nøjagtigheden.

ads1115

ADS1115 er en af ​​de mest brugte analog til digital konvertere (ADC) af producenter og elektronikentusiaster på grund af dens alsidighed og præcision. Denne 16-bit enhed kan nemt forbindes til platforme som Arduino eller Raspberry Pi takket være dens I2C-interface. ADS1115 har evnen til at måle op til 4 analoge eller 2 differentielle input, hvilket giver en højere opløsning end den, der er indbygget i mange mikrocontrollere.

Takket være dens programmerbare forstærkning og dens evne til at måle både positive og negative signaler, er den blevet et væsentligt værktøj til de projekter, der kræver større præcision, end hvad interne ADC'er kan tilbyde, såsom højpræcisionssensorer eller lavspændingsmålinger.

Hvad er ADS1115?

ADS1115 er en analog digital konverter (ADC), der omdanner analoge signaler til digitale data, der kan behandles af platforme som f.eks. Arduino o ESP8266. Denne enhed skiller sig ud for sin 16-bit opløsning, hvilket gør den meget mere præcis end de interne ADC'er i mikrocontrollere som f.eks. Arduino Uno, som kun tilbyder 10 bits.

En af de mest nyttige funktioner ved ADS1115 er dens evne til at udføre målinger af både simple (single-ended) og differentielle signaler. I single-ended mode kan du tilslutte op til fire uafhængige signaler, mens du i differential mode kan forbinde to par signaler, hvilket tillader måling af negative signaler.

Tekniske egenskaber for ADS1115

ads1115

ADS1115 inkorporerer flere avancerede funktioner, der gør den til et fremragende valg til projekter, hvor der er behov for analoge målinger i høj opløsning:

  • 16 bit opløsning: Det betyder, at den kan måle op til 65,536 forskellige signalniveauer. Dette gør det til en meget mere præcis mulighed end de 10-bit ADC'er, der er indbygget i de fleste mikrocontrollere.
  • I2C interface: Det giver enheden mulighed for nemt at kommunikere med mikrocontrollere. Derudover er det muligt at forbinde op til fire ADS1115 på en enkelt bus takket være dens ADDR-konfigurerbare adressepin.
  • Måletilstande: Enheden tilbyder både single-ended (4 uafhængige kanaler) og differentielle (2 kanaler) målinger. I differentialtilstand reduceres støj, og negative signaler kan måles.
  • Programmerbar PGA: El programmerbar forstærker forstærker (PGA) Justerer forstærkningen i intervaller fra ±6.144V til ±0.256V, hvilket giver mulighed for større nøjagtighed ved måling af lave spændinger. Det skal bemærkes, at selvom PGA'en tillader håndtering op til ±6.144V, er det ikke muligt at måle mere end enhedens forsyningsspænding (5V i de fleste tilfælde).
  • Spændingskomparator: ADS1115 inkluderer en programmerbar komparator, der kan generere en advarsel via ALERT-stiften, når et signal overstiger en softwaredefineret tærskelværdi.

Driftstilstande

ADS1115 har to hovedfunktioner, der kan tilpasses efter projektets behov:

  • Kontinuerlig konvertering: I denne tilstand fortsætter enheden med konstant at tage data, ideel til kontinuerlige overvågningsapplikationer.
  • Enkeltbillede-tilstand: Enheden foretager en aflæsning og går derefter i lavenergitilstand, indtil der bliver bedt om en ny aflæsning. Dette er nyttigt, når du vil minimere strømforbruget på batteridrevne projekter.

Programmerbar forstærkningstilstand (PGA).

ADS1115 har en programmerbar forstærker forstærker (PGA), som giver dig mulighed for at justere dens måleområde. Dette er især nyttigt, når du arbejder med lavspændingssignaler, da du kan forstærke signalet for at få fuld fordel af ADC'ens opløsning. Understøttede områder er fra ±6.144V til ±0.256V, hvilket giver fleksibilitet i en lang række applikationer. Imidlertid, Det er vigtigt ikke at overskride enhedens strømforsyningsspænding, hvilket normalt er 5V, da du kan beskadige konverteren.

ADS1115 applikationer

  • Sensor måling: Når du skal læse præcise data fra analoge sensorer, såsom temperatur-, lys- eller pH-sensorer, bliver ADS1115 et nøgleværktøj.
  • Forskningsprojekter: I nogle projekter, hvor subtile ændringer ved små spændinger skal måles, giver ADS16's 1115-bit opløsning den nødvendige præcision.
  • Batteriovervågning: Takket være dens evne til at måle differentialsignaler og dens interne komparator, kan ADS1115 også bruges til at skabe batteriovervågningssystemer, hvor en advarsel kan genereres, når spændingen falder til under et kritisk niveau.

Forbindelse med Arduino

At forbinde ADS1115 til et Arduino-kort er meget enkelt takket være dets I2C-interface. Du behøver kun at tilslutte SDA- og SCL-benene på ADC'en til de tilsvarende på Arduino'en, udover at forsyne enheden med 5V.

Nedenfor viser vi dig det grundlæggende tilslutningsdiagram:

VCC (ADS1115) -> 5V (Arduino)
GND (ADS1115) -> GND (Arduino)
SCL (ADS1115) -> SCL (Arduino)
SDA (ADS1115) -> SDA (Arduino)

For at vælge I2C-adressen for ADC'en er det nødvendigt at forbinde ADDR-pinden til GND, VDD, SDA eller SCL, og opnå adresserne 0x48, 0x49, 0x4A eller 0x4B, henholdsvis. Afhængigt af hvor mange ADS1115'ere du vil bruge i dit projekt, bliver denne mulighed meget nyttig.

Brug af Adafruit-biblioteket til ADS1115

For at forenkle brugen af ​​ADS1115 med Arduino kan Adafruit-biblioteket installeres. Dette bibliotek giver meget klare eksempler for at hjælpe dig i gang. Nedenfor er et grundlæggende eksempel på læsning af de fire kanaler i single-ended mode:

#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);
}

Denne kode læser de fire analoge kanaler og konverterer dem til spænding ved hjælp af den tilsvarende multiplikator i henhold til den forstærkning, vi sætter i ADC'en.

differentiel tilstand

ADS1115's differentielle tilstand er meget nyttig til at måle negative spændinger eller minimere støj. Dette er et grundlæggende eksempel på at lave en differentiel læsning mellem ben A0 og 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);
}

Med denne alternative læsetilstand kan du måle spændingsforskellen mellem to indgange, ideel til applikationer, hvor støj kan være et problem.

Endelige overvejelser

ADS1115 leverer ikke kun enestående nøjagtighed for en ADC af denne type, men er også ekstremt nem at bruge. Dens I2C-grænseflade og evne til at måle både enkelte og differentielle signaler gør den til en værdifuld komponent til ethvert elektronikprojekt, uanset om du måler sensorer med lav spænding eller har brug for mere præcision end en typisk mikrocontroller giver. Udover, dens indbyggede komparator tilføjer et ekstra lag af nytte ved at tillade oprettelse af alarmer, når visse tærskler overskrides, hvilket gør den perfekt til overvågning af applikationer. Hvis du leder efter præcision og funktionalitet i dine analoge målinger, er ADS1115 en stærkt anbefalet mulighed.