- Analoginis pasaulis su skaitmenine elektronika
- Kas yra ADC ir kaip jį naudoti?
- Skiriamoji geba (bitai) ir kanalai ADC
- Etaloninė įtampa ADC
- Pavyzdys
- ADC tipai ir darbas
- Keletas dažniausiai kylančių klausimų dėl ADC
Analoginis pasaulis su skaitmenine elektronika
Keletą metų atgal visi elektronikos prietaisai, kuriuos šiandien naudojame, pavyzdžiui, telefonai, kompiuteriai, televizoriai ir pan., Buvo analogiško pobūdžio. Tada lėtai fiksuotojo ryšio telefonus pakeitė modernūs mobilieji telefonai, kineskopų televizorius ir monitorius pakeitė LED ekranai, kompiuteriai su vakuuminiais vamzdeliais tapo galingesni, juose buvo mikroprocesoriai ir mikrovaldikliai ir pan.
Šiandieniniame skaitmeniniame amžiuje mus visus supa pažangūs skaitmeniniai elektroniniai prietaisai, tai gali apgauti manyti, kad viskas aplink mus yra skaitmeninio pobūdžio, o tai nėra tiesa. Pasaulis visada buvo analogiško pobūdžio, pavyzdžiui, viskas, ką mes, žmonės, jaučiame ir patiriame, pavyzdžiui, greitis, temperatūra, oro greitis, saulės šviesa, garsas ir pan., Yra analogiški. Tačiau mūsų elektroniniai prietaisai, veikiantys su mikrovaldikliais ir mikroprocesoriais, negali tiesiogiai nuskaityti / interpretuoti šių analoginių verčių, nes jie veikia tik 0 ir 1. Taigi mums reikia kažko, kas visas šias analogines vertes paverstų 0 ir 1 vertėmis, kad mūsų mikrovaldikliai ir mikroprocesoriai galėtų jas suprasti. Tai trumpai vadinama analoginiais skaitmeniniais keitikliais arba ADC. Šiame straipsnyje mes sužinosimeviskas apie ADC ir kaip juos naudoti.
Kas yra ADC ir kaip jį naudoti?
Kaip minėta anksčiau, ADC reiškia analoginį į skaitmeninį konversiją ir jis naudojamas konvertuoti analogines vertes iš realaus pasaulio į skaitmenines vertes, tokias kaip 1 ir 0. Taigi, kas yra šios analoginės vertės? Tai yra tie, kuriuos matome kasdieniame gyvenime, pavyzdžiui, temperatūra, greitis, ryškumas ir pan. Bet palaukite! Ar ADC gali konvertuoti temperatūrą ir greitį tiesiai į skaitmenines vertes, tokias kaip 0 ir 1?
Ne iššaukiančiai ne. ADC gali konvertuoti tik analogines įtampos reikšmes į skaitmenines vertes. Taigi kurį parametrą norime išmatuoti, jis pirmiausia turėtų būti konvertuojamas į įtampą. Šis perskaičiavimas gali būti atliekamas jutiklių pagalba. Pavyzdžiui, norėdami konvertuoti temperatūros vertes į įtampą, galime naudoti termistorių, kad galėtume ryškumą paversti įtampa ir LDR. Kai jis bus paverstas įtampa, mes galime jį perskaityti ADC pagalba.
Norėdami žinoti, kaip naudoti ADC, pirmiausia turėtume susipažinti su kai kuriais pagrindiniais terminais, tokiais kaip kanalų skiriamoji geba, diapazonas, atskaitos įtampa ir kt.
Skiriamoji geba (bitai) ir kanalai ADC
Perskaitę bet kurio mikrovaldiklio ar ADC IC specifikaciją, išsami informacija apie ADC bus pateikta vartojant kanalų ir skiriamosios gebos (bitų) terminus. Pavyzdžiui, „Arduino UNO“ „ATmega328“ turi 8 kanalų 10 bitų ADC. Ne kiekvienas mikrovaldiklio kaištis gali nuskaityti analoginę įtampą, terminas 8 kanalai reiškia, kad šiame „ATmega328“ mikrovaldiklyje yra 8 kaiščiai, galintys nuskaityti analoginę įtampą, o kiekvienas kaištis gali nuskaityti įtampą 10 bitų skiriamąja geba. Tai skirsis skirtingų tipų mikrovaldikliams.
Tarkime, kad mūsų ADC diapazonas yra nuo 0 V iki 5 V, o mes turime 10 bitų ADC, tai reiškia, kad mūsų įėjimo įtampa 0–5 voltai bus padalinta į 1024 atskirų analoginių verčių lygius (2 10 = 1024). Tai reiškia, kad 1024 yra 10 bitų ADC skiriamoji geba, panašiai kaip 8 bitų ADC skiriamoji geba bus 512 (2 8), o 16 bitų ADC skiriamoji geba bus 65 536 (2 16).
Tokiu atveju, jei faktinė įėjimo įtampa yra 0 V, MCU ADC ją perskaitys kaip 0, o jei ji yra 5 V, MCU parodys 1024 ir, jei ji bus kažkur tarp 2,5 V, tada MCU rodys 512. Mes galime naudoti toliau pateiktas formules apskaičiuoti skaitmeninę vertę, kurią nuskaitys MCU, remiantis ADC skiriamąja geba ir darbine įtampa.
(ADC skiriamoji geba / darbinė įtampa) = (ADC skaitmeninė vertė / faktinė įtampos vertė)
Etaloninė įtampa ADC
Kitas svarbus terminas, kurį turėtumėte žinoti, yra etaloninė įtampa. Atliekant ADC konversiją , nežinomos įtampos vertė nustatoma lyginant ją su žinoma įtampa, tai žinoma įtampa vadinama etalonine įtampa. Paprastai visoje MCU yra galimybė nustatyti vidinę atskaitos įtampą, o tai reiškia, kad naudodami programinę įrangą (programą) šią įtampą galite nustatyti viduje. „Arduino UNO“ plokštėje etaloninė įtampa pagal numatytuosius nustatymus yra nustatyta 5 V, jei reikia, vartotojas gali nustatyti šią atskaitos įtampą išoriškai per „Vref“ kaištį ir atlikęs reikiamus programinės įrangos pakeitimus.
Visada atminkite, kad išmatuota analoginės įtampos vertė visada turėtų būti mažesnė už etaloninės įtampos vertę, o etaloninės įtampos vertė - mažesnė už mikrovaldiklio darbinės įtampos vertę.
Pavyzdys
Čia mes paimame ADC pavyzdį, kuris turi 3 bitų skiriamąją gebą ir 2 V etaloninę įtampą. Taigi jis gali atvaizduoti 0-2v analoginę įtampą su 8 (2 3) skirtingais lygiais, kaip parodyta žemiau esančiame paveikslėlyje:
Taigi, jei analoginė įtampa yra 0,25, skaitmeninė vertė bus 1 po kablelio ir 001 - dvejetainė. Panašiai, jei analoginė įtampa yra 0,5, skaitmeninė vertė bus 2 po kablelio ir 010 - dvejetainė.
Kai kurie mikrovaldikliai turi integruotą ADC, pvz., „Arduino“, MSP430, PIC16F877A, tačiau kai kurie mikrovaldikliai neturi jo, pvz., 8051, „Raspberry Pi“ ir kt., Ir mes turime naudoti kai kuriuos išorinius analoginius į skaitmeninius keitiklius, pvz., ADC0804, ADC0808.
Žemiau galite rasti įvairių ADC su skirtingais mikrovaldikliais pavyzdžių:
- Kaip naudoti ADC „Arduino Uno“?
- Raspberry Pi ADC pamoka
- Sąsaja ADC0808 su 8051 mikrovaldikliu
- 0-25V skaitmeninis voltmetras naudojant AVR mikrovaldiklį
- Kaip naudoti ADC programoje STM32F103C8
- Kaip naudoti ADC programoje MSP430G2
ADC tipai ir darbas
Yra daug ADC tipų, dažniausiai naudojami „ Flash ADC“, „Dual Slope ADC“, nuoseklus derinimas ir „Dual Slope ADC“. Paaiškinti, kaip kiekvienas šių ADC darbas ir skirtumas tarp jų nepatektų į šio straipsnio taikymo sritį, nes jie yra gana sudėtingi. Bet norint pateikti apytikslę idėją, ADC turi vidinį kondensatorių, kuris bus įkrautas pagal išmatuotą analoginę įtampą. Tada mes išmatuojame įtampos vertę, iškraunant kondensatorių per tam tikrą laiką.
Keletas dažniausiai kylančių klausimų dėl ADC
Kaip išmatuoti daugiau nei 5 V, naudojant mano ADC?
Kaip jau buvo aptarta anksčiau, ADC modulis negali išmatuoti įtampos vertės daugiau nei mikrovaldiklio darbinė įtampa. Tai yra 5 V mikrovaldiklis, kurio ADC kaiščiu galima išmatuoti tik daugiausiai 5 V įtampą. Jei norite išmatuoti ką nors daugiau, nei sakoma, norite išmatuoti 0–12 V, tada galite susieti 0–12 V į 0–5 V, naudodami potencialų daliklį arba įtampos skirstytuvo grandinę. Ši grandinė naudos porą rezistorių, kad nustatytų MCU reikšmes, naudodamiesi nuoroda, galite daugiau sužinoti apie įtampos skirstytuvo grandinę. Aukščiau pateiktame pavyzdyje turėtume nuosekliai naudoti 1K rezistorių ir 720 omų rezistorių prie įtampos šaltinio ir išmatuoti įtampą tarp rezistorių, kaip aptarta aukščiau esančioje nuorodoje.
Kaip konvertuoti skaitmenines vertes iš ADC į faktines įtampos vertes?
Naudojant ADC keitiklį analoginei įtampai matuoti, MCU gautas rezultatas bus skaitmeninis. Pavyzdžiui, 10 bitų 5 V mikrovaldiklyje, kai tikroji matuojama įtampa yra 4 V, MCU jį perskaitys kaip 820, mes vėl galime naudoti aukščiau aptartas formules 820 konvertuoti į 4 V, kad galėtume jį naudoti savo skaičiavimai. Leidžia patikrinti tą patį.
(ADC skiriamoji geba / darbinė įtampa) = (ADC skaitmeninė vertė / faktinė įtampos vertė) Faktinė įtampos vertė = ADC skaitmeninė vertė * (darbinė įtampa / ADC skiriamoji geba) = 820 * (5/1023) = 4,007 = ~ 4V
Tikiuosi, kad supratote teisingą ADC idėją ir kaip jas naudoti savo programoms. Jei kilo problemų suprasti sąvokas, nedvejodami rašykite savo komentarus žemiau arba rašykite mūsų forumuose.