Sadržaj:

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

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

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

U ovom vodiču ispitujemo korištenje Arduina za rad sa 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 nego što ga nude Arduino 10-bitni ADC-ovi-i relativno je jednostavan za upotrebu. Međutim, dostupan je samo kao goli dio u SOT23-6.

Korak 1:

Image
Image

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 u podatkovnom listu).

Kao što možete vidjeti na gornjoj fotografiji, naš je označen sa "EDO" što odgovara adresi autobusa 1001000 ili 0x48h. I sa primjerima kola 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. Tehnički list to opisuje prilično uredno … bitovi 0 i 1 određuju pojačanje za PGA (programabilno pojačalo za pojačanje).

Ako samo mjerite napone ili eksperimentirate, ostavite ih kao nulu za pojačanje od 1V/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 osim ako nije potrebno drugačije. Bit 4 postavlja ili kontinuirano uzorkovanje (0) ili jednokratno uzorkovanje (1). Zanemarite bitove 5 i 6, međutim 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, cijeli se paket 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 na 15 SPS, vrijednost koju ADS1110 vraća (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 sa 32768. Nemojte paničariti jer to radimo u nadolazećoj skici primjera.

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 ugrađeni referentni napon za ADS1110). Primjer kola je jednostavan (iz lista sa podacima).

Ne zaboravite na otpornike od 10 kΩ na sabirnici I2C. 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 plivajući 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 lowbyte = Wire.read (); // niski bajt configRegister = Wire.read (); }

data = highbyte * 256;

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

Korak 5:

Image
Image

Nakon učitavanja 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 ();

pre 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: Režim diferencijalnog ADC -a

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 kola 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 širom svijeta.

Preporučuje se: