ఈ ట్యుటోరియల్లో మేము జాయ్ స్టిక్ మాడ్యూల్ను atmega8 మైక్రోకంట్రోలర్తో ఇంటర్ఫేస్ చేయబోతున్నాం . ఒక జాయ్ స్టిక్ కమ్యూనికేషన్ కోసం ఉపయోగించిన ఒక ఇన్పుట్ మాడ్యూల్. ఇది ప్రాథమికంగా యూజర్ మెషిన్ కమ్యూనికేషన్ను సులభతరం చేస్తుంది. జాయ్ స్టిక్ క్రింద ఉన్న చిత్రంలో చూపబడింది.
జాయ్ స్టిక్ మాడ్యూల్ రెండు అక్షాలను కలిగి ఉంది - ఒకటి క్షితిజ సమాంతర మరియు మరొకటి నిలువుగా ఉంటుంది. జాయ్ స్టిక్ యొక్క ప్రతి అక్షం పొటెన్షియోమీటర్ లేదా కుండ లేదా వేరియబుల్ రెసిస్టెన్స్కు అమర్చబడుతుంది. మిడ్ పాయింట్లను Rx మరియు Ry గా తీసుకువస్తారు. ఈ పిన్స్ JOYSTICK కోసం అవుట్పుట్ సిగ్నల్ పిన్లుగా తీసుకువెళతాయి. స్టిక్ క్షితిజ సమాంతర అక్షంతో కదిలినప్పుడు, సరఫరా వోల్టేజ్ ఉన్నపుడు, Rx పిన్ వద్ద వోల్టేజ్ మారుతుంది.
ముందుకు కదిలినప్పుడు Rx వద్ద వోల్టేజ్ పెరుగుతుంది, వెనుకకు కదిలినప్పుడు Rx పిన్ వద్ద వోల్టేజ్ తగ్గుతుంది. అదేవిధంగా, పైకి కదిలేటప్పుడు Ry వద్ద వోల్టేజ్ పెరుగుతుంది, Ry పిన్ వద్ద వోల్టేజ్ క్రిందికి కదిలినప్పుడు తగ్గుతుంది.
కాబట్టి మాకు రెండు ADC ఛానెళ్లలో JOYSTICK యొక్క నాలుగు దిశలు ఉన్నాయి. సాధారణ సందర్భాల్లో సాధారణ పరిస్థితులలో ప్రతి పిన్పై 1 వోల్ట్ ఉంటుంది. కర్ర కదిలినప్పుడు ప్రతి పిన్పై వోల్టేజ్ దిశను బట్టి ఎక్కువ లేదా తక్కువగా ఉంటుంది. కాబట్టి x- అక్షం కోసం నాలుగు దిశలు (0V, ఛానల్ 0 లో 5V); (ఛానెల్ 1 లో 0 వి, 5 వి) y- అక్షం కోసం.
మేము ఉద్యోగం చేయడానికి ATMEGA8 యొక్క రెండు ADC ఛానెల్లను ఉపయోగించబోతున్నాము. మేము ఛానల్ 0 మరియు ఛానల్ 1 ను ఉపయోగించబోతున్నాము.
భాగాలు అవసరం
హార్డ్వేర్: ATMEGA8, విద్యుత్ సరఫరా (5v), AVR-ISP PROGRAMMER, LED (4 ముక్కలు), 1000uF కెపాసిటర్, 100nF కెపాసిటర్ (5 ముక్కలు), 1KΩ రెసిస్టర్ (6 ముక్కలు).
సాఫ్ట్వేర్: అట్మెల్ స్టూడియో 6.1, ప్రోగిస్ప్ లేదా ఫ్లాష్ మ్యాజిక్.
సర్క్యూట్ రేఖాచిత్రం మరియు వర్కింగ్ వివరణ
JOYSTICK అంతటా వోల్టేజ్ పూర్తిగా సరళంగా లేదు; ఇది ధ్వనించేది. శబ్దాన్ని ఫిల్టర్ చేయడానికి చిత్రంలో చూపిన విధంగా సర్క్యూట్లోని ప్రతి రెసిస్టర్లో కెపాసిటర్లు ఉంచబడతాయి.
చిత్రంలో చూపిన విధంగా సర్క్యూట్లో నాలుగు LED లు ఉన్నాయి. ప్రతి LED JOYSTICK యొక్క ప్రతి దిశను సూచిస్తుంది. కర్రను ఒక దిశలో తరలించినప్పుడు, సంబంధిత LED మెరుస్తుంది.
ఇంకేముందు వెళ్లేముందు మనం ATMEGA8 యొక్క ADC గురించి మాట్లాడాలి, 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 మార్పిడిని ప్రారంభించడానికి ఈ బిట్ సెట్ చేయబడింది. మేము మార్పిడిని ఆపాల్సిన అవసరం వచ్చినప్పుడు ఈ బిట్ను ప్రోగ్రామ్లో నిలిపివేయవచ్చు.