V tem projektu bomo povezali LDR z mikrokrmilnikom ATMEGA8 in s tem lahko izmerimo INTENZIVNOST SVETLOBE na območju. V ATMEGA8 bomo za merjenje jakosti svetlobe uporabili funkcijo 10-bitnega ADC (analogna v digitalno pretvorbo).
Am LDR je pretvornik, ki spremeni svoj upor, ko LIGHT pade na njegovo površino. LDR senzor je na voljo v različnih velikostih in oblikah.
LDR-ji so narejeni iz polprevodniških materialov, da jim omogočijo svetlobno občutljive lastnosti. Uporabljenih je veliko vrst materialov, priljubljen pa je KADMIJEV SULFID (CdS). Ti LDR-ji ali FOTO REISTORJI delujejo po principu "Photo Conductivity". To pravilo pravi zdaj, kadar koli svetloba pade na površino LDR (v tem primeru) se prevodnost elementa poveča ali z drugimi besedami se odpor LDR zmanjša, ko svetloba pade na površino LDR. Ta lastnost zmanjšanja upora za LDR je dosežena, ker je lastnost polprevodniškega materiala, ki se uporablja na površini. LDR se najpogosteje uporabljajo za zaznavanje prisotnosti svetlobe ali za merjenje jakosti svetlobe.
Kot je prikazano na zgornji sliki, obstajajo različne vrste LDR, ki imajo različne specifikacije. Običajno bo LDR imel 1MΩ-2MΩ pri popolni temi, 10-20KΩ pri 10 LUX, 2-5KΩ pri 100 LUX. Tipični graf LDR LUX je prikazan na sliki.
Kot je prikazano na zgornji sliki, se upor med obema kontaktoma senzorja zmanjša z jakostjo svetlobe ali pa se poveča prevodnost med dvema kontaktoma senzorja.
Za pretvorbo te spremembe odpornosti na spremembo napetosti bomo uporabili vezje delilnika napetosti. V tem uporovnem omrežju imamo en konstanten upor in drugi spremenljivi upor. Kot je prikazano na sliki, je R1 tukaj konstanten upor, R2 pa je FORCE senzor, ki deluje kot upor.
Srednja točka veje se meri. Ko se upor R2 spremeni, se Vout z njim linearno spremeni. Tako imamo s tem napetost, ki se spreminja s težo.
Zdaj je pomembno omeniti, da je vhod, ki ga krmilnik za pretvorbo ADC sprejme le 50 μAmp. Ta obremenitveni učinek napetostnega delilnika na osnovi upora je pomemben, saj tok, ki ga potegne Vout napetostnega delilnika, poveča odstotek napak, zato zaenkrat ni treba skrbeti za obremenitveni učinek.
Kar bomo tukaj naredili, bomo vzeli dva upora in oblikovali delilno vezje, tako da bomo za 25Volts Vin dobili 5Volt Vout. Torej vse, kar moramo storiti, je, da v programu pomnožimo vrednost Vout s "5", da dobimo dejansko vhodno napetost.
Komponente
Strojna oprema: ATMEGA8, napajalnik (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), kondenzator 100uF, kondenzator 100nF (5 kosov), upor 10KΩ, LDR (svetloodvisni upor).
Programska oprema: Atmel studio 6.1, progisp ali flash magic.
Shema vezja in delovna razlaga
V vezju PORTD ATMEGA8 je priključen na podatkovni vhod LCD. Na 16 * 2 LCD-ju je 16 zatičev, če je osvetlitev ozadja, če ni osvetlitve ozadja, bo 14 zatičev. Lahko napajate ali pustite zatiče zadnje luči. Sedaj v 14 zatiči obstaja 8 podatkovnih zatiči (7-14 ali D0-D7), 2 Mrežni zatiči (1 & 2 ali VSS in VDD ali gnd in +5), 3 rd pin za nadzor kontrasta (vee-kontrole kako debela mora biti znake prikazano) in 3 krmilni zatiči (RS & RW & E)
V vezju lahko opazite, da sem vzel le dva kontrolna zatiča. Kontrastni bit in READ / WRITE se ne uporabljata pogosto, zato jih je mogoče kratko skleniti na tla. To LCD zaslon postavi v najvišji kontrast in način branja. Samo nadzorovati moramo ENABLE in RS pin, da ustrezno pošljemo znake in podatke.
Na priključki za LCD so navedeni spodaj:
PIN1 ali VSS ------------------ ozemljitev
PIN2 ali VDD ali VCC ------------ + 5v moči
PIN3 ali VEE --------------- ozemljitev (daje največji kontrast najboljši za začetnike)
PIN4 ali RS (izbira registra) --------------- PB0 od uC
PIN5 ali RW (branje / pisanje) ----------------- ozemljitev (LCD v načinu branja olajša komunikacijo za uporabnika)
PIN6 ali E (omogoči) ------------------- PB1 od uC
PIN7 ali D0 ----------------------------- PD0 od uC
PIN8 ali D1 ----------------------------- PD1 od uC
PIN9 ali D2 ----------------------------- PD2 uC
PIN10 ali D3 ----------------------------- PD3 uC
PIN11 ali D4 ----------------------------- PD4 uC
PIN12 ali D5 ----------------------------- PD5 uC
PIN13 ali D6 ----------------------------- PD6 od uC
PIN14 ali D7 ----------------------------- PD7 od uC
V vezju lahko vidite, da smo uporabili 8-bitno komunikacijo (D0-D7), vendar to ni obvezno, lahko uporabimo 4-bitno komunikacijo (D4-D7), vendar s 4-bitnim komunikacijskim programom postane nekoliko zapleten. Iz zgolj opazovanja iz zgornje tabele torej na krmilnik priključimo 10 nožic LCD-ja, pri čemer je 8 nožic podatkovnih nožic in 2 nožici za nadzor.
Napetost na R2 ni popolnoma linearna; bo hrupno. Za filtriranje hrupa so kondenzatorji nameščeni čez vsak upor v delilnem vezju, kot je prikazano na sliki.
V ATMEGA8 lahko damo analogni vhod na katerega koli od ŠTIRIH kanalov PORTC-a, ni pomembno, kateri kanal bomo izbrali, saj so vsi enaki. Izbrali bomo kanal 0 ali PIN0 za PORTC. V ATMEGA8 je ADC 10-bitne ločljivosti, zato lahko krmilnik zazna minimalno spremembo Vref / 2 ^ 10, tako da če je referenčna napetost 5V, dobimo prirast digitalnega izhoda za vsakih 5/2 ^ 10 = 5mV. Tako bomo za vsakih 5mV prirastka na vhodu imeli prirastek enega pri digitalnem izhodu.
Zdaj moramo nastaviti register ADC glede na naslednje pogoje:
1. Najprej moramo v ADC omogočiti funkcijo ADC.
2. Tu bomo dobili največjo vhodno napetost za pretvorbo ADC + 5V. Tako lahko nastavimo največjo vrednost ali referenco ADC na 5V.
3. Krmilnik ima funkcijo pretvorbe sprožilca, kar pomeni, da se pretvorba ADC izvede šele po zunanjem sprožilcu, saj ne želimo, da bi morali registrirati, da ADC deluje v neprekinjenem načinu prostega teka.
4. Za kateri koli ADC sta frekvenca pretvorbe (analogna vrednost v digitalno vrednost) in natančnost digitalnega izhoda obratno sorazmerna. Za boljšo natančnost digitalnega izhoda moramo izbrati manj pogostost. Za običajno uro ADC nastavimo predprodajo ADC na največjo vrednost (2). Ker uporabljamo interno uro 1MHZ, bo ura ADC (1000000/2).
To so edine štiri stvari, ki jih moramo vedeti za začetek uporabe ADC.
Vse zgornje štiri lastnosti so nastavljene z dvema registroma,
RDEČA (ADEN): Ta bit je treba nastaviti, da omogočite funkcijo ADC ATMEGA.
MODRA (REFS1, REFS0): Ta dva bita se uporabljata za nastavitev referenčne napetosti (ali največje vhodne napetosti, ki jo bomo podali). Ker želimo imeti referenčno napetost 5V, je treba v tabeli nastaviti REFS0.
RUMENA (ADFR): Ta bit mora biti nastavljen, da ADC deluje neprekinjeno (način prostega teka).
PINK (MUX0-MUX3): Ti štirje biti služijo za sporočanje vhodnemu kanalu. Ker bomo uporabili ADC0 ali PIN0, nam ni treba nastaviti nobenih bitov kot v tabeli.
BROWN (ADPS0-ADPS2): ti trije biti so namenjeni nastavitvi predkalarja za ADC. Ker uporabljamo preskalar 2, moramo nastaviti en bit.
DARK GREEN (ADSC): ta bit je nastavljen za ADC, da začne pretvorbo. Ta bit lahko v programu onemogočite, ko moramo pretvorbo ustaviti.
Torej, z uporom LDR na LCD zaslonu 16x2, ga lahko primerjamo z grafom LUX za doseganje jakosti svetlobe.