Evo ovako. Postoje PIC16 mikrokontroleri koji nemaju integrisani A/D
konvertor. Na primer PIC16F84, 16F627, 16F628 i mnogi drugi (naveo sam
samo najpoznatije). Njima je ipak moguce izmeriti analognu vrednost
napona, ali koristeci eksterne A/D konvertore (posebna integrisana
kola) ili par hardversko/softverskih trikova. Program koji bi ovo
radio je tezi, i kao pocetniku ne bih Vam preporucio da pocnete sa
necim takvim.
Postoje opet PIC16 mikrokontroleri koji imaju integrisane A/D
konvertore. Na primer PIC16F88, PIC16F870, PIC16F877...
U PIC16 seriji postoji par tipova ovih A/D konvertora.
8-bitni A/Dkonvertor
10-bitni A/D konvertor
12-bitni A/D konvertor.
Glavna razlika izmedju ovih A/D konvertora je rezolucija merenja.
Ukoliko se meri napon izmedju 0 i +5V osmobitnim A/D konvertorom koji
daje b'00000000' za 0V i b'11111111' za 5V, rezolucija je
5V/256stanja=0.0195V.
Znaci
b'00000000' = 0V
b'00000001' = 0.195V
b'00000010' = 0.390V
b'00000011' = 0.234V
...
b'11111101' = 4.610V
b'11111110' = 4.805V
b'11111111' = 5V
Ukoliko imate 10-btini A/D konvertor, rezolucija je
5V/1024stanja=0.00488V odnosno sledeca:
b'00 00000000' = 0V
b'00 00000001' = 0.00488V
b'00 00000010' = 0.00976V
...
b'11 11111101' = 4.99024
b'11 11111110' = 4.99512
b'11 11111111' = 5V
Isto vazi i za 12-bitni A/D konvertor.
Kod nekih mikrokontrolera sa A/D konvertorima moguce je podesiti da se
umesto maksimalnog napona od +5V (uobicajenog) odabere neki drugi
(nizi). Ovo je pozeljno uraditi ukoliko mikrokontrolerom na primer
merite napon baterije od 1,5V. Nema svrhe uzeti kao maksimalni napon
5V, jer se on nikada nece moci dostici. Logicnije bi bilo odabrati
manji maksimalan napon (ovaj napon naziva se referentni), jer se
ukoliko je maksimalni napon npr. 2V dobilo sledece:
b'00000000' = 0V
...
b'11111111' = 2V
Referentni napon koji mozete ovako izabrati, nazalost ne sme biti veci
od napona napajanja mikrokontrolera, koji je uobicajeno 5V.
Da bi se mogli meriti veci naponi mora se koristiti naponski delitelj
(dva otpornika), kojim bi se ovaj napon "spustio" na dozvoljenih +5V.
Najverovatnije je takav princip primenjen prilikom merenja napona
akumulatora.
Naponski delitelj se mora dimenzionisati tako da "pokriva" i
maksimalni moguci mereni napon. Za akumulator u automobilu morao bi
bez problema meriti i do 18V, jer je moguce dobiti i toliki napon
prilikom veceg broja obrtaja morota.
Znaci:
b'00000000' = 0V
...
b'11111111' = 18V.
Pin koji se koristi za A/D konverziju mozete za Vas primerak
mikrokontrolera naci u datasheetu tog mikrokontrolera bez koga ne
mozete ni zamisliti ikakav rad. Datasheetove mozete naci na
www.microchip.com . Na primer ukucajte u polje za pretragu '16F877
datasheet'.
Vecina mikrokontrolera ima vise ulaza za A/D konverziju. Ovo ne znaci
da ima vise nezavisnih A/D konvertora, vec samo jedan, ali njega u
samom mikrokontroleru prebacuje sa jednog na drugi pin, u zavisnosti
od programa, po potrebi. Kao da ste na jedan jedini pin povezali 8
releja, tako da spolja ukljucenjem samo jednog releja birate koji ce
se napon meriti (kroz koji relej).
Na linku koji ste mi poslali privatnom porukom
http://www.rentron.com/PICX2.htm primenjen je upravo takav princip.
Iskoriscena su 3 A/D konvertora koji se fizicki nalaze na pinovima
porta A (RA0, RA1 i RA3). Meri se napon od minimalnog (0V - oznacenog
sa GND) do maksimalnog (+5V oznaceno sa VCC). Izmerene vrednosti sa
sva 3 A/D konvertora se prikazuju na inteligentnom (ko li mu dade
takvo ime) LCD displeju.