Šiame projekte mes ketiname susieti LDR su ATMEGA8 mikrovaldikliu, ir mes galime išmatuoti šviesos intensyvumą šioje srityje. ATMEGA8 šviesos intensyvumui matuoti naudosime 10 bitų ADC („Analog to Digital Conversion“) funkciją.
„Am LDR“ yra keitiklis, kuris keičia savo atsparumą, kai LIGHT krenta ant jo paviršiaus. LDR jutiklis yra įvairių dydžių ir formų.
LDR yra pagaminti iš puslaidininkinių medžiagų, kad jie turėtų savo šviesai jautrias savybes. Yra daugybė naudojamų medžiagų rūšių, tačiau viena populiari yra CADMIUM SULFID (CdS). Šie LDR arba NUOTRAUKŲ REISTORAI veikia „Foto laidumo“ principu. Dabar sakoma, kad šis principas yra toks, kai šviesa patenka į LDR paviršių (šiuo atveju) padidėja elemento laidumas arba, kitaip tariant, sumažėja LDR atsparumas, kai šviesa patenka į LDR paviršių. Ši LDR atsparumo sumažėjimo savybė pasiekiama, nes tai yra puslaidininkių medžiagos, naudojamos paviršiuje, savybė. LDR dažniausiai naudojami šviesos buvimui nustatyti arba šviesos intensyvumui matuoti.
Yra įvairių tipų LDR, kaip parodyta aukščiau esančiame paveikslėlyje, ir kiekvieno jų specifikacijos skiriasi. Paprastai LDR bus 1MΩ-2MΩ esant visai tamsai, 10-20KΩ esant 10 LUX, 2-5KΩ esant 100 LUX. Tipinis LDR atsparumas LUX grafikui parodytas paveiksle.
Kaip parodyta aukščiau esančiame paveikslėlyje, pasipriešinimas tarp dviejų jutiklio kontaktų mažėja šviesos intensyvumui arba padidėja laidumas tarp dviejų jutiklio kontaktų.
Norėdami konvertuoti šį atsparumo pokyčius įtampos pokyčiams, mes naudosime įtampos daliklio grandinę. Šiame varžiniame tinkle mes turime vieną pastovią varžą ir kitą kintamą varžą. Kaip parodyta paveiksle, R1 čia yra pastovi varža, o R2 yra JĖGOS jutiklis, kuris veikia kaip pasipriešinimas.
Šakos vidurio taškas imamas matuoti. Keičiantis atsparumui R2, Vout kinta kartu su juo tiesiškai. Taigi mes turime įtampą, kuri kinta priklausomai nuo svorio.
Dabar svarbu atkreipti dėmesį į tai, kad valdiklio įvestas ADC konversijos rodiklis yra vos 50µAmp. Šis atsparumo pagrindu įtampos daliklio apkrovos poveikis yra svarbus, nes srovė, gaunama iš įtampos daliklio Vout, padidina paklaidos procentą, kol kas mes neturime jaudintis dėl apkrovos efekto.
Tai, ką mes čia darysime, paimsime du rezistorius ir suformuosime skirstytuvo grandinę, kad už 25 voltų „Vin“ gautume 5 voltų „Vout“. Taigi viskas, ką turime padaryti, yra programos Vout reikšmės padauginimas iš „5“, kad gautume tikrąją įėjimo įtampą.
Komponentai
Aparatūra: ATMEGA8, maitinimo šaltinis (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF kondensatorius, 100nF kondensatorius (5 vnt.), 10KΩ rezistorius, LDR (nuo šviesos priklausomas rezistorius).
Programinė įranga: „ Atmel studio 6.1“, „progisp“ arba „flash magic“.
Grandinės schema ir darbo paaiškinimas
ATMEGA8 grandinėje PORTD yra prijungtas prie duomenų prievado LCD. 16 * 2 skystųjų kristalų ekrane yra 16 kontaktų, jei yra užpakalinė lemputė, jei nėra užpakalinės šviesos, bus 14 kontaktų. Galima maitinti arba palikti galinio apšvietimo kaiščius. Dabar 14 kaiščių yra 8 duomenų kaiščiai (7-14 arba D0-D7), 2 elektros tiekimo kaiščių (1 & 2 arba Vss & VDD arba GND & + 5V), 3 -oji kaištis kontrasto valdymas (V formos,-kontroliuoja, kaip storio simboliai turėtų būti parodyta) ir 3 valdymo kaiščiai (RS & RW & E)
Grandinėje galite pastebėti, kad aš paėmiau tik du valdymo kaiščius. Kontrasto bitai ir READ / WRITE nėra dažnai naudojami, todėl juos galima sutrumpinti. Tai padidina LCD kontrasto ir skaitymo režimą. Mes tiesiog turime valdyti ENABLE ir RS smeigtukus, kad galėtume atitinkamai siųsti simbolius ir duomenis.
Į LCD jungtys yra pateikti žemiau:
PIN1 arba VSS ------------------ žemė
PIN2 arba VDD arba VCC ------------ + 5v maitinimas
PIN3 arba VEE --------------- žemė (pradedantiesiems geriausiai suteikia maksimalų kontrastą)
PIN4 arba RS (registro pasirinkimas) --------------- uC PB0
PIN5 arba RW (skaitymas / rašymas) ----------------- įžeminimas (LCD ekranas perkeliamas į skaitymo režimą, palengvina vartotojo ryšį)
PIN6 arba E (įjungti) - uC PB1
PIN7 arba D0 ----------------------------- PD0 iš uC
PIN8 arba D1 ----------------------------- PD uC
PIN9 arba D2 ----------------------------- PD2 iš uC
PIN10 arba D3 ----------------------------- PD3 iš uC
PIN11 arba D4 ----------------------------- uC PD4
PIN12 arba D5 ----------------------------- PD5 iš uC
PIN13 arba D6 ----------------------------- PD uC
PIN14 arba D7 ----------------------------- PD7 iš uC
Grandinėje galite pamatyti, kad mes naudojome 8 bitų ryšį (D0-D7), tačiau tai nėra privaloma, mes galime naudoti 4 bitų ryšį (D4-D7), tačiau su 4 bitų ryšio programa tampa šiek tiek sudėtinga. Taigi vien nuo stebėjimo iš viršaus lentelės prijungiame 10 LCD kontaktų su valdikliu, kuriame 8 kontaktai yra duomenų ir 2 kaiščiai valdymui.
R2 įtampa nėra visiškai tiesinė; tai bus triukšmingas. Norėdami išfiltruoti, triukšmo kondensatoriai dedami ant kiekvieno rezistoriaus skirstytuvo grandinėje, kaip parodyta paveikslėlyje.
ATMEGA8 mes galime suteikti analoginę įvestį bet kuriam iš KETURIŲ PORTC kanalų, nesvarbu, kurį kanalą pasirenkame, nes visi yra vienodi. Mes pasirinksime PORTC 0 kanalą arba PIN0. ATMEGA8 ADC yra 10 bitų skiriamoji geba, todėl valdiklis gali aptikti minimalų Vref / 2 ^ 10 pokytį, taigi, jei atskaitos įtampa yra 5 V, gauname skaitmeninį išėjimo prieaugį kiekvieniems 5/2 ^ 10 = 5mV. Taigi už kiekvieną 5mV įvesties prieaugį skaitmeniniame išėjime turėsime po vieną.
Dabar turime nustatyti ADC registrą, remdamiesi šiais terminais:
1. Pirmiausia turime įgalinti ADC funkciją ADC.
2. Čia gausime didžiausią įėjimo įtampą ADC konversijai + 5V. Taigi galime nustatyti didžiausią ADC vertę arba nuorodą į 5 V.
3. Valdiklis turi paleidimo konversijos funkciją, kuri reiškia, kad ADC konversija vyksta tik po išorinio trigerio, nes mes nenorime, kad mums reikia nustatyti registrus, kad ADC veiktų nepertraukiamai laisvai veikiant.
4. Bet kokiam ADC konversijų dažnis (analoginė vertė į skaitmeninę vertę) ir skaitmeninės išvesties tikslumas yra atvirkščiai proporcingi. Taigi, norėdami geresnio skaitmeninio išvesties tikslumo, turime pasirinkti mažesnį dažnį. Normaliam ADC laikrodžiui nustatome išankstinį ADC vertę iki didžiausios vertės (2). Kadangi mes naudojame vidinį 1MHz laikrodį, ADC laikrodis bus (1000000/2).
Tai yra vieninteliai keturi dalykai, kuriuos turime žinoti, norėdami pradėti naudoti ADC.
Visas minėtas keturias ypatybes nustato du registrai,
RED (ADEN): Šis bitas turi būti nustatytas norint įjungti ATMEGA ADC funkciją.
MĖLYNA (REFS1, REFS0): Šie du bitai naudojami nustatyti etaloninę įtampą (arba maksimalią įėjimo įtampą, kurią ketiname suteikti). Kadangi norime, kad atskaitos įtampa būtų 5 V, REFS0 turėtų būti nustatyta pagal lentelę.
GELTONA (ADFR): Šis bitas turi būti nustatytas, kad ADC veiktų nuolat (laisvo veikimo režimas).
PINK (MUX0-MUX3): Šie keturi bitai skirti įvesties kanalui pasakyti. Kadangi mes ketiname naudoti ADC0 arba PIN0, nereikia nustatyti jokių bitų, kaip nurodyta lentelėje.
BROWN (ADPS0-ADPS2): šie trys bitai skirti nustatyti išankstinį ADC skalę. Kadangi mes naudojame 2 išankstinį skalę, turime nustatyti vieną bitą.
DARK GREEN (ADSC): šis bitas nustatytas ADC pradėti konversiją. Šį bitą programoje galima išjungti, kai mums reikia sustabdyti konversiją.
Taigi, turėdami LDR atsparumą 16x2 LCD ekrane, galime jį suderinti su LUX grafiku, kad gautume šviesos intensyvumą.