Šajā projektā mēs saskarnēsim LDR ar ATMEGA8 mikrokontrolleru, un ar to mēs varēsim izmērīt Gaismas intensitāti apgabalā. ATMEGA8 mēs izmantosim 10 bitu ADC (Analog to Digital Conversion) funkciju, lai izmērītu gaismas intensitāti.
Am LDR ir devējs, kas maina savu pretestību, mainoties LIGHT uz tā virsmas. LDR sensors ir pieejams dažādos izmēros un formās.
LDR ir izgatavoti no pusvadītāju materiāliem, lai tiem būtu savas gaismas jutīgās īpašības. Izmantotie materiāli ir daudz veidu, taču populārs ir CADMIUM SULPHIDE (CdS). Šie LDR vai FOTO REISTORI darbojas pēc “Foto vadītspējas” principa. Šis princips saka vienmēr, kad gaisma nokrīt uz LDR virsmas (šajā gadījumā), palielinot elementa vadītspēju vai, citiem vārdiem sakot, LDR pretestība samazinās, kad gaisma nokrīt uz LDR virsmas. Šī pretestības samazināšanās īpašība pret LDR tiek sasniegta, jo tā ir pusvadītāju materiāla īpašība, ko izmanto uz virsmas. LDR visbiežāk izmanto gaismas klātbūtnes noteikšanai vai gaismas intensitātes mērīšanai.
Ir dažādi LDR veidi, kā parādīts iepriekšējā attēlā, un katram no tiem ir atšķirīgas specifikācijas. Parasti LDR būs 1MΩ-2MΩ pie pilnīgas tumsas, 10-20KΩ pie 10 LUX, 2-5KΩ pie 100 LUX. LDR tipiskā pretestība LUX grafikam parādīta attēlā.
Kā parādīts iepriekšējā attēlā, pretestība starp diviem sensora kontaktiem samazinās līdz ar gaismas intensitāti vai palielinās vadītspēja starp diviem sensora kontaktiem.
Tagad, lai pārveidotu šīs pretestības izmaiņas sprieguma izmaiņām, mēs izmantosim sprieguma dalītāja ķēdi. Šajā pretestības tīklā mums ir viena pastāvīga pretestība un cita mainīga pretestība. Kā parādīts attēlā, R1 šeit ir nemainīga pretestība, un R2 ir FORCE sensors, kas darbojas kā pretestība.
Zaru viduspunkts tiek mērīts. Mainoties pretestībai R2, Vout mainās ar to lineāri. Tātad ar to mums ir spriegums, kas mainās atkarībā no svara.
Šeit ir svarīgi atzīmēt, ka kontrollera ievadītā ADC pārveidošanas ievade ir tik maza kā 50µAmp. Šis uz pretestību balstītā sprieguma dalītāja slodzes efekts ir svarīgs, jo strāva, kas iegūta no sprieguma dalītāja Vout, palielina kļūdas procentu, tagad mums nav jāuztraucas par slodzes efektu.
Tas, ko mēs šeit darīsim, ir tas, ka mēs paņemsim divus rezistorus un izveidosim sadalītāja ķēdi tā, lai par 25 voltu Vin iegūtu 5 voltu Vout. Tāpēc viss, kas mums jādara, ir reizināt Vout vērtību ar “5” programmā, lai iegūtu reālo ieejas spriegumu.
Komponenti
Aparatūra: ATMEGA8, barošanas avots (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF kondensators, 100nF kondensators (5 gab.), 10KΩ rezistors, LDR (gaismas atkarīgais rezistors).
Programmatūra: Atmel studio 6.1, progisp vai flash magic.
Ķēdes shēma un darba skaidrojums
Kontūrā ATMEGA8 PORTD ir savienots ar datu porta LCD. 16 * 2 LCD ekrānā ir 16 tapas, ja ir aizmugures apgaismojums, ja nav aizmugures apgaismojuma, būs 14 tapas. Var darbināt vai atstāt aizmugurējās gaismas tapas. Tagad 14 tapas ir 8 datu tapas (7-14 vai D0-D7), 2 el piegādes tapas (1 un 2 vai VSS un VDD vai GND & + 5v), 3 rd pin kontrasta kontrole (Vee-kontrolē, cik biezu rakstzīmēm jābūt attēlā) un 3 vadības tapas (RS & RW & E)
Ķēdē jūs varat novērot, ka esmu paņēmis tikai divus vadības tapas. Kontrasta bits un READ / WRITE netiek bieži lietoti, tāpēc tos var saīsināt. Tas nodrošina LCD kontrasta un lasīšanas režīmu. Mums vienkārši jākontrolē ENABLE un RS tapas, lai atbilstoši nosūtītu rakstzīmes un datus.
Par savienojumi LCD ir šādi:
PIN1 vai VSS ------------------ zeme
PIN2 vai VDD vai VCC ------------ + 5v jauda
PIN3 vai VEE --------------- zeme (iesācējam vislabāk nodrošina maksimālu kontrastu)
PIN4 vai RS (Register Selection) --------------- PB0 no uC
PIN5 vai RW (lasīšana / rakstīšana) ----------------- zeme (LCD displejs tiek iestatīts lasīšanas režīmā, atvieglojot saziņu lietotājam)
PIN6 vai E (Iespējot) ------------------- PB1 no uC
PIN7 vai D0 ----------------------------- PD0 no uC
PIN8 vai D1 ----------------------------- PD1 no uC
PIN9 vai D2 - uC PD2
PIN10 vai D3 ----------------------------- PD3 no uC
PIN11 vai D4 - UC PD4
PIN12 vai D5 ----------------------------- PD5 no uC
PIN13 vai D6 ----------------------------- PD6 no uC
PIN14 vai D7 ----------------------------- PD7 no uC
Shēmā jūs varat redzēt, ka esam izmantojuši 8 bitu sakarus (D0-D7), taču tas nav obligāti, mēs varam izmantot 4 bitu sakarus (D4-D7), bet ar 4 bitu sakaru programma kļūst mazliet sarežģīta. Tātad, vienkārši novērojot no tabulas augšpusē, mēs savienojam 10 LCD tapas ar kontrolieri, kurā 8 tapas ir datu tapas un 2 tapas kontrolei.
Spriegums pāri R2 nav pilnīgi lineārs; tas būs trokšņains. Lai filtrētu, trokšņa kondensatori tiek novietoti pāri katram sadalītāja ķēdes rezistoram, kā parādīts attēlā.
ATMEGA8 mēs varam dot analogo ievadi jebkuram no ČETriem PORTC kanāliem, nav svarīgi, kuru kanālu mēs izvēlamies, jo visi ir vienādi. Mēs izvēlēsimies PORTC 0 kanālu vai PIN0. ATMEGA8 ADC ir 10 bitu izšķirtspēja, tāpēc kontrolieris var noteikt minimālas izmaiņas Vref / 2 ^ 10, tādēļ, ja atskaites spriegums ir 5 V, mēs iegūstam digitālo izejas pieaugumu par katriem 5/2 ^ 10 = 5mV. Tātad par katru 5mV pieaugumu ieejā mums būs pieaugums viens pie digitālās izejas.
Tagad mums ir jāizveido ADC reģistrs, pamatojoties uz šādiem noteikumiem:
1. Vispirms mums ir jāiespējo ADC funkcija ADC.
2. Šeit tiks parādīts maksimālais ieejas spriegums ADC pārveidošanai ir + 5V. Tātad mēs varam iestatīt ADC maksimālo vērtību vai atsauci uz 5V.
3. Kontrolierim ir trigera pārveidošanas funkcija, kas nozīmē, ka ADC pārveidošana notiek tikai pēc ārēja trigera, jo mēs nevēlamies, lai mums būtu jāiestata reģistri, lai ADC darbotos nepārtrauktā brīvas darbības režīmā.
4. Jebkurai ADC pārveidošanas biežums (analogās vērtības pret digitālo vērtību) un digitālās izejas precizitāte ir apgriezti proporcionāla. Tāpēc, lai uzlabotu digitālās izejas precizitāti, mums jāizvēlas mazāka frekvence. Normālam ADC pulkstenim mēs iestatām ADC sākotnējo vērtību līdz maksimālajai vērtībai (2). Tā kā mēs izmantojam 1MHZ iekšējo pulksteni, ADC pulkstenis būs (1000000/2).
Šīs ir vienīgās četras lietas, kas mums jāzina, lai sāktu darbu ar ADC.
Visas iepriekš minētās četras funkcijas nosaka divi reģistri,
RED (ADEN): Šis bits ir jāiestata, lai iespējotu ATMEGA ADC funkciju.
ZILA (REFS1, REFS0): Šie divi biti tiek izmantoti, lai iestatītu atsauces spriegumu (vai maksimālo ieejas spriegumu, kuru mēs piešķiram). Tā kā mēs vēlamies, lai atskaites spriegums būtu 5 V, REFS0 būtu jāiestata tabulā.
DZELTENS (ADFR): Šis bits ir jāiestata, lai ADC darbotos nepārtraukti (brīvās darbības režīms).
PINK (MUX0-MUX3): Šie četri biti ir paredzēti ieejas kanāla atrašanai. Tā kā mēs izmantosim ADC0 vai PIN0, mums nav jāiestata biti kā pēc tabulas.
BROWN (ADPS0-ADPS2): šie trīs biti ir paredzēti, lai iestatītu ADC preskalāru. Tā kā mēs izmantojam preskalāru 2, mums ir jāiestata viens bits.
DARK GREEN (ADSC): šis bits ir iestatīts ADC, lai sāktu pārveidošanu. Šo bitu var atspējot programmā, kad mums jāpārtrauc konvertēšana.
Tātad ar LDR pretestību 16x2 LCD ekrānā mēs varam to saskaņot ar LUX grafiku, lai iegūtu gaismas intensitāti.