V tomto projektu budeme propojovat LDR s mikrokontrolérem ATMEGA8 a tímto měříme LIGHT INTENSITY v dané oblasti. V ATMEGA8 použijeme k měření intenzity světla funkci 10bit ADC (Analog to Digital Conversion).
Am LDR je převodník, který mění svůj odpor, když na jeho povrchu dopadá SVĚTLO. Senzor LDR je k dispozici v různých velikostech a tvarech.
LDR jsou vyrobeny z polovodičových materiálů, aby mohly mít své vlastnosti citlivé na světlo. Existuje mnoho druhů použitých materiálů, ale populární je CADULUM SULPHIDE (CdS). Tyto LDR nebo FOTO REISTORY fungují na principu „ fotovodivosti “. Tento princip nyní říká, že kdykoli světlo dopadá na povrch LDR (v tomto případě), zvyšuje se vodivost prvku nebo jinými slovy odpor LDR klesá, když světlo dopadá na povrch LDR. Této vlastnosti snížení odporu pro LDR je dosaženo, protože je to vlastnost polovodičového materiálu použitého na povrchu. LDR se nejčastěji používají k detekci přítomnosti světla nebo k měření intenzity světla.
Existují různé typy LDR, jak je znázorněno na obrázku výše, a každá má jiné specifikace. Typicky LDR bude mít 1MΩ-2MΩ při úplné tmě, 10-20KΩ při 10 LUX, 2-5KΩ při 100 LUX. Typický graf odporu LUX LDR je uveden na obrázku.
Jak je znázorněno na obrázku výše, odpor mezi dvěma kontakty senzoru klesá s intenzitou světla nebo se zvyšuje vodivost mezi dvěma kontakty senzoru.
Nyní pro převod této změny odporu na změnu napětí použijeme obvod děliče napětí. V této odporové síti máme jeden konstantní odpor a další proměnný odpor. Jak je znázorněno na obrázku, R1 je zde konstantní odpor a R2 je snímač FORCE, který funguje jako odpor.
Střed větve se převede na měření. Když se změní odpor R2, Vout se s ním změní lineárně. Takže s tímto máme napětí, které se mění s hmotností.
Nyní je důležité si uvědomit, že vstup přijímaný řadičem pro převod ADC je tak nízký jako 50µAmp. Tento zatěžovací efekt odporového děliče napětí je důležitý, protože proud odebíraný z Vout děliče napětí zvyšuje procentuální zvýšení chyb, zatím si nemusíme dělat starosti s efektem načítání.
To, co zde uděláme, je, že vezmeme dva odpory a vytvoříme dělící obvod, takže pro 25Volts Vin dostaneme 5Volt Vout. Jediné, co musíme udělat, je znásobit hodnotu Vout v programu „5“, abychom získali skutečné vstupní napětí.
Součásti
Hardware: ATMEGA8, napájecí zdroj (5 V), AVR-ISP PROGRAMÁTOR, JHD_162ALCD (16 * 2LCD), 100uF kondenzátor, 100nF kondenzátor (5 kusů), 10KΩ rezistor, LDR (Light Dependent Resistor).
Sofware: Atmel studio 6.1, progisp nebo flash magic.
Schéma zapojení a pracovní vysvětlení
V obvodu PORTD z ATMEGA8 je připojen k datovému portu LCD. Na 16 * 2 LCD je 16 kolíků, pokud je podsvícení, pokud není podsvícení, bude 14 kolíků. Jeden může napájet nebo nechat kolíky podsvícení. Nyní ve 14 kolíky jsou 8 datových kolíky (7-14 nebo D0-D7), 2 napájecí kolíky elektrárny (1 & 2 nebo VSS a VDD nebo GND a + 5 V), 3 rd kolík pro řízení kontrastu (VEE-určuje, jak silná znaky musí být a 3 ovládací piny (RS & RW & E)
V okruhu můžete pozorovat, že jsem vzal pouze dva kontrolní piny. Kontrastní bit a READ / WRITE se často nepoužívají, aby mohly být zkratovány na zem. LCD se tak dostane do režimu nejvyššího kontrastu a čtení. Abychom mohli odpovídajícím způsobem odesílat znaky a data, musíme pouze ovládat piny ENABLE a RS.
K připojení k LCD, jsou uvedeny níže:
PIN1 nebo VSS ------------------ země
PIN2 nebo VDD nebo VCC ------------ + 5V napájení
PIN3 nebo VEE --------------- zem (poskytuje maximální kontrast nejlepší pro začátečníka)
PIN4 nebo RS (výběr registru) --------------- PB0 uC
PIN5 nebo RW (čtení / zápis) ----------------- zem (přepnutí LCD do režimu čtení usnadňuje uživateli komunikaci)
PIN6 nebo E (povolit) ------------------- PB1 uC
PIN7 nebo D0 ----------------------------- PD0 uC
PIN8 nebo D1 ----------------------------- PD1 uC
PIN9 nebo D2 ----------------------------- PD2 uC
PIN10 nebo D3 ----------------------------- PD3 uC
PIN11 nebo D4 ----------------------------- PD4 uC
PIN12 nebo D5 ----------------------------- PD5 uC
PIN13 nebo D6 ----------------------------- PD6 uC
PIN14 nebo D7 ----------------------------- PD7 uC
V obvodu můžete vidět, že jsme použili 8bitovou komunikaci (D0-D7), ale to není povinné, můžeme použít 4bitovou komunikaci (D4-D7), ale se 4bitovým komunikačním programem se stává trochu složitější. Takže z pouhého pozorování z výše uvedené tabulky připojujeme 10 pinů LCD k řadiči, ve kterém 8 pinů jsou datové piny a 2 piny pro ovládání.
Napětí na R2 není zcela lineární; bude to hlučný. K odfiltrování šumu jsou kondenzátory umístěny napříč každým odporem v děličovém obvodu, jak je znázorněno na obrázku.
V ATMEGA8 můžeme dát analogový vstup kterémukoli ze ČTYŘI kanálů PORTC, nezáleží na tom, který kanál si vybereme, protože všechny jsou stejné. Vybereme kanál 0 nebo PIN0 PORTC. V ATMEGA8 má ADC 10bitové rozlišení, takže regulátor dokáže detekovat minimální změnu Vref / 2 ^ 10, takže pokud je referenční napětí 5V, dostaneme digitální výstupní přírůstek pro každých 5/2 ^ 10 = 5mV. Takže pro každý přírůstek 5mV na vstupu budeme mít přírůstek jednoho na digitálním výstupu.
Nyní musíme nastavit registr ADC na základě následujících podmínek:
1. Nejprve musíme povolit funkci ADC v ADC.
2. Zde získáme maximální vstupní napětí pro převod ADC + 5V. Můžeme tedy nastavit maximální hodnotu nebo referenci ADC na 5V.
3. Řadič má funkci převodu spouštěče, což znamená, že převod ADC proběhne až po externím spouštěči, protože nechceme, abychom potřebovali nastavit registry pro provoz ADC v režimu nepřetržitého volného chodu.
4. U jakéhokoli ADC jsou frekvence převodu (analogová hodnota na digitální hodnotu) a přesnost digitálního výstupu nepřímo úměrné. Pro lepší přesnost digitálního výstupu tedy musíme zvolit nižší frekvenci. U normálních hodin ADC nastavujeme předprodej ADC na maximální hodnotu (2). Protože používáme vnitřní hodiny 1MHZ, hodiny ADC budou (10 000 000/2).
To jsou jediné čtyři věci, které potřebujeme vědět, abychom mohli začít s ADC.
Všechny výše uvedené čtyři funkce jsou nastaveny dvěma registry,
ČERVENÁ (ADEN): Tento bit musí být nastaven pro povolení funkce ADC ATMEGA.
MODRÁ (REFS1, REFS0): Tyto dva bity se používají k nastavení referenčního napětí (nebo maximálního vstupního napětí, které dáme). Protože chceme mít referenční napětí 5V, měl by být REFS0 nastaven podle tabulky.
ŽLUTÁ (ADFR): Tento bit musí být nastaven, aby ADC běžel nepřetržitě (režim volného chodu).
PINK (MUX0-MUX3): Tyto čtyři bity slouží ke sdělování vstupního kanálu. Protože budeme používat ADC0 nebo PIN0, nemusíme nastavovat žádné bity jako v tabulce.
BROWN (ADPS0-ADPS2): tyto tři bity slouží k nastavení prescalar pro ADC. Protože používáme prescalar 2, musíme nastavit jeden bit.
DARK GREEN (ADSC): tento bit nastaven pro ADC ke spuštění převodu. Tento bit lze v programu deaktivovat, když potřebujeme zastavit převod.
Takže s odporem LDR na 16x2 LCD obrazovce jej můžeme porovnat s grafem LUX pro získání intenzity světla.