Turinys:
- 1 žingsnis:
- 2 veiksmas: konfigūracijos registras
- 3 žingsnis: duomenų registras
- 4 žingsnis: vienpusis ADC režimas
- 5 veiksmas:
- 6 žingsnis: Diferencialinis ADC režimas
Video: „Arduino“ir TI ADS1110 16 bitų ADC: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Š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:
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
Š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:
Į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
Š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:
„Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro pamoka: 4 žingsniai
„Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio pagreičio matuoklio pamoka: „MMA8452Q“yra protingas, mažos galios, trijų ašių, talpinis, mikromašinis pagreičio matuoklis, turintis 12 bitų skiriamąją gebą. Lanksčios vartotojo programuojamos parinktys pateikiamos naudojant pagreičio matuoklio įterptas funkcijas, kurias galima sukonfigūruoti dviem pertraukomis
Raspberry Pi MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro „Python“vadovėlis: 4 žingsniai
„Raspberry Pi MMA8452Q“3 ašių 12 bitų/8 bitų skaitmeninio akselerometro „Python“vadovėlis: „MMA8452Q“yra protingas, mažos galios, trijų ašių, talpinis, mikromechaninis pagreičio matuoklis, turintis 12 bitų skiriamąją gebą. Lanksčios vartotojo programuojamos parinktys pateikiamos naudojant pagreičio matuoklio įterptas funkcijas, kurias galima sukonfigūruoti dviem pertraukomis
26 bitų „Nano Pixels“naudojant „Arduino“: 4 žingsniai
26 bitų „Nano Pixels“naudojant „Arduino“: Ankstesniame straipsnyje aš parengiau pamoką, kaip naudoti „WS2812 Nano Pixel LED“. Tame straipsnyje aš naudojau 16 bitų žiedą „Nano Pixel WS2812“. Ir šiame straipsnyje aš jums parodysiu, kaip naudoti 26 bitų žiedą „Nano Pixels WS2812“. Techninės įrangos skyriuje
Raspberry Pi MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninis pagreičio matuoklis „Java“pamoka: 4 žingsniai
„Raspberry Pi MMA8452Q“3 ašių 12 bitų/8 bitų skaitmeninis pagreičio matuoklis „Java“pamoka: „MMA8452Q“yra protingas, mažos galios, trijų ašių, talpinis, mikromechaninis pagreičio matuoklis, turintis 12 bitų skiriamąją gebą. Lanksčios vartotojo programuojamos parinktys pateikiamos naudojant pagreičio matuoklio įterptas funkcijas, kurias galima sukonfigūruoti dviem pertraukomis
„Pasidaryk pats“„MusiLED“, muzikos sinchronizuoti šviesos diodai su vienu paspaudimu „Windows“ir „Linux“programa (32 bitų ir 64 bitų). Lengva atkurti, paprasta naudoti, lengva perkelti: 3 žingsniai
Pasidaryk pats „MusiLED“, muzikos sinchronizuoti šviesos diodai su vienu paspaudimu „Windows“ir „Linux“programa (32 bitų ir 64 bitų). Lengva atkurti, paprasta naudoti, lengva perkelti. Šis projektas padės jums prijungti 18 šviesos diodų (6 raudonos + 6 mėlynos + 6 geltonos) prie „Arduino“plokštės ir išanalizuoti kompiuterio garso plokštės realaus laiko signalus ir perduoti juos šviesos diodai, kad jie užsidegtų pagal ritmo efektus (Snare, High Hat, Kick)