Kazalo:
- Korak 1:
- 2. korak: Register konfiguracije
- 3. korak: Register podatkov
- 4. korak: Enosmerni način ADC
- 5. korak:
- Korak 6: Diferenčni način ADC
Video: Arduino in 16-bitni ADC TI ADS1110: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
V tej vadnici preučujemo uporabo Arduina za delo s Texas Instruments ADS1110-neverjetno majhnim, a uporabnim 16-bitnim analogno-digitalnim pretvornikom IC.
Deluje lahko med 2,7 in 5,5 V, zato je primeren tudi za Arduino Due in druge nizkonapetostne razvojne plošče. Preden nadaljujete, prenesite podatkovni list (pdf), saj bo koristen in nanj omenjen v tem vodiču. ADS1110 ponuja možnost natančnejšega ADC-ja, kot ga ponujajo 10-bitni ADC-ji Arduino-in je relativno enostaven za uporabo. Vendar je na voljo samo kot goli del v SOT23-6.
Korak 1:
Dobra novica je, da lahko naročite ADS1110, nameščen na zelo priročni odklopni plošči. ADS1110 za komunikacijo uporablja vodilo I2C. Ker samo šest zatičev ne morete nastaviti naslova vodila - namesto tega lahko izbirate med šestimi različicami ADS1110 - vsaka s svojim naslovom (glejte drugo stran podatkovnega lista).
Kot lahko vidite na zgornji fotografiji, je naš označen z "EDO", ki se ujema z naslovom avtobusa 1001000 ali 0x48h. Z vzorčnimi vezji smo na vodilu I2C uporabili 10 kΩ vlečne upore.
ADS1110 lahko uporabite kot enojni ali diferenčni ADC-najprej pa moramo pregledati konfiguracijski register, ki se uporablja za nadzor različnih atributov, in podatkovni register.
2. korak: Register konfiguracije
Pojdite na enajsto stran podatkovnega lista. Konfiguracijski register je velik en bajt in ker se ADS1110 ponastavi na cikel napajanja-morate ponastaviti register, če se vaše potrebe razlikujejo od privzetih. V podatkovnem listu je to zelo lepo zapisano … bita 0 in 1 določata nastavitev ojačanja za PGA (programabilni ojačevalnik ojačanja).
Če samo merite napetosti ali eksperimentirate, pustite te vrednosti nič za dobiček 1 V/V. Nato se hitrost prenosa podatkov za ADS1110 nadzira z bitoma 2 in 3. Če imate vklopljeno neprekinjeno vzorčenje, to določa število vzorcev na sekundo, ki jih sprejme ADC.
Po nekaj poskusih z Arduino Uno smo ugotovili, da so bile vrednosti, vrnjene iz ADC -ja, pri uporabi najhitrejše stopnje nekoliko onemogočene, zato pustite, da je 15 SPS, če ni zahtevano drugače. Bit 4 nastavi bodisi neprekinjeno vzorčenje (0) bodisi enkratno vzorčenje (1). Zanemarite bita 5 in 6, vendar sta vedno nastavljena na 0.
Končno bit 7-če ste v enkratnem načinu vzorčenja, nastavitev na 1 zahteva vzorec-in ob branju vam bo povedal, ali so vrnjeni podatki novi (0) ali stari (1). Lahko preverite, ali je izmerjena vrednost nova vrednost - če je prvi bit konfiguracijskega bajta, ki pride po podatkih 0, je nov. Če vrne 1, pretvorba ADC ni končana.
3. korak: Register podatkov
Ker je ADS1110 16-bitni ADC, podatke vrne v dveh bajtih-in nato sledi vrednost konfiguracijskega registra. Če torej zahtevate tri bajte, se celotna serija vrne. Podatki so v obliki "komplementa dveh", ki je metoda uporabe podpisanih številk z binarnim sistemom.
Pretvarjanje teh dveh bajtov poteka z nekaj preprostimi matematikami. Pri vzorčenju pri 15 SPS vrednost, ki jo vrne ADS1110 (ne napetost), pade med -32768 in 32767. Višji bajt vrednosti se pomnoži s 256, nato se doda spodnjemu bajtu -ki se nato pomnoži z 2,048 in na koncu deljeno z 32768. Brez panike, saj to počnemo v prihajajoči vzorčni skici.
4. korak: Enosmerni način ADC
V tem načinu lahko berete napetost, ki pade med ničlo in 2,048 V (kar je tudi vgrajena referenčna napetost za ADS1110). Primer vezja je preprost (iz podatkovnega lista).
Ne pozabite na 10 kΩ vlečne upore na vodilu I2C. Naslednja skica uporablja ADS1110 v privzetem načinu in preprosto vrne izmerjeno napetost:
// Primer 53.1 - enostranski voltmeter ADS1110 (0 ~ 2.048VDC) #include "Wire.h" #define ads1110 0x48 plavajoča napetost, podatki; byte highbyte, lowbyte, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); while (Wire.available ()) // zagotovimo, da so vsi podatki v {highbyte = Wire.read (); // visoki bajt * B11111111 nizkobajt = Wire.read (); // nizkobajtni configRegister = Wire.read (); }
podatki = visoki bajt * 256;
podatki = podatki + nizkobajt; Serial.print ("Podatki >>"); Serial.println (podatki, DEC); Serial.print ("Napetost >>"); napetost = podatki * 2.048; napetost = napetost / 32768,0; Serijski.tisk (napetost, DEC); Serial.println ("V"); zamuda (1000); }
5. korak:
Ko naložite, priključite signal za merjenje in odprite serijski monitor - prikazano vam bo nekaj podobnega sliki serijskega monitorja, prikazani v tem koraku.
Če morate spremeniti ojačanje notranjega programabilnega ojačevalnika ojačevalnika ADC - morate vnesti nov bajt v konfiguracijski register z uporabo:
Wire.beginTransmission (ads1110); Wire.write (konfiguracijski bajt); Wire.endTransmission ();
preden zahtevate podatke ADC. To bi bilo 0x8D, 0x8E ali 0x8F za vrednosti ojačanja 2, 4 in 8 - in uporabite 0x8C za ponastavitev ADS1110 na privzeto.
Korak 6: Diferenčni način ADC
V tem načinu lahko preberete razliko med dvema napetostima, ki padeta med nič in 5 V. Primer tokokroga je preprost (iz podatkovnega lista).
Tukaj (in v podatkovnem listu) moramo opozoriti, da ADS1110 ne more sprejeti negativnih napetosti na nobenem od vhodov. Za iste rezultate lahko uporabite prejšnjo skico- nastala napetost bo vrednost Vin- odšteta od Vin+. Na primer, če bi imeli 2 V na Vin+ in 1 V na Vin- bi bila posledična napetost 1 V (z ojačitvijo nastavljeno na 1).
Še enkrat upamo, da vam je bilo to zanimivo in morda koristno. To objavo vam je predstavil pmdway.com - vse za ustvarjalce in navdušence nad elektroniko z brezplačno dostavo po vsem svetu.
Priporočena:
Kako narediti ADC trenutni občutek: 5 korakov
Kako narediti ADC trenutni občutek: V tem navodilu bomo opisali, kako implementirati 8-bitni analogno-digitalni pretvornik (ADC) v SLG46855V, ki lahko zazna tok obremenitve in vmesnik z MCU prek I2C. Ta zasnova se lahko uporablja za različne trenutne aplikacije zaznavanja, kot so
Arduino in PCF8591 ADC DAC IC: 7 korakov
Arduino in PCF8591 ADC DAC IC: Ste že kdaj želeli več analognih vhodnih zatičev pri svojem projektu Arduino, pa se niste želeli odločiti za Mega? Ali pa želite ustvariti analogne signale? Nato si oglejte temo naše vadnice - IC NXP PCF8591, ki rešuje obe težavi
Ali veste o nastavitvi ADC ESP32?: 29 korakov
Ali veste o prilagoditvi ADC ESP32 ?: Danes bom govoril o bolj tehničnem vprašanju, vendar mislim, da bi morali vsi, ki delajo z ESP32, vedeti: vprašanje ADC (analogno-digitalni pretvornik) branja. To se mi zdi pomembno, ker pri " merjenju " esp
Digitalni voltmeter za polnjenje z uporabo ICL7107 ADC: 7 korakov (s slikami)
Digitalni voltmeter za ponovno polnjenje z uporabo ICL7107 ADC: V tej vadnici vam bom pokazal, kako narediti super preprost digitalni voltmeter, ki lahko meri napetosti od 20 mV do 200V. Ta projekt ne bo uporabljal nobenega mikrokrmilnika, kot je arduino. Namesto tega bo z nekaj passi uporabljen ADC, to je ICL7107
Uvod v ADC v mikrokrmilniku AVR - za začetnike: 14 korakov
Uvod v ADC v mikrokrmilniku AVR | za začetnike: V tej vadnici boste izvedeli vse ADC v mikrokrmilniku avr