- ADC మాడ్యూల్ను అర్థం చేసుకోవడం:
- సర్క్యూట్ రేఖాచిత్రం:
- ADC కోసం మీ MSP430 ను ప్రోగ్రామింగ్ చేస్తోంది:
- మీ ఫలితాన్ని పరీక్షిస్తోంది!
దాదాపు ప్రతి ఎంబెడెడ్ అప్లికేషన్లో ఉపయోగించే ఒక సాధారణ లక్షణం ADC మాడ్యూల్ (అనలాగ్ టు డిజిటల్ కన్వర్టర్). ఈ అనలాగ్ టు డిజిటల్ కన్వర్టర్స్ టెంపరేచర్ సెన్సార్, టిల్ట్ సెన్సార్, కరెంట్ సెన్సార్, ఫ్లెక్స్ సెన్సార్ మరియు మరెన్నో వంటి అనలాగ్ సెన్సార్ల నుండి వోల్టేజ్ చదవగలదు. కాబట్టి ఈ ట్యుటోరియల్లో ఎనర్జియా IDE ని ఉపయోగించి అనలాగ్ వోల్టేజ్లను చదవడానికి MSP430G2 లో ADC ని ఎలా ఉపయోగించాలో నేర్చుకుంటాము . మేము ఒక చిన్న పొటెన్షియోమీటర్ను MSP బోర్డ్కి ఇంటర్ఫేస్ చేస్తాము మరియు అనలాగ్ పిన్కు భిన్నమైన వోల్టేజ్ను సరఫరా చేస్తాము, వోల్టేజ్ను చదివి సీరియల్ మానిటర్లో ప్రదర్శిస్తాము.
ADC మాడ్యూల్ను అర్థం చేసుకోవడం:
నన్ను నమ్మండి, అనలాగ్ వోల్టేజ్ చదవడానికి MSP430G2 ను కనెక్ట్ చేయడానికి మరియు ప్రోగ్రామ్ చేయడానికి 10 నిమిషాలు పట్టదు. కానీ, MSP బోర్డులోని ADC మాడ్యూల్ను అర్థం చేసుకోవడంలో కొంత సమయం గడపండి, తద్వారా మన రాబోయే అన్ని ప్రాజెక్టులలో దీనిని సమర్థవంతంగా ఉపయోగించుకోగలుగుతాము.
మైక్రోకంట్రోలర్ ఒక డిజిటల్ పరికరం, అంటే ఇది 1 మరియు 0 లను మాత్రమే అర్థం చేసుకోగలదు. వాస్తవ ప్రపంచంలో, ఉష్ణోగ్రత, తేమ, గాలి వేగం మొదలైన ప్రతిదీ ప్రకృతిలో అనలాగ్. ఈ అనలాగ్ మార్పులతో సంకర్షణ చెందడానికి, మైక్రోకంట్రోలర్ ADC అనే మాడ్యూల్ను ఉపయోగిస్తుంది. అనేక రకాల ADC గుణకాలు అందుబాటులో ఉన్నాయి, మా MSP లో ఉపయోగించినది SAR 8 ఛానల్ 10-బిట్ ADC.
వరుస ఉజ్జాయింపు (SAR) ADC: SAR ADC ఒక పోలిక మరియు కొన్ని తర్కం సంభాషణల సహాయంతో పనిచేస్తుంది. ఈ రకమైన ADC రిఫరెన్స్ వోల్టేజ్ను ఉపయోగిస్తుంది (ఇది వేరియబుల్) మరియు ఇన్పుట్ వోల్టేజ్ను రిఫరెన్స్ వోల్టేజ్తో పోలిక మరియు వ్యత్యాసాన్ని ఉపయోగించి పోల్చి చూస్తుంది, ఇది డిజిటల్ అవుట్పుట్ అవుతుంది, ఇది చాలా ముఖ్యమైన బిట్ (MSB) నుండి సేవ్ చేయబడుతుంది. పోలిక యొక్క వేగం MSP పనిచేస్తున్న క్లాక్ ఫ్రీక్వెన్సీ (ఫాస్క్) పై ఆధారపడి ఉంటుంది.
10-బిట్ రిజల్యూషన్: ఈ ADC 8 ఛానల్ 10 బిట్ ADC. ఇక్కడ 8 ఛానల్ అనే పదం 8 ADC పిన్స్ ఉన్నాయని సూచిస్తుంది, వీటిని ఉపయోగించి మేము అనలాగ్ వోల్టేజ్ను కొలవవచ్చు. 10-బిట్ అనే పదం ADC యొక్క తీర్మానాన్ని సూచిస్తుంది. పది (2 అధికారంలోకి 10-బిట్ అంటే 2 10 మా ADC విలువలు పరిధి 0 నుండి 1023. ఉంటుంది కాబట్టి విలువ 0 నుండి పెరుగుతుంది ఇది 1024. ఈ), మా ADC కోసం నమూనా దశలను సంఖ్య 1023 ప్రతి దశకు వోల్టేజ్ విలువ ఆధారంగా, ఈ క్రింది సూత్రాన్ని ఉపయోగించి లెక్కించవచ్చు
గమనిక: ఎనర్జియాలో అప్రమేయంగా రిఫరెన్స్ వోల్టేజ్ Vcc (~ 3v) కు సెట్ చేయబడుతుంది, మీరు అనలాగ్ రిఫరెన్స్ () ఎంపికను ఉపయోగించి రిఫరెన్స్ వోల్టేజ్ను మార్చవచ్చు .
ఇతర మైక్రోకంట్రోలర్లతో ADC ని ఎలా ఇంటర్ఫేస్ చేయాలో కూడా తనిఖీ చేయండి:
- Arduino Uno లో ADC ని ఎలా ఉపయోగించాలి?
- 8051 మైక్రోకంట్రోలర్తో ADC0808 ఇంటర్ఫేసింగ్
- పిఐసి మైక్రోకంట్రోలర్ యొక్క ఎడిసి మాడ్యూల్ ఉపయోగించడం
- రాస్ప్బెర్రీ పై ADC ట్యుటోరియల్
సర్క్యూట్ రేఖాచిత్రం:
మా మునుపటి ట్యుటోరియల్లో ఎల్సిడిని ఎంఎస్పి 430 జి 2 తో ఎలా ఇంటర్ఫేస్ చేయాలో నేర్చుకున్నాము, ఇప్పుడు మనం వేరియబుల్ వోల్టేజ్ను సరఫరా చేయడానికి మరియు ఎల్సిడిలో వోల్టేజ్ విలువను ప్రదర్శించడానికి ఎంఎస్పి 430 కు పొటెన్షియోమీటర్ను జోడించబోతున్నాం. పశ్చాత్తాపం రాకుండా ఉండటానికి నేను సమాచారాన్ని దాటవేస్తున్నందున, ఎల్సిడిని ఇంటర్ఫేస్ చేయడం గురించి మీకు తెలియకపోతే, పై లింక్కి తిరిగి వచ్చి దాని ద్వారా చదవండి. ప్రాజెక్ట్ యొక్క పూర్తి సర్క్యూట్ రేఖాచిత్రం క్రింద ఇవ్వబడింది.
ఇక్కడ రెండు పొటెన్షియోమీటర్లు ఉపయోగించబడుతున్నాయని మీరు చూడగలిగినట్లుగా, ఒకటి ఎల్సిడి యొక్క కాంట్రాస్ట్ను సెట్ చేయడానికి ఉపయోగించబడుతుంది, మరొకటి బోర్డుకు వేరియబుల్ వోల్టేజ్ను సరఫరా చేయడానికి ఉపయోగించబడుతుంది. ఆ పొటెన్షియోమీటర్లో పొటెన్షియోమీటర్ యొక్క ఒక తీవ్రమైన ముగింపు Vcc కి అనుసంధానించబడి ఉంటుంది మరియు మరొక చివర గ్రౌండ్కు అనుసంధానించబడి ఉంటుంది. సెంటర్ పిన్ (బ్లూ వైర్) పిన్ P1.7 కి అనుసంధానించబడి ఉంది. ఈ పిన్ P1.7 0V (గ్రౌండ్) నుండి 3.5V (Vcc) వరకు వేరియబుల్ వోల్టేజ్ను అందిస్తుంది. కాబట్టి ఈ వేరియబుల్ వోల్టేజ్ను చదివి ఎల్సిడిలో ప్రదర్శించడానికి పిన్ పి 1.7 ను ప్రోగ్రామ్ చేయాలి.
ఎనర్జియాలో, పిన్ పి 1.7 ఏ అనలాగ్ ఛానెల్కు చెందినదో మనం తెలుసుకోవాలి? దిగువ చిత్రాన్ని సూచించడం ద్వారా దీనిని కనుగొనవచ్చు
మీరు కుడి వైపున P1.7 పిన్ను చూడవచ్చు, ఈ పిన్ A7 (ఛానల్ 7) కు చెందినది. అదేవిధంగా, ఇతర పిన్ల కోసం కూడా మేము సంబంధిత ఛానెల్ నంబర్ను కనుగొనవచ్చు. అనలాగ్ వోల్టేజ్లను చదవడానికి మీరు A0 నుండి A7 వరకు ఏదైనా పిన్లను ఉపయోగించవచ్చు ఇక్కడ నేను A7 ని ఎంచుకున్నాను.
ADC కోసం మీ MSP430 ను ప్రోగ్రామింగ్ చేస్తోంది:
అనలాగ్ వోల్టేజ్ చదవడానికి మీ MSP430 ను ప్రోగ్రామింగ్ చేయడం చాలా సులభం. ఈ ప్రోగ్రామ్లో విలువ యొక్క అనలాగ్ను చదివి, ఆ విలువతో వోల్టేజ్ను లెక్కించి, ఆపై రెండింటినీ ఎల్సిడి స్క్రీన్లో ప్రదర్శిస్తుంది. పూర్తి కార్యక్రమం నేను సహాయం స్నిప్పెట్లను లో కార్యక్రమం వివరిస్తూ చేస్తున్నాను ఈ క్రింద మీరు మంచి అర్థం, ఈ పేజీ దిగువన చూడవచ్చు.
మేము LCD పిన్లను నిర్వచించడం ద్వారా ప్రారంభిస్తాము. MSP430 యొక్క పిన్ ఎల్సిడి పిన్లను అనుసంధానించడానికి ఇవి నిర్వచించాయి. పిన్స్ వరుసగా కనెక్ట్ అయ్యాయని నిర్ధారించుకోవడానికి మీరు మీకు కనెక్షన్ను సూచించవచ్చు
# RS 2 ని నిర్వచించండి # EN 3 ని నిర్వచించండి # D4 4 ని నిర్వచించండి # D5 5 ని నిర్వచించండి # D6 6 ని నిర్వచించండి # D7 7 ని నిర్వచించండి
తరువాత, మేము LCD డిస్ప్లే కోసం హెడర్ ఫైల్ను చేర్చుతాము. ఇది MSP LCD తో ఎలా సంభాషించాలో కోడ్ ఉన్న లైబ్రరీని పిలుస్తుంది. ఈ లైబ్రరీ ఎనర్జియా IDE లో డిఫాల్ట్గా ఇన్స్టాల్ చేయబడుతుంది కాబట్టి మీరు దీన్ని జోడించడంలో ఇబ్బంది పడనవసరం లేదు. మేము పైన నిర్వచించిన పిన్ పేర్లతో లిక్విడ్ క్రిస్టల్ ఫంక్షన్ పిలువబడిందని నిర్ధారించుకోండి.
# చేర్చండి
మా సెటప్ () ఫంక్షన్ లోపల, మేము LCD స్క్రీన్లో ప్రదర్శించబడే పరిచయ సందేశాన్ని ఇస్తాము. MSP430G2 తో LCD ని ఎలా ఉపయోగించాలో మేము ఇప్పటికే నేర్చుకున్నందున నేను చాలా లోతుగా లేను.
lcd.begin (16, 2); // మేము 16 * 2 LCD డిస్ప్లే lcd.setCursor (0,0) ఉపయోగిస్తున్నాము; // కర్సర్ను 1 వ వరుస 1 వ కాలమ్ lcd.print ("MSP430G2553") వద్ద ఉంచండి ; // పరిచయ సందేశాన్ని ప్రదర్శించు lcd.setCursor (0, 1); // కర్సర్ను 1 వ కాలమ్ 2 వ వరుస lcd.print ("- సర్క్యూట్ డైజెస్ట్") కు సెట్ చేయండి; // పరిచయ సందేశాన్ని ప్రదర్శించండి
చివరగా, మా అనంతమైన లూప్ () ఫంక్షన్ లోపల, మేము A7 పిన్కు సరఫరా చేసిన వోల్టేజ్ చదవడం ప్రారంభిస్తాము. మేము ఇప్పటికే చర్చించినట్లుగా మైక్రోకంట్రోలర్ ఒక డిజిటల్ పరికరం మరియు ఇది వోల్టేజ్ స్థాయిని నేరుగా చదవదు. SAR సాంకేతికతను ఉపయోగించి వోల్టేజ్ స్థాయిని 0 నుండి 1024 వరకు మ్యాప్ చేస్తారు. ఈ విలువలను ADC విలువలు అని పిలుస్తారు, ఈ ADC విలువను పొందడానికి ఈ క్రింది పంక్తిని ఉపయోగించండి
int val = అనలాగ్ రీడ్ (A7); // పిన్ A7 నుండి ADC విలువను చదవండి
ఇక్కడ పిన్ యొక్క అనలాగ్ విలువను చదవడానికి అనలాగ్ రీడ్ () అనే ఫంక్షన్ ఉపయోగించబడుతుంది , పిన్ P1.7 కు వేరియబుల్ వోల్టేజ్ను కనెక్ట్ చేసినందున దాని లోపల A7 ని పేర్కొన్నాము. చివరగా మనం ఈ విలువను “ val ” అనే వేరియబుల్ లో సేవ్ చేస్తాము. ఈ వేరియబుల్ రకం పూర్ణాంకం ఎందుకంటే ఈ వేరియబుల్లో నిల్వ చేయడానికి 0 నుండి 1024 వరకు విలువలను మాత్రమే పొందుతాము.
తదుపరి దశ ADC విలువ నుండి వోల్టేజ్ విలువను లెక్కించడం. ఇది చేయుటకు మనకు ఈ క్రింది సూత్రాలు ఉన్నాయి
వోల్టేజ్ = (ADC విలువ / ADC రిజల్యూషన్) * రిఫరెన్స్ వోల్టేజ్
మా విషయంలో మన మైక్రోకంట్రోలర్ యొక్క ADC రిజల్యూషన్ 1024 అని మనకు ఇప్పటికే తెలుసు. ADC విలువ మునుపటి వరుసలో కూడా కనుగొనబడింది మరియు val అనే వేరియబుల్ ని నిల్వ చేస్తుంది. సూచన వోల్టేజ్ మైక్రోకంట్రోలర్ నడిపే వద్ద వోల్టేజ్ సమానం. MSP430 బోర్డు USB కేబుల్ ద్వారా శక్తిని పొందినప్పుడు ఆపరేటింగ్ వోల్టేజ్ 3.6V. బోర్డులోని Vcc మరియు గ్రౌండ్ పిన్ అంతటా మల్టీమీటర్ ఉపయోగించి మీరు ఆపరేటింగ్ వోల్టేజ్ను కూడా కొలవవచ్చు. కాబట్టి పై సూత్రం క్రింద చూపిన విధంగా మన విషయంలో సరిపోతుంది
ఫ్లోట్ వోల్టేజ్ = (ఫ్లోట్ (వాల్) / 1024) * 3.6; ADC విలువను వోల్టేజ్గా మార్చడానికి // సూత్రాలు
మీరు లైన్ ఫ్లోట్ (వాల్) తో గందరగోళం చెందవచ్చు. వేరియబుల్ “వాల్” ను ఇంట్ డేటా రకం నుండి “ఫ్లోట్” డేటా రకంగా మార్చడానికి ఇది ఉపయోగించబడుతుంది. ఈ మార్పిడి అవసరం ఎందుకంటే ఫ్లోట్లో వాల్ / 1024 ఫలితం వస్తేనే దాన్ని 3.6 గుణించవచ్చు. విలువ పూర్ణాంకంలో స్వీకరించబడితే అది ఎల్లప్పుడూ 0 గా ఉంటుంది మరియు ఫలితం కూడా సున్నా అవుతుంది. మేము ADC విలువ మరియు వోల్టేజ్ను లెక్కించిన తర్వాత, మిగిలి ఉన్నది ఫలితాన్ని LCD స్క్రీన్పై ప్రదర్శించడం, ఈ క్రింది పంక్తులను ఉపయోగించి చేయవచ్చు
lcd.setCursor (0, 0); // కర్సర్ను కాలమ్ 0, లైన్ 0 lcd.print ("ADC Val:") కు సెట్ చేయండి; lcd.print (val); // ADC విలువను ప్రదర్శించు lcd.setCursor (0, 1); // కర్సర్ను కాలమ్ 0, లైన్ 1 ఎల్సిడి.ప్రింట్ ("వోల్టేజ్:") కు సెట్ చేయండి; lcd.print (వోల్టేజ్); // డిస్ప్లే వోల్టేజ్
ఇక్కడ మేము మొదటి పంక్తిలో ADC విలువను మరియు రెండవ పంక్తిలో వోల్టేజ్ విలువను ప్రదర్శించాము. చివరగా మేము 100 మిల్లు సెకన్ల ఆలస్యం ఇస్తాము మరియు LCD స్క్రీన్ను క్లియర్ చేస్తాము. ప్రతి 100 మిల్లులకు విలువ నవీకరించబడుతుంది.
మీ ఫలితాన్ని పరీక్షిస్తోంది!
చివరగా, మేము మా ప్రోగ్రామ్ను పరీక్షిస్తున్నాము మరియు దానితో ఆడుకుంటున్న సరదా భాగానికి దిగుతాము. సర్క్యూట్ రేఖాచిత్రంలో చూపిన విధంగా కనెక్షన్లను చేయండి. నా కనెక్షన్లను చేయడానికి నేను ఒక చిన్న బ్రెడ్బోర్డ్ను ఉపయోగించాను మరియు బ్రెడ్బోర్డ్ను MSP430 కి కనెక్ట్ చేయడానికి జంపర్ వైర్లను ఉపయోగించాను. కనెక్షన్లు పూర్తయిన తర్వాత గని ఈ విధంగా కనిపిస్తుంది.
అప్పుడు క్రింద ఇవ్వబడిన ప్రోగ్రామ్ను ఎనర్జియా ఐడిఇ ద్వారా ఎంఎస్పి 430 బోర్డుకి అప్లోడ్ చేయండి. మీరు స్పష్టమైన పదాలను చూసేవరకు పొటెన్షియోమీటర్ ఉపయోగించి ఎల్సిడి యొక్క విరుద్ధతను సర్దుబాటు చేయకపోతే, మీరు ఎల్సిడిలో పరిచయ వచనాన్ని చూడగలుగుతారు. అలాగే, రీసెట్ బటన్ను నొక్కండి. విషయాలు expected హించిన విధంగా పనిచేస్తే మీరు ఈ క్రింది స్క్రీన్ను చూడగలుగుతారు.
ఇప్పుడు పొటెన్షియోమీటర్లో తేడా ఉంటుంది మరియు ఎల్సిడిలో ప్రదర్శించబడే వోల్టేజ్ కూడా వైవిధ్యంగా ఉందని మీరు చూడాలి. అలా చేయడానికి మేము వోల్టేజ్ను సరిగ్గా కొలుస్తున్నామో లేదో ధృవీకరిద్దాం, POT మరియు భూమి మధ్యలో వోల్టేజ్ను కొలవడానికి మల్టీమీటర్ను ఉపయోగించండి. మల్టీమీటర్లో ప్రదర్శించబడే వోల్టేజ్ క్రింది చిత్రంలో చూపిన విధంగా ఎల్సిడిలో ప్రదర్శించబడే విలువకు దగ్గరగా ఉండాలి.
అంటే , MSP430 బోర్డు యొక్క ADC ని ఉపయోగించి అనలాగ్ వోల్టేజ్ను ఎలా కొలవాలో నేర్చుకున్నాము. రియల్ టైమ్ పారామితులను చదవడానికి ఇప్పుడు మన బోర్డుతో చాలా అనలాగ్ సెన్సార్లను ఇంటర్ఫేస్ చేయవచ్చు. మీరు ట్యుటోరియల్ అర్థం చేసుకున్నారని మరియు నేర్చుకోవడం ఆనందించారని ఆశిస్తున్నాము, మీకు ఏమైనా సమస్యలు ఉంటే దయచేసి దిగువ వ్యాఖ్య విభాగం ద్వారా లేదా ఫోరమ్ల ద్వారా చేరుకోండి. మరొక కొత్త అంశంతో MSP430 యొక్క మరొక ట్యుటోరియల్లో చూద్దాం.