- Analogni svet z digitalno elektroniko
- Kaj je ADC in kako ga uporabljati?
- Ločljivost (bitov) in kanali v ADC
- Referenčna napetost za ADC
- Primer
- Vrste ADC in delovanje
- Nekaj pogostih vprašanj o ADC
Analogni svet z digitalno elektroniko
Nekaj let nazaj so bile celotne elektronske naprave, ki jih danes uporabljamo, kot so telefoni, računalniki, televizorji itd., Analogne narave. Nato so fiksne telefone počasi zamenjali sodobni mobilni telefoni, CRT televizorje in monitorje zamenjali LED-prikazovalniki, računalniki z vakuumskimi cevmi so postali močnejši z mikroprocesorji in mikrokrmilniki v njih itd.
V današnji digitalni dobi smo vsi obkroženi z naprednimi digitalnimi elektronskimi napravami, kar nas lahko zavede, če mislimo, da je vse okoli nas digitalno, kar pa ni res. Svet je bil od nekdaj analogen, na primer vse, kar čutimo in doživljamo ljudje, kot so hitrost, temperatura, hitrost zraka, sončna svetloba, zvok itd., Je analogne narave. Toda naše elektronske naprave, ki delujejo na mikrokrmilnikih in mikroprocesorjih, ne morejo neposredno brati / interpretirati teh analognih vrednosti, ker delujejo samo na 0 in 1. Torej potrebujemo nekaj, kar bo pretvorilo vse te analogne vrednosti v 0 in 1, da jih bodo lahko razumeli naši mikrokrmilniki in mikroprocesorji. To se imenuje analogno-digitalni pretvornik ali na kratko ADC. V tem članku se bomo naučilivse o ADC in kako jih uporabiti.
Kaj je ADC in kako ga uporabljati?
Kot smo že omenili, ADC pomeni analogno v digitalno pretvorbo in se uporablja za pretvorbo analognih vrednosti iz resničnega sveta v digitalne vrednosti, kot so 1 in 0. Torej, katere so te analogne vrednosti? To so tiste, ki jih vidimo v vsakdanjem življenju, kot so temperatura, hitrost, svetlost itd. Toda počakajte !! Ali lahko ADC pretvori temperaturo in hitrost neposredno v digitalne vrednosti, kot sta 0 in 1?
Ne kljubovalno ne. ADC lahko pretvori samo analogne vrednosti napetosti v digitalne vrednosti. Torej, kateri koli parameter želimo izmeriti, ga je treba najprej pretvoriti v napetost, to pretvorbo lahko izvedemo s pomočjo senzorjev. Na primer za pretvorbo temperaturnih vrednosti v napetost lahko uporabimo termistor podobno za pretvorbo svetlosti v napetost lahko uporabimo LDR. Ko se pretvori v napetost, jo lahko preberemo s pomočjo ADC-jev.
Da bi vedeli, kako uporabljati ADC, se moramo najprej seznaniti z nekaterimi osnovnimi izrazi, kot so ločljivost kanalov, domet, referenčna napetost itd.
Ločljivost (bitov) in kanali v ADC
Ko preberete specifikacijo katerega koli mikrokrmilnika ali ADC IC, bodo podrobnosti ADC podane z uporabo izrazov kanali in ločljivost (bitov). Na primer ATmega328 Arduino UNO ima 8-kanalni 10-bitni ADC. Vsak zatič na mikrokrmilniku ne more prebrati analogne napetosti, izraz 8-kanalni pomeni, da je na tem mikrokrmilniku ATmega328 8 zatičev, ki lahko bere analogno napetost in vsak zatič lahko odčita napetost z ločljivostjo 10-bitov. To se razlikuje za različne vrste mikrokrmilnikov.
Predpostavimo, da je naš obseg ADC od 0V do 5V in imamo 10-bitni ADC, kar pomeni, da bo naša vhodna napetost 0-5 voltov razdeljena na 1024 ravni diskretnih analognih vrednosti (2 10 = 1024). Pomen 1024 je ločljivost za 10-bitni ADC, podobno za 8-bitni ADC bo ločljivost 512 (2 8) in za 16-bitno ločljivost ADC bo 65.536 (2 16).
Če je dejanska vhodna napetost 0V, jo ADC MCU-ja odčita kot 0 in če je 5V, MCU odčita 1024 in če je nekje vmes približno 2,5V, potem MCU odčita 512. Lahko uporabimo spodnje formule za izračun digitalne vrednosti, ki jo bo prebral MCU na podlagi ločljivosti ADC in delovne napetosti.
[Ločljivost ADC / delovna napetost] = (Digitalna vrednost ADC / dejanska vrednost napetosti)
Referenčna napetost za ADC
Drug pomemben izraz, ki ga morate poznati, je referenčna napetost. Med pretvorbo ADC vrednost neznane napetosti najdemo s primerjavo z znano napetostjo, ta znana napetost se imenuje referenčna napetost. Običajno imajo vsi MCU možnost nastavitve notranje referenčne napetosti, kar pomeni, da lahko to napetost interno nastavite na določeno razpoložljivo vrednost s pomočjo programske opreme (programa). Na plošči Arduino UNO je referenčna napetost privzeto notranje nastavljena na 5V, če lahko uporabnik to referenčno napetost nastavi zunaj prek zatiča Vref tudi po izvedbi potrebnih sprememb v programski opremi.
Vedno upoštevajte, da mora biti izmerjena vrednost analogne napetosti vedno manjša od vrednosti referenčne napetosti, referenčna vrednost napetosti pa mora biti vedno manjša od vrednosti delovne napetosti mikrokrmilnika.
Primer
Tu je primer ADC, ki ima 3-bitno ločljivost in 2V referenčno napetost. Tako lahko preslika analogno napetost 0-2v z 8 (2 3) različnimi nivoji, kot je prikazano na spodnji sliki:
Torej, če je analogna napetost 0,25, bo digitalna vrednost 1 v decimalki in 001 v binarni vrednosti. Če je analogna napetost 0,5, bo digitalna vrednost 2 v decimalki in 010 v binarni vrednosti.
Nekateri mikrokrmilniki imajo vgrajen ADC, kot so Arduino, MSP430, PIC16F877A, nekateri mikrokrmilniki pa ga nimajo, na primer 8051, Raspberry Pi itd.
Spodaj najdete različne primere ADC z različnimi mikrokrmilniki:
- Kako uporabljati ADC v Arduino Uno?
- Vadnica za ADC Raspberry Pi
- Povezava ADC0808 z mikrokrmilnikom 8051
- 0-25V digitalni voltmeter z uporabo mikrokrmilnika AVR
- Kako uporabljati ADC v STM32F103C8
- Kako uporabljati ADC v MSP430G2
Vrste ADC in delovanje
Obstaja veliko vrst ADC, najpogosteje uporabljeni so Flash ADC, dvojni naklon ADC, zaporedni približek in dvojni naklon ADC. Pojasniti, kako bi bilo vsako od teh ADC-jev in razlika med njimi izven področja uporabe tega članka, saj so dokaj zapleteni. Toda za grobo predstavo ima ADC notranji kondenzator, ki se bo polnil z analogno napetostjo, ki jo je treba izmeriti. Nato vrednost napetosti izmerimo tako, da v določenem času praznimo kondenzator.
Nekaj pogostih vprašanj o ADC
Kako izmeriti več kot 5V z mojim ADC?
Kot smo že omenili, modul ADC ne more izmeriti napetosti več kot delovna napetost mikrokrmilnika. To je 5V mikrokrmilnik, ki lahko s svojim ADC zatičem izmeri le največ 5V. Če želite izmeriti kaj več od omenjenega, želite izmeriti 0-12V, potem lahko 0-12V preslikate v 0-5V z uporabo potencialnega vezja ali delilnika napetosti. To vezje bo uporabilo par uporov za preslikavo vrednosti MCU, več informacij o vezju delilnika napetosti lahko izvedete s pomočjo povezave. Za zgornji primer bi morali na vir napetosti zaporedno uporabiti upor 1K in upor 720 ohmov ter izmeriti napetost med upori, kot je opisano v zgornji povezavi.
Kako pretvoriti digitalne vrednosti iz ADC v dejanske napetostne vrednosti?
Pri uporabi pretvornika ADC za merjenje analogne napetosti bo rezultat MCU-ja digitalni. Na primer, v 10-bitnem 5V mikrokrmilniku, ko je dejanska napetost, ki jo je treba izmeriti, 4V, jo MCU prebere kot 820, lahko znova uporabimo zgoraj obravnavane formule za pretvorbo 820 v 4V, da jo lahko uporabimo v našem izračuni. Naj isto preverimo.
[Ločljivost ADC / Delovna napetost] = (Digitalna vrednost ADC / Dejanska vrednost napetosti) Dejanska vrednost napetosti = Digitalna vrednost ADC * (Delovna napetost / Ločljivost ADC) = 820 * (5/1023) = 4,007 = ~ 4V
Upam, da imate pošteno predstavo o ADC in kako jih uporabiti za svoje aplikacije. Če ste imeli kakršne koli težave pri razumevanju konceptov, lahko komentarje objavite spodaj ali jih napišete na naših forumih.