Satura rādītājs:

Arduino un TI ADS1110 16 bitu ADC: 6 soļi
Arduino un TI ADS1110 16 bitu ADC: 6 soļi

Video: Arduino un TI ADS1110 16 bitu ADC: 6 soļi

Video: Arduino un TI ADS1110 16 bitu ADC: 6 soļi
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Novembris
Anonim
Arduino un TI ADS1110 16 bitu ADC
Arduino un TI ADS1110 16 bitu ADC

Šajā apmācībā mēs pārbaudām, izmantojot Arduino, lai strādātu ar Texas Instruments ADS1110-neticami mazu, bet noderīgu 16 bitu analogo ciparu pārveidotāju IC.

Tas var darboties no 2,7 līdz 5,5 V, tāpēc tas ir piemērots arī Arduino Due un citām zemāka sprieguma attīstības plāksnēm. Pirms turpināt, lūdzu, lejupielādējiet datu lapu (pdf), jo tā būs noderīga un norādīta šajā apmācībā. ADS1110 piedāvā precīzākas ADC iespējas, nekā piedāvā Arduino 10 bitu ADC-un to ir salīdzinoši viegli lietot. Tomēr tas ir pieejams tikai kā tukša detaļa SOT23-6.

1. darbība:

Attēls
Attēls

Labā ziņa ir tā, ka jūs varat pasūtīt ADS1110, kas uzstādīts uz ļoti ērtas sadalīšanas plates. ADS1110 saziņai izmanto I2C kopni. Tā kā ir tikai sešas tapas, jūs nevarat iestatīt kopnes adresi - tā vietā varat izvēlēties no sešiem ADS1110 variantiem - katram ir sava adrese (skatiet datu lapas otro lapu).

Kā redzat iepriekš redzamajā fotoattēlā, mūsējais ir apzīmēts ar “EDO”, kas atbilst autobusa adresei 1001000 vai 0x48h. Izmantojot ķēžu paraugus, I2C kopnē esam izmantojuši 10kΩ pievilkšanas rezistorus.

Jūs varat izmantot ADS1110 kā vienpusēju vai diferenciālu ADC-bet vispirms mums ir jāpārbauda konfigurācijas reģistrs, ko izmanto, lai kontrolētu dažādus atribūtus, un datu reģistrs.

2. darbība: konfigurācijas reģistrs

Pārejiet uz datu lapas vienpadsmito lapu. Konfigurācijas reģistrs ir viena baita liels, un, tā kā ADS1110 tiek atiestatīts ieslēgšanas ciklā-reģistrs ir jāatiestata, ja jūsu vajadzības atšķiras no noklusējuma. Datu lapa to izskaidro diezgan glīti … biti 0 un 1 nosaka pastiprinājuma iestatījumu PGA (programmējams pastiprinājuma pastiprinātājs).

Ja jūs vienkārši mērāt spriegumu vai eksperimentējat, atstājiet to kā nulli, lai iegūtu 1V/V pastiprinājumu. Tālāk ADS1110 datu pārraides ātrumu kontrolē ar 2. un 3. bitu. Ja ir ieslēgta nepārtraukta paraugu ņemšana, tas nosaka ADC ņemto paraugu skaitu sekundē.

Pēc dažiem eksperimentiem ar Arduino Uno mēs atklājām, ka, izmantojot ātrāko likmi, no ADC atgrieztās vērtības bija nedaudz izslēgtas, tāpēc atstājiet to kā 15 SPS, ja vien nav noteikts citādi. 4. bits nosaka nepārtrauktu paraugu ņemšanu (0) vai vienreizēju paraugu ņemšanu (1). Ignorējiet 5. un 6. bitu, taču tie vienmēr ir iestatīti kā 0.

Visbeidzot, 7. bits-ja esat vienreizējā izlases režīmā, iestatot to uz 1, tiek pieprasīts paraugs-un to izlasot, tiks parādīts, vai atgrieztie dati ir jauni (0) vai veci (1). Varat pārbaudīt, vai izmērītā vērtība ir jauna vērtība - ja pirmais konfigurācijas baita bits, kas nāk pēc datiem, ir 0, tas ir jauns. Ja tas atgriež 1, ADC reklāmguvums nav pabeigts.

3. darbība: datu reģistrs

Tā kā ADS1110 ir 16 bitu ADC, tas atgriež datus par diviem baitiem-un pēc tam seko konfigurācijas reģistra vērtībai. Tātad, ja jūs pieprasāt trīs baitus, visa partija atgriezīsies. Dati ir “divu papildinājuma” formā, kas ir metode parakstītu skaitļu izmantošanai ar bināro.

Šo divu baitu konvertēšanu veic vienkārša matemātika. Veicot paraugu ņemšanu pie 15 SPS, ADS1110 atgrieztā vērtība (nevis spriegums) ir no -32768 līdz 32767. Augstākais vērtības baits tiek reizināts ar 256, pēc tam pievienots apakšējam baitam -kas pēc tam tiek reizināts ar 2,048 un visbeidzot dalīts ar 32768. Nekrītiet panikā, jo mēs to darām gaidāmajā parauga skicē.

4. solis: vienpusējs ADC režīms

Vienpusējs ADC režīms
Vienpusējs ADC režīms

Šajā režīmā var nolasīt spriegumu, kas ir no nulles līdz 2,048 V (kas arī ir iebūvētais atsauces spriegums ADS1110). Piemēra shēma ir vienkārša (no datu lapas).

Neaizmirstiet I2C kopnes 10kΩ pievilkšanas rezistorus. Šajā skicē noklusējuma režīmā tiek izmantots ADS1110 un vienkārši tiek atgriezts izmērītais spriegums:

// 53.1 piemērs - ADS1110 vienpusējs voltmetrs (0 ~ 2,048VDC) #iekļauj "Wire.h" #define ads1110 0x48 pludiņa spriegums, dati; baits liels baits, zems baits, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); while (Wire.available ()) // pārliecinieties, ka visi dati tiek ievadīti {highbyte = Wire.read (); // augsts baits * B11111111 zems baits = Wire.read (); // zems baits configRegister = Wire.read (); }

dati = baits * 256;

dati = dati + zems baits; Serial.print ("Dati >>"); Serial.println (dati, DEC); Serial.print ("Spriegums >>"); spriegums = dati * 2.048; spriegums = spriegums / 32768.0; Sērijas nospiedums (spriegums, DEC); Serial.println ("V"); kavēšanās (1000); }

5. darbība:

Attēls
Attēls

Pēc augšupielādes pievienojiet signālu sērijas monitora mērīšanai un atvēršanai - jums tiks parādīts kaut kas līdzīgs sērijveida monitora attēlam, kas parādīts šajā solī.

Ja jums ir jāmaina ADC iekšējā programmējamā pastiprinātāja pastiprinājums, jums konfigurācijas reģistrā jāraksta jauns baits, izmantojot:

Wire.beginTransmission (ads1110); Wire.write (konfigurācijas baits); Wire.endTransmission ();

pirms ADC datu pieprasīšanas. Tas būtu 0x8D, 0x8E vai 0x8F attiecīgi 2, 4 un 8 pastiprinājuma vērtībām - un izmantojiet 0x8C, lai atiestatītu ADS1110 noklusējuma vērtību.

6. solis: Diferenciālais ADC režīms

Diferenciālais ADC režīms
Diferenciālais ADC režīms

Šajā režīmā jūs varat izlasīt atšķirību starp diviem spriegumiem, kas katrs ir starp nulli un 5 V. Piemēra shēma ir vienkārša (no datu lapas).

Šeit (un datu lapā) mums jāatzīmē, ka ADS1110 nevar pieņemt negatīvus spriegumus nevienā no ieejām. Tiem pašiem rezultātiem varat izmantot iepriekšējo skici- un iegūtais spriegums būs Vin vērtība, kas atņemta no Vin+. Piemēram, ja jums būtu 2 V uz Vin+ un 1 V uz Vin, iegūtais spriegums būtu 1 V (ar pastiprinājumu iestatīts uz 1).

Mēs vēlreiz ceram, ka jums tas šķita interesanti un, iespējams, noderīgi. Šo ziņu jums sniedza pmdway.com - viss veidotājiem un elektronikas entuziastiem ar bezmaksas piegādi visā pasaulē.

Ieteicams: