Sadržaj:

Arduino i 16-bitni ADC TI ADS1110: 6 koraka
Arduino i 16-bitni ADC TI ADS1110: 6 koraka

Video: Arduino i 16-bitni ADC TI ADS1110: 6 koraka

Video: Arduino i 16-bitni ADC TI ADS1110: 6 koraka
Video: Analog-to-Digital Converters (ADC) - Basics 2024, Prosinac
Anonim
Arduino i 16-bitni ADC TI ADS1110
Arduino i 16-bitni ADC TI ADS1110

U ovom vodiču ispitujemo korištenje Arduina za rad s Texas Instruments ADS1110-nevjerojatno malim, ali korisnim 16-bitnim analogno-digitalnim pretvaračem.

Može raditi između 2,7 i 5,5 V pa je također u redu za Arduino Due i druge razvojne ploče niskog napona. Prije nego nastavite, preuzmite podatkovnu tablicu (pdf) jer će biti korisna i na nju će se pozivati tijekom ovog vodiča. ADS1110 daje vam mogućnost preciznijeg ADC-a od onog koji nude 10-bitni ADC-i Arduina-i relativno je jednostavan za korištenje. Međutim, dostupan je samo kao goli dio u SOT23-6.

Korak 1:

Slika
Slika

Dobra vijest je da ADS1110 možete naručiti montiran na vrlo prikladnu probojnu ploču. ADS1110 koristi I2C sabirnicu za komunikaciju. A budući da postoji samo šest pinova koje ne možete postaviti adresu sabirnice - umjesto toga možete birati između šest varijanti ADS1110 - svaka sa svojom adresom (pogledajte drugu stranicu podatkovnog lista).

Kao što možete vidjeti na gornjoj fotografiji, naš je označen sa "EDO" što odgovara adresi autobusa 1001000 ili 0x48h. A s primjernim krugovima koristili smo otpornike od 10 kΩ na sabirnici I2C.

ADS1110 možete koristiti kao jednostruki ili diferencijalni ADC-ali prvo moramo ispitati konfiguracijski registar koji se koristi za kontrolu različitih atributa i registar podataka.

Korak 2: Registar konfiguracije

Okrenite se na jedanaestu stranicu podatkovnog lista. Konfiguracijski registar je veličine jednog bajta, a kako se ADS1110 resetira u ciklusu napajanja-morate resetirati registar ako se vaše potrebe razlikuju od zadanih. U podatkovnom listu je to uredno napisano … bitovi 0 i 1 određuju postavke pojačanja za PGA (programabilno pojačalo za pojačanje).

Ako samo mjerite napone ili eksperimentirate, ostavite ih kao nulu za pojačanje od 1 V/V. Zatim se brzina prijenosa podataka za ADS1110 kontrolira s bitovima 2 i 3. Ako ste uključili kontinuirano uzorkovanje, to određuje broj uzoraka u sekundi koje uzima ADC.

Nakon nekog eksperimentiranja s Arduino Uno -om, otkrili smo da su vrijednosti vraćene iz ADC -a bile malo isključene pri korištenju najbrže brzine, pa ostavite to na 15 SPS -a, osim ako se ne zahtijeva drugačije. Bit 4 postavlja ili kontinuirano uzorkovanje (0) ili jednokratno uzorkovanje (1). Zanemarite bitove 5 i 6, no uvijek su postavljeni na 0.

Na kraju bit 7-ako ste u načinu jednokratnog uzorkovanja, postavljanjem na 1 zahtijeva se uzorak-i čitanjem će vam reći jesu li vraćeni podaci novi (0) ili stari (1). Možete provjeriti je li izmjerena vrijednost nova vrijednost - ako je prvi bit konfiguracijskog bajta koji dolazi nakon podataka 0, nov je. Ako vrati 1, ADC konverzija nije dovršena.

Korak 3: Registar podataka

Kako je ADS1110 16-bitni ADC, vraća podatke u dva bajta-a zatim slijedi vrijednost registra konfiguracije. Dakle, ako zatražite tri bajta, cijela se serija vraća. Podaci su u obliku "dva komplementa", što je metoda korištenja potpisanih brojeva u binarnom obliku.

Pretvaranje ta dva bajta vrši se jednostavnom matematikom. Prilikom uzorkovanja pri 15 SPS, vrijednost koju vraća ADS1110 (a ne napon) pada između -32768 i 32767. Viši bajt vrijednosti pomnoži se s 256, zatim se doda donjem bajtu -koji se zatim pomnoži s 2.048 i na kraju podijeljeno s 32768. Nemojte paničariti jer to činimo u nadolazećoj primjeru skice.

Korak 4: Jednostruki ADC način rada

Jednostruki ADC način rada
Jednostruki ADC način rada

U ovom načinu rada možete očitati napon koji pada između nule i 2.048 V (što je također i ugrađeni referentni napon za ADS1110). Primjer sklopa je jednostavan (iz podatkovnog lista).

Ne zaboravite 10 kΩ pull-up otpornike na I2C sabirnici. Sljedeća skica koristi ADS1110 u zadanom načinu rada i jednostavno vraća izmjereni napon:

// Primjer 53.1 - jednostrani voltmetar ADS1110 (0 ~ 2.048VDC) #uključuje "Wire.h" #define ads1110 0x48 plovni napon, podaci; byte highbyte, lowbyte, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); while (Wire.available ()) // osigurati da svi podaci dolaze u {highbyte = Wire.read (); // visoki bajt * B11111111 niskobajt = Wire.read (); // niski bajt configRegister = Wire.read (); }

podaci = highbyte * 256;

data = podaci + niskobajt; Serial.print ("Podaci >>"); Serial.println (podaci, DEC); Serial.print ("Napon >>"); napon = podaci * 2.048; napon = napon / 32768,0; Serijski ispis (napon, DEC); Serial.println ("V"); kašnjenje (1000); }

5. korak:

Slika
Slika

Nakon prijenosa povežite signal za mjerenje i otvorite serijski monitor - bit će vam prikazano nešto slično slici serijskog monitora prikazanoj u ovom koraku.

Ako trebate promijeniti pojačanje internog programabilnog pojačala ADC -a - morat ćete upisati novi bajt u konfiguracijski registar koristeći:

Wire.beginTransmission (ads1110); Wire.write (konfiguracijski bajt); Wire.endTransmission ();

prije nego što zatražite ADC podatke. To bi bilo 0x8D, 0x8E ili 0x8F za vrijednosti pojačanja 2, 4 i 8 - i koristite 0x8C za vraćanje ADS1110 na zadane vrijednosti.

Korak 6: Diferencijalni ADC način rada

Diferencijalni ADC način rada
Diferencijalni ADC način rada

U ovom načinu rada možete očitati razliku između dva napona koji svaki pada između nule i 5 V. Primjer kruga je jednostavan (iz podatkovne tablice).

Moramo napomenuti ovdje (i u tehničkom listu) da ADS1110 ne može prihvatiti negativne napone ni na jednom ulazu. Za iste rezultate možete koristiti prethodnu skicu- a rezultirajući napon bit će vrijednost Vin- oduzeta od Vin+. Na primjer, ako ste imali 2 V na Vin+ i 1 V na Vin- rezultirajući napon bi bio 1 V (s pojačanjem postavljenim na 1).

Još jednom se nadamo da vam je ovo bilo zanimljivo, a možda i korisno. Ovaj post vam donosi pmdway.com - sve za proizvođače i ljubitelje elektronike, uz besplatnu dostavu diljem svijeta.

Preporučeni: