Sadržaj:
- Korak 1:
- Korak 2: Registar konfiguracije
- Korak 3: Registar podataka
- Korak 4: Jednostruki ADC način rada
- Korak 5:
- Korak 6: Režim diferencijalnog ADC -a
Video: Arduino i TI ADS1110 16-bitni ADC: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
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:
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
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:
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
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:
Kako napraviti ADC trenutni osjećaj: 5 koraka
Kako postići ADC trenutni osjet: U ovom uputstvu 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. Ovaj dizajn može se koristiti za različite trenutne primjene mjerenja, poput
7-segment za prikaz ADC #Arduino vrijednosti, #Arduino: 4 koraka
7-segmentni za prikaz ADC #Arduino vrijednosti, #Arduino: U ovom članku ću napraviti projekt koji je još uvijek povezan s prethodnim člankom. Naime, obrada ADC podataka. Pa vam nije potreban serijski monitor da biste vidjeli vrijednost ADC podataka. u ovom ću članku prikazati preglednik 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 čitati ADC vrijednosti s potenciometra. Ovo je osnova Arduino programiranja. koji čita analogne vrijednosti pomoću analognog pina koji pruža 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 - NXP PCF8591 IC. 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 prilagođavanja čitanja ADC-a (analogno-digitalnog pretvarača). Smatram da je ovo važno jer kada radite " mjerenje " esp