U ovom ćemo projektu povezati LDR s mikrokontrolerom ATMEGA8, a pomoću toga možemo izmjeriti INTENZITET SVJETLA na tom području. U ATMEGA8 koristit ćemo 10-bitnu ADC (analogno u digitalnu pretvorbu) značajku za mjerenje intenziteta svjetlosti.
Am LDR je pretvarač koji mijenja svoj otpor kad se SVJETLOST padne na njegovu površinu. LDR senzor dostupan je u različitim veličinama i oblicima.

LDR su izrađeni od poluvodičkih materijala kako bi im omogućili njihova svojstva osjetljiva na svjetlost. Koriste se mnoge vrste materijala, ali jedan od popularnih je KADMIJ SULFID (CdS). Ovi LDR-ovi ili FOTO REISTORI rade na principu "Photo Conductivity". Ovo što kaže ovo načelo je kad god svjetlost padne na površinu LDR-a (u ovom slučaju) provodljivost elementa se povećava ili drugim riječima otpor LDR-a smanjuje kad svjetlost padne na površinu LDR-a. Ovo svojstvo smanjenja otpora za LDR postiže se jer je svojstvo poluvodičkog materijala koji se koristi na površini. LDR se najčešće koriste za otkrivanje prisutnosti svjetlosti ili za mjerenje intenziteta svjetlosti.
Postoje različite vrste LDR-a kao što je prikazano na gornjoj slici i svaka ima različite specifikacije. Tipično će LDR imati 1MΩ-2MΩ pri ukupnoj tami, 10-20KΩ pri 10 LUX, 2-5KΩ pri 100 LUX. Tipični graf otpornosti na LUX LDR-a prikazan je na slici.

Kao što je prikazano na gornjoj slici, otpor između dva kontakta senzora smanjuje se s intenzitetom svjetlosti ili se povećava vodljivost između dva kontakta senzora.
Sada ćemo za pretvaranje ove promjene otpora na promjenu napona upotrijebiti krug djelitelja napona. U ovoj otpornoj mreži imamo jedan stalni otpor i drugi promjenjivi otpor. Kao što je prikazano na slici, R1 je ovdje konstantan otpor, a R2 je SILA senzor koji djeluje kao otpor.

Srednja točka grane uzima se za mjerenje. Kada se otpor R2 promijeni, Vout se s njim linearno mijenja. Tako imamo napon koji se mijenja s težinom.
Ovdje je važno napomenuti da je ulazni signal regulatora za ADC konverziju nizak od 50µAmp. Ovaj učinak opterećenja djelitelja napona zasnovan na otporu važan je jer struja povučena iz Vout napona-djelitelja povećava postotak pogreške i povećava se za sada ne moramo brinuti o učinku opterećenja.
Ono što ćemo ovdje učiniti je da uzmemo dva otpornika i oblikujemo djeliteljski krug tako da za 25-voltnog Vina dobijemo 5-voltni izlaz. Dakle, sve što moramo učiniti je pomnožiti Vout vrijednost s "5" u programu kako bismo dobili stvarni ulazni napon.
Komponente
Hardver: ATMEGA8, napajanje (5v), AVR-ISP PROGRAMER, JHD_162ALCD (16 * 2LCD), kondenzator 100uF, kondenzator 100nF (5 komada), otpornik 10KΩ, LDR (otpornik ovisan o svjetlu).
Softver: Atmel studio 6.1, progisp ili flash magic.
Kružni dijagram i radno objašnjenje
U krugu PORTD ATMEGA8 spojen je na LCD ulaz podataka. Na 16 * 2 LCD-u postoji 16 pinova, ako postoji pozadinsko svjetlo, ako nema pozadinskog svjetla, bit će 14 pinova. Može se napajati ili ostaviti igle stražnjeg svjetla. Sada u 14 pinova postoji 8 pinova za podatke (7-14 ili D0-D7), 2 pina za napajanje (1 i 2 ili VSS & VDD ili gnd & + 5v), treći pinski za kontrolu kontrasta (VEE - kontrolira koliko debeli znakovi trebaju biti prikazano) i 3 upravljačka zatiča (RS & RW & E)
U krugu možete primijetiti da sam uzeo samo dvije upravljačke igle. Kontrastni bit i READ / WRITE se ne koriste često, tako da se mogu kratko spojiti na masu. Ovo LCD postavlja u najveći kontrast i način čitanja. Samo trebamo kontrolirati ENABLE i RS igle da bi u skladu s tim slali znakove i podatke.
U priključci za LCD su dati u nastavku:
PIN1 ili VSS ------------------ uzemljenje
PIN2 ili VDD ili VCC ------------ + 5v snage
PIN3 ili VEE --------------- uzemljenje (daje maksimalni kontrast najbolji za početnike)
PIN4 ili RS (odabir registra) --------------- PB0 od uC
PIN5 ili RW (čitanje / pisanje) ----------------- (stavlja LCD u način čitanja olakšava komunikaciju za korisnika)
PIN6 ili E (Omogući) ------------------- PB1 od uC
PIN7 ili D0 ----------------------------- PD0 od uC
PIN8 ili D1 ----------------------------- PD1 od uC
PIN9 ili D2 ----------------------------- PD2 od uC
PIN10 ili D3 ----------------------------- PD3 od uC
PIN11 ili D4 ----------------------------- PD4 od uC
PIN12 ili D5 ----------------------------- PD5 od uC
PIN13 ili D6 ----------------------------- PD6 od uC
PIN14 ili D7 ----------------------------- PD7 od uC
U krugu možete vidjeti da smo koristili 8-bitnu komunikaciju (D0-D7), međutim to nije obvezno, možemo koristiti 4-bitnu komunikaciju (D4-D7), ali s 4-bitnim komunikacijskim programom postaje pomalo složen. Dakle, iz pukog promatranja iz gornje tablice spajamo 10 pinova LCD-a na kontroler u kojem su 8 pinova podatkovne i 2 pina za kontrolu.

Napon na R2 nije potpuno linearan; bit će bučna. Za filtriranje kondenzatori buke postavljeni su preko svakog otpora u djeliteljskom krugu, kao što je prikazano na slici.
U ATMEGA8 možemo dati analogni ulaz na bilo koji od ČETIRI kanala PORTC-a, nije važno koji ćemo kanal odabrati jer su svi isti. Izabrat ćemo kanal 0 ili PIN0 PORTC-a. U ATMEGA8, ADC je 10-bitne razlučivosti, tako da regulator može otkriti minimalnu promjenu Vref / 2 ^ 10, pa ako je referentni napon 5V, dobit ćemo digitalni priraštaj izlaza za svakih 5/2 ^ 10 = 5mV. Dakle, za svakih 5mV prirasta na ulazu imat ćemo priraštaj od jednog na digitalnom izlazu.
Sada moramo postaviti registar ADC-a na temelju sljedećih pojmova:
1. Prije svega moramo omogućiti značajku ADC u ADC-u.
2. Ovdje ćemo dobiti maksimalni ulazni napon za ADC pretvorbu od + 5V. Tako možemo postaviti maksimalnu vrijednost ili referencu ADC-a na 5V.
3. Kontroler ima značajku pretvorbe okidača što znači da se pretvorba ADC-a odvija samo nakon vanjskog okidača, jer ne želimo da moramo postaviti registre da ADC radi u kontinuiranom slobodnom načinu rada.
4. Za bilo koji ADC, učestalost pretvorbe (analogna vrijednost u digitalnu vrijednost) i točnost digitalnog izlaza su obrnuto proporcionalne. Stoga za bolju točnost digitalnog izlaza moramo odabrati manju frekvenciju. Za normalni ADC sat postavljamo pretprodaju ADC-a na maksimalnu vrijednost (2). Budući da koristimo interni takt od 1 MHz, ADC će biti (1000000/2).
To su jedine četiri stvari koje moramo znati da bismo započeli s ADC-om.
Sve gore navedene četiri značajke postavljaju dva registra,


CRVENA (ADEN): Ovaj bit mora biti postavljen za omogućavanje ADC značajke ATMEGA-e.
PLAVO (REFS1, REFS0): Ova dva bita koriste se za postavljanje referentnog napona (ili maksimalnog ulaznog napona koji ćemo dati). Budući da želimo imati referentni napon 5V, treba postaviti tablicu REFS0.

ŽUTI (ADFR): Ovaj bit mora biti postavljen da bi se ADC neprekidno izvodio (način slobodnog rada).
PINK (MUX0-MUX3): Ova četiri bita služe za prepoznavanje ulaznog kanala. Budući da ćemo koristiti ADC0 ili PIN0, ne trebamo postavljati nikakve bitove kao u tablici.

SMEĐE (ADPS0-ADPS2): ova tri bita služe za podešavanje predskalara za ADC. Budući da koristimo pretkalar 2, moramo postaviti jedan bit.

TAMNO ZELENO (ADSC): ovaj bit postavljen za ADC da započne pretvorbu. Taj se bit može onemogućiti u programu kada moramo zaustaviti pretvorbu.
Dakle, s otporom LDR-a na LCD zaslonu 16x2, možemo ga usporediti s LUX grafom za postizanje intenziteta svjetlosti.
