Language Switcher Fallback

Digitaal ja analoog sisend

Sisukord

Elektroonikas saab signaalid (süsteemis liikuva informatsiooni) jaotada kahte kategooriasse: digitaalseks ja analoogseks.

Digitaalsel signaalil on ainult kaks tähenduslikku väärtust: 0 ja 1. Kõige lihtsam digitaalne seade on lüliti või surunupp - see on kas kokkuühendatud või lahtises asendis. See on 1 bit informatsiooni. Digitaalsete väärtustega on võimalik edastada või salvestada ka suurel hulgal informatsiooni. Tähemärgid, värvitoonid, helisagedused ja muu informatsioon on kokkulepitud failiformaatide abil kodeeritav numbriliseks, numbreid saab väljendada kahendsüsteemis ehk 0-de ja 1-de abil. Kogu "arvutustehnika" töötab sel viisil. Enama kui ühe bitise informatsiooni edastamiseks kirjutatakse või loetakse väljundi/sisendi väärtust mingil kokkulepitud hetkel, vastuvõtja salvestab selle väärtuse, ning järgmisel ettenähtud hetkel vahetatakse järgmine bit. Õigete hetkede sünkroniseerimiseks tavaliselt on teisel väljundil/sisendil tiksumas niinimetatud clock signaal.

Digitaalse signaali väärtus 1 on Arduino puhul toitepinge ehk 5V läheduses, 0 on GND läheduses. Aga seal on omajagu mänguruumi, kuna ideaalset pinge väärtust on keerukas genereerida. Vahepeale jääb ka pingevahemik, mida ei saa lugeda ei 1-ks ega 0-ks, ning seda ei tohi lugeda informatsiooniks.

 

Analoog signaal tähendab, et lubatud väärtusi on enam kui 2. Tähenduslik on nii 0V, 0,75V, 3.1V jne. Päris analoog-elektroonikas on väärtuste vahel üleminek täiesti sujuv. Näiteks vanad raadiod ei sisalda midagi digitaalset, need võtavad õhust raadiolaine moduleeritud analoog-signaali, demoduleerivad selle helisageduslikuks signaaliks ning võimendavad selle kõlarisse. 0 ja 1 väärtusi selles ahelas ette ei tule.

Mikrokontrollerid on digitaalsed seadmed ja peavad analoog signaali mõistmiseks selle digitaalseks teisendama. Selle jaoks on neile sisse ehitatud analog to digital converter-id ehk ADC-d. ADC põhimõtteliselt mõõdab ära pinge, mis sisendile tuleb. Aga tema mõistab väärtusi, mis on diskreetsed ehk mittepidevad. Arduino ADC eraldusvõime ehk resolutsioon on 1024 bitti. Ehk siis, skaala nullist kuni 5 voldini jagatakse 1024-ks väärtuseks. Ja kui hoolikas jagamistehe annaks tulemuse 505,34, siis see ümardub 505 peale. Kontroller ei suuda eristada 505 ja 506 vahel väärtusi, kuigi analoog maailmas need eksisteerivad.

Analoog sisendi näiteks on potentsiomeeter, mida saab ühendada kahe muutuva õlaga pingejagurina. Samuti saab termotakistist ja tavalisest takistist teha pingejaguri. ADC-d töötavad ARduino analog pinidel (A0 ... A5, ...A7*). Pingejagur annab kontrolleri pinile mingi pinge, mis varieerub GND ja toitepinge vahepeal. Kontrolleri ADC tõlgib väärtuse mingiks numbriks 0-1023 vahemikus. Nt 2,5V on kontrolleri jaoks ADC väärtus 511.

 

Tulles tagasi nupu kui digitaalse sisendi juurde. Nupp üksi kontrolleri külge ühendatuna ei ole 0 ega 1. Et sobivat digitaalset GND või 5V lähedast signaali tekitada peab sisend olema igal ajal ühendatud skeemi 5V või GND-ga. Nupuga koos ühendatakse sisendile alati ka takisti (suure takistusega, nt 10 või 20 kilo-oomi). Takisti teine jalg ühendub kas GND või 5V-ga. Vastavalt sellele ühendusele nimetatakse seda takistist kas pull-down või pull-up takistiks. Nupu teine jalg ühendatakse vastavalt teise toite poolega.Näiteks pull-down takisti on ühendatud GND-ga ja nupp on ühendatud 5V-ga. Nüüd, kui nupp on lahtises asendis, siis on sisend pin takisti kaudu ühendatud GND-ga ja kontroller loeb sealt digitaalse siganaalina välja 0-i. Kui nuppu vajutatakse, siis tekib pingejagur, mille ülemine õlg on tühiselt väike (nupu takistus) ning alumine õlg (10k takisti) on suur. Selline pingejagur anna välja 5V lähedase pinge, mida kontroller mõistab kui 1-te.

 

Digitaalsel signaalil on väärtusi ainult 2, analoog signaali Arduino mõistab 1024 eri tasemena