Përmbajtje:

Arduino dhe TI ADS1110 ADC 16-bit: 6 hapa
Arduino dhe TI ADS1110 ADC 16-bit: 6 hapa

Video: Arduino dhe TI ADS1110 ADC 16-bit: 6 hapa

Video: Arduino dhe TI ADS1110 ADC 16-bit: 6 hapa
Video: How to use Prototyping Shield with breadboard for Arduino 2024, Korrik
Anonim
Arduino dhe ADC 16-bit TI ADS1110
Arduino dhe ADC 16-bit TI ADS1110

Në këtë tutorial ne shqyrtojmë përdorimin e Arduino për të punuar me Texas Instruments ADS1110-një IC jashtëzakonisht i vogël, por i dobishëm 16-bit konvertues analog në dixhital.

Mund të funksionojë midis 2.7 dhe 5.5 V, kështu që është gjithashtu mirë për Arduino Due dhe bordet e tjera të zhvillimit të tensionit më të ulët. Para se të vazhdoni më tej, ju lutemi shkarkoni fletën e të dhënave (pdf) pasi do të jetë e dobishme dhe referuar gjatë këtij mësimi. ADS1110 ju jep mundësinë e një ADC më të saktë sesa ofrohet nga ADC 10-bitësh të Arduino-dhe është relativisht i lehtë për t’u përdorur. Sidoqoftë, është i disponueshëm vetëm si pjesë e zhveshur në SOT23-6.

Hapi 1:

Imazhi
Imazhi

Lajmi i mirë është se mund të porositni ADS1110 të montuar në një tabelë shumë të përshtatshme shpërthimi. ADS1110 përdor autobusin I2C për komunikim. Dhe meqenëse ka vetëm gjashtë kunja që nuk mund të vendosni adresën e autobusit - në vend të kësaj, ju mund të zgjidhni nga gjashtë variante të ADS1110 - secila me adresën e vet (shiko faqen dy të fletës së të dhënave).

Siç mund ta shihni në foton e mësipërme, e jona është shënuar "EDO" e cila përputhet me adresën e autobusit 1001000 ose 0x48h. Dhe me qarqet shembull ne kemi përdorur rezistorë tërheqës 10kΩ në autobusin I2C.

Ju mund të përdorni ADS1110 si një ADC me një përfundim ose diferencial-Por së pari ne duhet të shqyrtojmë regjistrin e konfigurimit i cili përdoret për të kontrolluar atribute të ndryshme, dhe regjistrin e të dhënave.

Hapi 2: Regjistri i konfigurimit

Kthehuni në faqen njëmbëdhjetë të fletës së të dhënave. Regjistri i konfigurimit është një bajt në madhësi, dhe ndërsa ADS1110 rivendoset në një cikël të energjisë-ju duhet të rivendosni regjistrin nëse nevojat tuaja janë të ndryshme nga ato të paracaktuara. Fleta e të dhënave e shpjegon atë mjaft bukur … bitët 0 dhe 1 përcaktojnë cilësimin e fitimit për PGA (amplifikatori i fitimit të programueshëm).

Nëse thjesht po matni tensionet ose po eksperimentoni, lërini këto si zero për një përfitim prej 1V/V. Më tej, shkalla e të dhënave për ADS1110 kontrollohet me bitët 2 dhe 3. Nëse keni marrjen e mostrave të vazhdueshme të ndezura, kjo përcakton numrin e mostrave për sekondë të marra nga ADC.

Pas disa eksperimenteve me një Arduino Uno ne zbuluam se vlerat e kthyera nga ADC ishin pak jashtë kur përdorni normën më të shpejtë, kështu që lëreni atë si 15 SPS përveç nëse kërkohet ndryshe. Bit 4 vendos marrjen e mostrave të vazhdueshme (0) ose marrjen e mostrave një herë (1). Injoroni pjesët 5 dhe 6, megjithatë ato gjithmonë vendosen si 0.

Së fundi biti 7-nëse jeni në modalitetin e marrjes së mostrave një herë, vendosja e tij në 1 kërkon një mostër-dhe leximi i tij do t'ju tregojë nëse të dhënat e kthyera janë të reja (0) ose të vjetra (1). Mund të kontrolloni që vlera e matur është një vlerë e re - nëse biti i parë i bajtit të konfigurimit që vjen pas të dhënave është 0, është i ri. Nëse kthehet 1, konvertimi ADC nuk ka përfunduar.

Hapi 3: Regjistri i të dhënave

Meqenëse ADS1110 është një ADC 16-bit, i kthen të dhënat mbi dy bajt-dhe më pas vijon me vlerën e regjistrit të konfigurimit. Pra, nëse kërkoni tre byte, e gjithë pjesa kthehet. Të dhënat janë në formën e "plotësimit të dy", e cila është një metodë e përdorimit të numrave të nënshkruar me binar.

Shndërrimi i atyre dy bajtëve bëhet nga disa matematikë të thjeshtë. Kur merret mostra në 15 SPS, vlera e kthyer nga ADS1110 (jo tensioni) bie midis -32768 dhe 32767. Bajti më i lartë i vlerës shumëzohet me 256, pastaj i shtohet bajtit më të ulët -i cili më pas shumëzohet me 2.048 dhe në fund ndarë me 32768. Mos u frikësoni, pasi e bëjmë këtë në skicën e shembullit të ardhshëm.

Hapi 4: Modaliteti ADC me një përfundim

Mënyra ADC me një përfundim
Mënyra ADC me një përfundim

Në këtë mënyrë mund të lexoni një tension që bie midis zero dhe 2.048 V (i cili gjithashtu ndodh të jetë tensioni i integruar i referencës për ADS1110). Qarku shembull është i thjeshtë (nga fleta e të dhënave).

Mos harroni rezistencat tërheqëse 10kΩ në autobusin I2C. Skica e mëposhtme përdor ADS1110 në modalitetin e paracaktuar dhe thjesht kthen tensionin e matur:

// Shembulli 53.1 - Voltmetri i njëanshëm ADS1110 (0 ~ 2.048VDC) #përfshi "Wire.h" #përcakto reklamat1110 0x48 tensionin e notimit, të dhëna; byte highbyte, lowbyte, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); ndërsa (Wire.available ()) // sigurohuni që të gjitha të dhënat vijnë në {highbyte = Wire.read (); // bajt i lartë * B11111111 lowbyte = Wire.read (); // byte e ulët configRegister = Wire.read (); }

të dhëna = highbajt * 256;

të dhëna = të dhëna + lowbyte; Serial.print ("Të dhënat >>"); Serial.println (të dhëna, DEC); Serial.print ("Tensioni >>"); tension = të dhëna * 2.048; tension = tension / 32768.0; Serial.print (tension, DEC); Serial.println ("V"); vonesa (1000); }

Hapi 5:

Imazhi
Imazhi

Pasi të ngarkohet, lidhni sinjalin për të matur dhe hapur monitorin serik - do t'ju paraqitet diçka e ngjashme me imazhin e monitorit serik të treguar në këtë hap.

Nëse keni nevojë të ndryshoni fitimin e përforcuesit të brendshëm të fitimit të programueshëm të ADC - do t'ju duhet të shkruani një bajt të ri në regjistrin e konfigurimit duke përdorur:

Wire.beginTransmission (ads1110); Wire.write (byte konfigurimi); Wire.endTransmission ();

para se të kërkoni të dhënat e ADC. Kjo do të ishte 0x8D, 0x8E ose 0x8F për vlerat e fitimit përkatësisht 2, 4 dhe 8 - dhe përdorni 0x8C për të rivendosur ADS1110 në parazgjedhje.

Hapi 6: Mënyra diferenciale ADC

Mënyra diferenciale ADC
Mënyra diferenciale ADC

Në këtë mënyrë ju mund të lexoni ndryshimin midis dy tensioneve që secili bie midis zero dhe 5 V. Shembulli i qarkut është i thjeshtë (nga fleta e të dhënave).

Duhet të kemi parasysh këtu (dhe në fletën e të dhënave) që ADS1110 nuk mund të pranojë tensione negative në asnjërën prej hyrjeve. Ju mund të përdorni skicën e mëparshme për të njëjtat rezultate- dhe tensioni që rezulton do të jetë vlera e Vin- e zbritur nga Vin+. Për shembull, nëse do të kishit 2 V në Vin+ dhe 1 V në Vin- tensioni që rezulton do të ishte 1 V (me fitimin e vendosur në 1).

Edhe një herë ne shpresojmë që ju e keni gjetur këtë me interes, dhe ndoshta të dobishëm. Ky postim ju është sjellë nga pmdway.com - gjithçka për prodhuesit dhe entuziastët e elektronikës, me shpërndarje falas në të gjithë botën.

Recommended: