ఈ ప్రాజెక్ట్లో మేము ఎల్డిఆర్ను ఎటిఎమ్ఇజిఎ 8 మైక్రోకంట్రోలర్తో ఇంటర్ఫేస్ చేయబోతున్నాం, దీనితో మనం ఈ ప్రాంతంలో లైట్ ఇంటెన్సిటీని కొలవవచ్చు. ATMEGA8 లో, మేము కాంతి తీవ్రతను కొలవడానికి 10bit ADC (అనలాగ్ టు డిజిటల్ కన్వర్షన్) లక్షణాన్ని ఉపయోగించబోతున్నాము.
ఆమ్ ఎల్డిఆర్ ఒక ట్రాన్స్డ్యూసెర్, ఇది దాని ఉపరితల మార్పులపై లైట్ పడిపోయినప్పుడు దాని నిరోధకతను మారుస్తుంది. LDR సెన్సార్ వివిధ పరిమాణాలు మరియు ఆకృతులలో లభిస్తుంది.
LDR లు సెమీకండక్టర్ పదార్థాల నుండి తయారవుతాయి, వాటి కాంతి సున్నితమైన లక్షణాలను కలిగి ఉంటాయి. అనేక రకాల పదార్థాలు ఉపయోగించబడ్డాయి, కాని జనాదరణ పొందినది కాడ్మియం సల్ఫైడ్ (సిడిఎస్). ఈ LDR లు లేదా ఫోటో రిస్టోర్స్ “ఫోటో కండక్టివిటీ” సూత్రంపై పనిచేస్తాయి. ఇప్పుడు ఈ సూత్రం ఏమిటంటే LDR యొక్క ఉపరితలంపై కాంతి పడిపోయినప్పుడల్లా (ఈ సందర్భంలో) మూలకం యొక్క ప్రవర్తన పెరుగుతుంది లేదా మరో మాటలో చెప్పాలంటే LDR యొక్క ఉపరితలంపై కాంతి పడిపోయినప్పుడు LDR యొక్క నిరోధకత తగ్గుతుంది. LDR కు నిరోధకత తగ్గడం యొక్క ఈ ఆస్తి సాధించబడుతుంది ఎందుకంటే ఇది ఉపరితలంపై ఉపయోగించే సెమీకండక్టర్ పదార్థం యొక్క ఆస్తి. కాంతి ఉనికిని గుర్తించడానికి లేదా కాంతి యొక్క తీవ్రతను కొలవడానికి LDR చాలాసార్లు ఉపయోగిస్తారు.
పై చిత్రంలో చూపిన విధంగా వివిధ రకాల ఎల్డిఆర్ ఉన్నాయి మరియు ప్రతిదానికి వేర్వేరు లక్షణాలు ఉన్నాయి. సాధారణంగా ఒక LDR మొత్తం చీకటిలో 1MΩ-2MΩ, 10 LUX వద్ద 10-20KΩ, 100 LUX వద్ద 2-5KΩ ఉంటుంది. LDR యొక్క LUX గ్రాఫ్కు విలక్షణమైన ప్రతిఘటన చిత్రంలో చూపబడింది.
పై చిత్రంలో చూపినట్లుగా, సెన్సార్ యొక్క రెండు పరిచయాల మధ్య నిరోధకత కాంతి తీవ్రతతో తగ్గుతుంది లేదా సెన్సార్ యొక్క రెండు పరిచయాల మధ్య ప్రవర్తన పెరుగుతుంది.
ఇప్పుడు వోల్టేజ్లో మార్పుకు ప్రతిఘటనలో ఈ మార్పును మార్చడానికి, మేము వోల్టేజ్ డివైడర్ సర్క్యూట్ను ఉపయోగించబోతున్నాము. ఈ రెసిస్టివ్ నెట్వర్క్లో మనకు ఒక స్థిరమైన నిరోధకత మరియు ఇతర వేరియబుల్ నిరోధకత ఉన్నాయి. చిత్రంలో చూపినట్లుగా, ఇక్కడ R1 స్థిరమైన నిరోధకత మరియు R2 FORCE సెన్సార్, ఇది ప్రతిఘటనగా పనిచేస్తుంది.
శాఖ యొక్క మధ్య బిందువు కొలతకు తీసుకోబడుతుంది. ప్రతిఘటన R2 మారినప్పుడు, వోట్ దానితో సరళంగా మారుతుంది. కాబట్టి దీనితో మనకు వోల్టేజ్ ఉంది, ఇది బరువుతో మారుతుంది.
ఇప్పుడు ఇక్కడ గమనించవలసిన ముఖ్యమైన విషయం ఏమిటంటే, ADC మార్పిడి కోసం నియంత్రిక తీసుకున్న ఇన్పుట్ 50µAmp కంటే తక్కువగా ఉంటుంది. వోట్ ఆఫ్ వోల్టేజ్ డివైడర్ నుండి తీసిన కరెంట్ లోపం శాతం పెరుగుతుంది కాబట్టి రెసిస్టెన్స్ బేస్డ్ వోల్టేజ్ డివైడర్ యొక్క ఈ లోడింగ్ ప్రభావం చాలా ముఖ్యం, ప్రస్తుతానికి లోడింగ్ ప్రభావం గురించి మనం ఆందోళన చెందాల్సిన అవసరం లేదు.
మనం ఇక్కడ చేయబోయేది ఏమిటంటే, మేము రెండు రెసిస్టర్లను తీసుకొని డివైడర్ సర్క్యూట్ను ఏర్పాటు చేయబోతున్నాం, తద్వారా 25 వోల్ట్స్ విన్ కోసం, మనకు 5 వోల్ట్ వోట్ లభిస్తుంది. కాబట్టి మనం చేయాల్సిందల్లా నిజమైన ఇన్పుట్ వోల్టేజ్ పొందడానికి ప్రోగ్రామ్లోని Vout విలువను “5” తో గుణించాలి.
భాగాలు
హార్డ్వేర్: ATMEGA8, విద్యుత్ సరఫరా (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF కెపాసిటర్, 100nF కెపాసిటర్ (5 ముక్కలు), 10KΩ రెసిస్టర్, LDR (లైట్ డిపెండెంట్ రెసిస్టర్).
సాఫ్ట్వేర్ : అట్మెల్ స్టూడియో 6.1, ప్రోగిస్ప్ లేదా ఫ్లాష్ మ్యాజిక్.
సర్క్యూట్ రేఖాచిత్రం & వర్కింగ్ వివరణ
సర్క్యూట్లో ATMEGA8 యొక్క PORTD డేటా పోర్ట్ LCD కి అనుసంధానించబడి ఉంది. 16 * 2 ఎల్సిడిలో బ్యాక్ లైట్ ఉంటే అన్నింటికంటే 16 పిన్స్ ఉన్నాయి, బ్యాక్ లైట్ లేకపోతే 14 పిన్స్ ఉంటాయి. బ్యాక్ లైట్ పిన్లను శక్తివంతం చేయవచ్చు లేదా వదిలివేయవచ్చు. ఇప్పుడు 14 పిన్లలో 8 డేటా పిన్స్ (7-14 లేదా డి 0-డి 7), 2 విద్యుత్ సరఫరా పిన్స్ (1 & 2 లేదా విఎస్ఎస్ & విడిడి లేదా జిఎన్డి & + 5 వి), కాంట్రాస్ట్ కంట్రోల్ కోసం 3 వ పిన్ (అక్షరాలు ఎంత మందంగా ఉండాలో VEE- నియంత్రిస్తుంది చూపబడింది) మరియు 3 కంట్రోల్ పిన్స్ (RS & RW & E)
సర్క్యూట్లో, నేను రెండు కంట్రోల్ పిన్స్ మాత్రమే తీసుకున్నానని మీరు గమనించవచ్చు. కాంట్రాస్ట్ బిట్ మరియు READ / WRITE తరచుగా ఉపయోగించబడవు కాబట్టి వాటిని భూమికి తగ్గించవచ్చు. ఇది ఎల్సిడిని అత్యధిక కాంట్రాస్ట్ మరియు రీడ్ మోడ్లో ఉంచుతుంది. అక్షరాలు మరియు డేటాను తదనుగుణంగా పంపడానికి మేము ఎనేబుల్ మరియు RS పిన్లను నియంత్రించాలి.
LCD కోసం కనెక్షన్లు క్రింద ఇవ్వబడ్డాయి:
పిన్ 1 లేదా విఎస్ఎస్ ------------------ గ్రౌండ్
PIN2 లేదా VDD లేదా VCC ------------ + 5v శక్తి
PIN3 లేదా VEE --------------- గ్రౌండ్ (ఒక అనుభవశూన్యుడు కోసం గరిష్ట విరుద్ధతను ఉత్తమంగా ఇస్తుంది)
పిన్ 4 లేదా ఆర్ఎస్ (రిజిస్టర్ ఎంపిక) --------------- యుసి యొక్క పిబి 0
PIN5 లేదా RW (చదవడం / వ్రాయడం) ----------------- గ్రౌండ్ (LCD ని రీడ్ మోడ్లో ఉంచుతుంది వినియోగదారు కోసం కమ్యూనికేషన్ను సులభతరం చేస్తుంది)
UC యొక్క PIN6 లేదా E (ప్రారంభించు) ------------------- PB1
పిన్ 7 లేదా డి 0 ----------------------------- యుసి యొక్క పిడి 0
పిసి 8 లేదా డి 1 ----------------------------- యుసి యొక్క పిడి 1
UC యొక్క PIN9 లేదా D2 ----------------------------- PD2
పిన్ 10 లేదా డి 3 ----------------------------- యుసి యొక్క పిడి 3
UC యొక్క PIN11 లేదా D4 ----------------------------- PD4
పిన్ 12 లేదా డి 5 ----------------------------- యుసి యొక్క పిడి 5
UC యొక్క PIN13 లేదా D6 ----------------------------- PD6
UC యొక్క PIN14 లేదా D7 ----------------------------- PD7
సర్క్యూట్లో మేము 8 బిట్ కమ్యూనికేషన్ (డి 0-డి 7) ను ఉపయోగించామని మీరు చూడవచ్చు, అయితే ఇది తప్పనిసరి కాదు, మేము 4 బిట్ కమ్యూనికేషన్ (డి 4-డి 7) ను ఉపయోగించవచ్చు, కాని 4 బిట్ కమ్యూనికేషన్ ప్రోగ్రామ్ తో కొంచెం క్లిష్టంగా మారుతుంది. కాబట్టి పై పట్టిక నుండి కేవలం పరిశీలన నుండి మేము 10 పిన్స్ ఎల్సిడిని కంట్రోలర్కు కలుపుతున్నాము, ఇందులో 8 పిన్స్ డేటా పిన్స్ మరియు నియంత్రణ కోసం 2 పిన్స్.
R2 అంతటా వోల్టేజ్ పూర్తిగా సరళంగా లేదు; ఇది ధ్వనించేది. ఫిల్టర్ చేయడానికి శబ్దం కెపాసిటర్లు డివైడర్ సర్క్యూట్లో ప్రతి రెసిస్టర్ అంతటా చిత్రంలో చూపిన విధంగా ఉంచబడతాయి.
ATMEGA8 లో, మేము PORTC యొక్క ఏదైనా నాలుగు ఛానెల్లకు అనలాగ్ ఇన్పుట్ ఇవ్వగలము, అన్నీ ఒకే విధంగా ఉన్నందున మేము ఏ ఛానెల్ని ఎంచుకున్నా అది పట్టింపు లేదు. మేము PORTC యొక్క ఛానల్ 0 లేదా PIN0 ను ఎంచుకోబోతున్నాము. ATMEGA8 లో, ADC 10 బిట్ రిజల్యూషన్ కలిగి ఉంది, కాబట్టి నియంత్రిక Vref / 2 ^ 10 యొక్క కనీస మార్పును గుర్తించగలదు, కాబట్టి రిఫరెన్స్ వోల్టేజ్ 5V అయితే ప్రతి 5/2 ^ 10 = 5mV కి డిజిటల్ అవుట్పుట్ ఇంక్రిమెంట్ లభిస్తుంది. కాబట్టి ఇన్పుట్లోని ప్రతి 5 ఎంవి ఇంక్రిమెంట్ కోసం మనకు డిజిటల్ అవుట్పుట్ వద్ద ఒకటి ఇంక్రిమెంట్ ఉంటుంది.
ఇప్పుడు మేము ఈ క్రింది నిబంధనల ఆధారంగా ADC యొక్క రిజిస్టర్ను సెట్ చేయాలి:
1. మొదట మనం ADC లో ADC లక్షణాన్ని ప్రారంభించాలి.
2. ఇక్కడ ADC మార్పిడి కోసం గరిష్ట ఇన్పుట్ వోల్టేజ్ + 5 వి. కాబట్టి మేము ADC యొక్క గరిష్ట విలువ లేదా సూచనను 5V కి సెటప్ చేయవచ్చు.
3. నియంత్రికకు ట్రిగ్గర్ మార్పిడి లక్షణం ఉంది, అంటే ADC మార్పిడి బాహ్య ట్రిగ్గర్ తర్వాత మాత్రమే జరుగుతుంది, ఎందుకంటే నిరంతర ఉచిత రన్నింగ్ మోడ్లో అమలు చేయడానికి ADC కోసం రిజిస్టర్లను సెట్ చేయాల్సిన అవసరం మాకు లేదు.
4. ఏదైనా ADC కొరకు, మార్పిడి యొక్క ఫ్రీక్వెన్సీ (అనలాగ్ విలువ నుండి డిజిటల్ విలువ) మరియు డిజిటల్ అవుట్పుట్ యొక్క ఖచ్చితత్వం విలోమానుపాతంలో ఉంటాయి. కాబట్టి డిజిటల్ అవుట్పుట్ యొక్క మంచి ఖచ్చితత్వం కోసం మనం తక్కువ ఫ్రీక్వెన్సీని ఎంచుకోవాలి. సాధారణ ADC గడియారం కోసం మేము ADC యొక్క ప్రీసెల్ను గరిష్ట విలువ (2) కు సెట్ చేస్తున్నాము. మేము 1MHZ యొక్క అంతర్గత గడియారాన్ని ఉపయోగిస్తున్నందున, ADC యొక్క గడియారం (1000000/2) అవుతుంది.
ADC తో ప్రారంభించడానికి మనం తెలుసుకోవలసిన నాలుగు విషయాలు ఇవి.
పైన పేర్కొన్న నాలుగు లక్షణాలు రెండు రిజిస్టర్ల ద్వారా సెట్ చేయబడ్డాయి,
RED (ADEN): ATMEGA యొక్క ADC లక్షణాన్ని ప్రారంభించడానికి ఈ బిట్ను సెట్ చేయాలి.
నీలం (REFS1, REFS0): రిఫరెన్స్ వోల్టేజ్ (లేదా మేము ఇవ్వబోయే గరిష్ట ఇన్పుట్ వోల్టేజ్) సెట్ చేయడానికి ఈ రెండు బిట్స్ ఉపయోగించబడతాయి. మేము రిఫరెన్స్ వోల్టేజ్ 5 వి కలిగి ఉండాలనుకుంటున్నాము కాబట్టి, పట్టిక ద్వారా REFS0 సెట్ చేయాలి.
YELLOW (ADFR): ADC నిరంతరం అమలు కావడానికి ఈ బిట్ సెట్ చేయాలి (ఉచిత రన్నింగ్ మోడ్).
పింక్ (MUX0-MUX3): ఈ నాలుగు బిట్స్ ఇన్పుట్ ఛానెల్కు చెప్పడం కోసం. మేము ADC0 లేదా PIN0 ను ఉపయోగించబోతున్నాం కాబట్టి, పట్టిక ప్రకారం మేము ఏ బిట్లను సెట్ చేయనవసరం లేదు.
BROWN (ADPS0-ADPS2): ఈ మూడు బిట్స్ ADC కోసం ప్రీస్కాలర్ను సెట్ చేయడానికి. మేము 2 యొక్క ప్రెస్కాలర్ను ఉపయోగిస్తున్నందున, మేము ఒక బిట్ను సెట్ చేయాలి.
డార్క్ గ్రీన్ (ADSC): ADC మార్పిడిని ప్రారంభించడానికి ఈ బిట్ సెట్ చేయబడింది. మేము మార్పిడిని ఆపాల్సిన అవసరం వచ్చినప్పుడు ఈ బిట్ను ప్రోగ్రామ్లో నిలిపివేయవచ్చు.
కాబట్టి 16x2 LCD స్క్రీన్పై LDR యొక్క నిరోధకతతో , కాంతి తీవ్రతను పొందడానికి LUX గ్రాఫ్తో సరిపోల్చవచ్చు.