Sadržaj:
- Korak 1:
- Korak 2: Registar konfiguracije
- Korak 3: Registar podataka
- Korak 4: Jednostruki ADC način rada
- 5. korak:
- Korak 6: Diferencijalni ADC način rada
Video: Arduino i 16-bitni ADC TI ADS1110: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
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:
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
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:
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
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:
Kako napraviti ADC trenutni osjet: 5 koraka
Kako postići ADC trenutni osjet: U ovom Instructable opisat ćemo kako implementirati 8-bitni analogno-digitalni pretvarač (ADC) u SLG46855V koji može osjetiti struju opterećenja i sučelje s MCU-om putem I2C-a. Ovaj se dizajn može koristiti za različite trenutne primjene mjerenja, poput
7-segmentni za prikaz ADC #Arduino vrijednosti, #Arduino: 4 koraka
7-segmentni za prikaz ADC #Arduino vrijednosti, #Arduino: U ovom članku napravit ću projekt koji je još uvijek povezan s prethodnim člankom. Naime, obrada ADC podataka. Pa vam ne treba serijski monitor da biste vidjeli vrijednost ADC podataka. u ovom članku napravit ću prikaz preglednika ADC vrijednosti. pa ti ne
Očitajte ADC vrijednosti s potenciometara: 4 koraka
Čitanje ADC vrijednosti s potenciometara: U ovom članku ću vam pokazati kako očitavati ADC vrijednosti s potenciometra. Ovo je osnova Arduino programiranja. koji čita analogne vrijednosti pomoću analognog pina koji dobiva Arduino.Osim korištenja potencija, postoji nekoliko senzora koji
Arduino i PCF8591 ADC DAC IC: 7 koraka
Arduino i PCF8591 ADC DAC IC: Jeste li ikada htjeli više analognih ulaznih pinova na svom Arduino projektu, ali niste htjeli izdvojiti Mega? Ili želite generirati analogne signale? Zatim provjerite temu našeg vodiča - IC NXP PCF8591. Riješava oba ova problema
Znate li o podešavanju ESP32 ADC -a?: 29 koraka
Znate li o podešavanju ESP32 ADC-a ?: Danas ću govoriti o jednom tehničkom pitanju, ali mislim da bi svi koji rade s ESP32 trebali znati: pitanje prilagodbe čitanja ADC-a (analogno-digitalnog pretvarača). Smatram da je to važno jer pri obavljanju " mjerenja " esp