Turinys:

„Arduino“ir TI ADS1110 16 bitų ADC: 6 žingsniai
„Arduino“ir TI ADS1110 16 bitų ADC: 6 žingsniai

Video: „Arduino“ir TI ADS1110 16 bitų ADC: 6 žingsniai

Video: „Arduino“ir TI ADS1110 16 bitų ADC: 6 žingsniai
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Liepa
Anonim
„Arduino“ir TI ADS1110 16 bitų ADC
„Arduino“ir TI ADS1110 16 bitų ADC

Šioje pamokoje nagrinėjame „Arduino“naudojimą darbui su „Texas Instruments ADS1110“-neįtikėtinai mažu, bet naudingu 16 bitų analoginio skaitmeninio keitiklio IC.

Jis gali veikti nuo 2,7 iki 5,5 V, todėl taip pat tinka „Arduino Due“ir kitoms žemesnės įtampos plėtros plokštėms. Prieš tęsdami, atsisiųskite duomenų lapą (pdf), nes jis bus naudingas ir nurodytas šioje pamokoje. ADS1110 suteikia jums galimybę pasirinkti tikslesnį ADC, nei siūlo „Arduino“10 bitų ADC-ir tai gana paprasta naudoti. Tačiau ji yra prieinama tik kaip plikoji dalis SOT23-6.

1 žingsnis:

Vaizdas
Vaizdas

Geros naujienos yra tai, kad galite užsisakyti ADS1110, sumontuotą ant labai patogios pertraukimo plokštės. ADS1110 bendravimui naudoja I2C magistralę. Kadangi yra tik šeši kaiščiai, negalite nustatyti magistralės adreso - vietoj to galite pasirinkti iš šešių ADS1110 variantų - kiekvienas turi savo adresą (žr. Antrą duomenų lapo puslapį).

Kaip matote aukščiau esančioje nuotraukoje, mūsų yra pažymėtas „EDO“, kuris atitinka autobuso adresą 1001000 arba 0x48h. Naudodami pavyzdines grandines, I2C magistralėje naudojome 10 kΩ ištraukiamus rezistorius.

Galite naudoti ADS1110 kaip vienpusį arba diferencialinį ADC-bet pirmiausia turime išnagrinėti konfigūracijos registrą, kuris naudojamas įvairiems atributams valdyti, ir duomenų registrą.

2 veiksmas: konfigūracijos registras

Pereikite prie vienuolikto duomenų lapo puslapio. Konfigūracijos registras yra vieno baito dydžio, o kai ADS1110 atsistato per maitinimo ciklą-turite iš naujo nustatyti registrą, jei jūsų poreikiai skiriasi nuo numatytųjų. Duomenų lape tai išdėstyta gana tvarkingai … bitai 0 ir 1 nustato PGA (programuojamo stiprinimo stiprintuvo) stiprinimo nustatymą.

Jei tik matuojate įtampą ar eksperimentuojate, palikite juos kaip nulį, kad padidėtų 1 V/V. Toliau ADS1110 duomenų perdavimo greitis valdomas naudojant 2 ir 3 bitus. Jei įjungtas nuolatinis mėginių ėmimas, tai nustato ADC paimtų mėginių skaičių per sekundę.

Po tam tikro eksperimento su „Arduino Uno“nustatėme, kad naudojant ADC gautos vertės šiek tiek sumažėjo, kai buvo naudojama greičiausia norma, todėl palikite ją kaip 15 SPS, nebent to reikalaujama kitaip. 4 bitas nustato nuolatinį (0) arba vienkartinį (1) mėginių ėmimą. Nepaisykite 5 ir 6 bitų, tačiau jie visada nustatyti kaip 0.

Galiausiai 7 bitas-jei esate vienkartinis atrankos režimas, nustačius jį į 1 prašoma imties-ir jį perskaitę sužinosite, ar grąžinti duomenys yra nauji (0), ar seni (1). Galite patikrinti, ar išmatuota vertė yra nauja - jei pirmasis konfigūracijos baito bitas, kuris atsiranda po duomenų, yra 0. Jei grąžina 1, ADC konversija nebaigta.

3 žingsnis: duomenų registras

Kadangi ADS1110 yra 16 bitų ADC, jis grąžina duomenis per du baitus, o po to nurodo konfigūracijos registro vertę. Taigi, jei paprašysite trijų baitų, visa dalis bus grąžinta. Duomenys yra „dviejų papildymo“formos, tai yra pasirašytų skaičių su dvejetainiu metodas.

Šiuos du baitus konvertuoja paprastos matematikos. Kai imama 15 SPS, ADS1110 grąžinta vertė (ne įtampa) yra tarp -32768 ir 32767. Didesnis vertės baitas padauginamas iš 256, tada pridedamas prie apatinio baito, kuris tada padauginamas iš 2,048 ir galiausiai padalintas iš 32768. Nepanikuokite, nes tai darome būsimame eskizo pavyzdyje.

4 žingsnis: vienpusis ADC režimas

Vienpusis ADC režimas
Vienpusis ADC režimas

Šiuo režimu galite nuskaityti įtampą, kuri nukrenta tarp nulio ir 2,048 V (kuri taip pat yra įmontuota atskaitos įtampa ADS1110). Pavyzdinė grandinė yra paprasta (iš duomenų lapo).

Nepamirškite 10kΩ ištraukiamųjų rezistorių I2C magistralėje. Šis eskizas naudoja ADS1110 numatytuoju režimu ir tiesiog grąžina išmatuotą įtampą:

// 53.1 pavyzdys - ADS1110 vienpusis voltmetras (0 ~ 2,048 VDC) #įtraukti „Wire.h“#define ads1110 0x48 plūdės įtampa, duomenys; baitas didelis baitas, mažas baitas, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); while (Wire.available ()) // įsitikinkite, kad visi duomenys pateikiami {highbyte = Wire.read (); // didelis baitas * B11111111 lowbyte = Wire.read (); // mažai baitų configRegister = Wire.read (); }

duomenys = baitas * 256;

duomenys = duomenys + mažas baitas; Serial.print („Duomenys >>“); Serial.println (duomenys, DEC); Serial.print ("Įtampa >>"); įtampa = duomenys * 2,048; įtampa = įtampa / 32768.0; Serijinis atspaudas (įtampa, DEC); Serial.println ("V"); vėlavimas (1000); }

5 veiksmas:

Vaizdas
Vaizdas

Įkėlę prijunkite signalą, kad išmatuotumėte ir atidarytumėte serijinį monitorių - jums bus pateiktas kažkas panašaus į šiame veiksme parodytą serijinio monitoriaus vaizdą.

Jei jums reikia pakeisti ADC vidinio programuojamo stiprintuvo stiprinimą, turėsite įrašyti naują baitą į konfigūracijos registrą naudodami:

Wire.beginTransmission (ads1110); Wire.write (konfigūracijos baitas); Wire.endTransmission ();

prieš prašydami ADC duomenų. Tai būtų 0x8D, 0x8E arba 0x8F, jei padidinimo vertės būtų atitinkamai 2, 4 ir 8, ir naudokite 0x8C, kad iš naujo nustatytumėte numatytąją ADS1110.

6 žingsnis: Diferencialinis ADC režimas

Diferencialinis ADC režimas
Diferencialinis ADC režimas

Šiuo režimu galite perskaityti skirtumą tarp dviejų įtampų, kurių kiekviena patenka tarp nulio ir 5 V. Pavyzdinė grandinė yra paprasta (iš duomenų lapo).

Čia (ir duomenų lape) turime pažymėti, kad ADS1110 negali priimti neigiamos įtampos nė viename iš įėjimų. Tiems patiems rezultatams galite naudoti ankstesnį eskizą- gauta įtampa bus Vin vertė, atimta iš Vin+. Pavyzdžiui, jei „Vin+“turėjote 2 V ir „Vin“- 1 V, gauta įtampa būtų 1 V (stiprinimas nustatytas 1).

Dar kartą tikimės, kad tai jums buvo įdomu ir galbūt naudinga. Šį įrašą jums pateikė pmdway.com - viskas gamintojams ir elektronikos entuziastams, nemokamas pristatymas visame pasaulyje.

Rekomenduojamas: