- పదార్థం అవసరం:
- సర్క్యూట్ రేఖాచిత్రం:
- ప్రోగ్రామింగ్ వివరణ:
- LED సీక్వెన్స్ మెరిసే హార్డ్వేర్ సెటప్:
- అప్లోడ్ మరియు పని:
ఇది ట్యుటోరియల్ యొక్క క్రమం యొక్క రెండవ ట్యుటోరియల్, దీనిలో మేము ఎనర్జియా IDE ని ఉపయోగించి టెక్సాస్ ఇన్స్ట్రుమెంట్స్ నుండి MSP430G2 లాంచ్ప్యాడ్ నేర్చుకుంటున్నాము. చివరి బ్లింకీ LED ట్యుటోరియల్లో మేము లాంచ్ప్యాడ్ డెవలప్మెంట్ బోర్డ్ మరియు ఎనర్జియా IDE కి మా స్వీయతను పరిచయం చేసాము, మేము మా మొదటి ప్రోగ్రామ్ను కూడా అప్లోడ్ చేసాము, ఇది ఎల్ఇడి ఆన్ బోర్డును రెగ్యులర్ విరామంలో రెప్ప వేయడం.
ఈ ట్యుటోరియల్లో స్విచ్ వంటి ఇన్పుట్ పరికరం యొక్క స్థితిని చదవడానికి డిజిటల్ రీడ్ మరియు డిజిటల్ రైట్ ఎంపికను ఎలా ఉపయోగించాలో నేర్చుకుంటాము మరియు LED వంటి బహుళ అవుట్పుట్లను నియంత్రించండి. ఈ ట్యుటోరియల్ చివరలో మీరు డిజిటల్ ఇన్పుట్లు మరియు అవుట్పుట్లతో పనిచేయడం నేర్చుకుంటారు, వీటిని ఐఆర్ సెన్సార్, పిఐఆర్ సెన్సార్ వంటి అనేక డిజిటల్ సెన్సార్లను ఇంటర్ఫేస్ చేయడానికి మరియు ఎల్ఇడి, బజర్ వంటి అవుట్పుట్లను ఆన్ లేదా ఆఫ్ చేయడానికి కూడా ఉపయోగపడుతుంది. కుడి !!? ప్రారంభిద్దాం.
పదార్థం అవసరం:
- MSP430G2 లాంచ్ప్యాడ్
- ఏదైనా రంగు యొక్క LED - 8
- మారండి - 2
- 1 కె రెసిస్టర్ - 8
- వైర్లను కనెక్ట్ చేస్తోంది
సర్క్యూట్ రేఖాచిత్రం:
మా మునుపటి ట్యుటోరియల్లో, లాంచ్ ప్యాడ్లోనే రెండు ఎల్ఈడీ మరియు బోర్డు మీద స్విచ్ వస్తుంది. కానీ ఈ ట్యుటోరియల్లో మనకు అంతకంటే ఎక్కువ అవసరం ఉంది, ఎందుకంటే ఒక బటన్ నొక్కినప్పుడు ఎనిమిది ఎల్ఈడీ లైట్లను వరుసగా మెరుస్తూ ఉండాలని యోచిస్తున్నాము. ఆసక్తికరంగా ఉండటానికి మరొక బటన్ నొక్కినప్పుడు మేము క్రమాన్ని కూడా మారుస్తాము. కాబట్టి మనం 8 ఎల్ఈడి లైట్లు మరియు రెండు స్విచ్లతో ఒక సర్క్యూట్ నిర్మించాలి, పూర్తి సర్క్యూట్ రేఖాచిత్రం క్రింద చూడవచ్చు.
ఇక్కడ 8 LED లు అవుట్పుట్లు మరియు రెండు స్విచ్లు ఇన్పుట్లు. మేము వీటిని బోర్డులోని ఏదైనా I / O పిన్తో కనెక్ట్ చేయవచ్చు, కాని నేను LRD లను పిన్ P1.0 నుండి P2.1 కి కనెక్ట్ చేసాను మరియు పైన చూపిన విధంగా వరుసగా P2.4 మరియు P2.3 ను పిన్ చేయడానికి 1 మరియు 2 ని మార్చాను.
LED యొక్క అన్ని కాథోడ్ పిన్లు భూమికి ముడిపడివుంటాయి మరియు యానోడ్ పిన్ ఒక రెసిస్టర్ ద్వారా I / O పిన్లకు అనుసంధానించబడి ఉంటుంది. ఈ రెసిస్టర్ను కరెంట్ లిమిటింగ్ రెసిస్టర్ అని పిలుస్తారు, ఈ రెసిస్టర్ను MSP430 కోసం తప్పనిసరి కాదు ఎందుకంటే గరిష్ట కరెంట్ I / O పిన్ చేయగల మూలం 6mA మాత్రమే మరియు పిన్పై వోల్టేజ్ 3.6V మాత్రమే. అయితే వాటిని ఉపయోగించడం మంచి పద్ధతి. ఈ డిజిటల్ పిన్స్ ఏవైనా అధికంగా ఉన్నప్పుడు సంబంధిత LED ఆన్ అవుతుంది. మీరు చివరి ట్యుటోరియల్స్ LED ప్రోగ్రామ్ను గుర్తుకు తెచ్చుకోగలిగితే, డిజిటల్ రైట్ (LED_pin_name, HIGH) LED ని మెరుస్తుందని మరియు డిజిటల్ రైట్ (LED_pin_name, LOW) LED ని మారుస్తుందని మీరు గుర్తుంచుకుంటారు.
స్విచ్లు ఇన్పుట్ పరికరం, స్విచ్ యొక్క ఒక చివర గ్రౌండ్ టెర్మినల్కు అనుసంధానించబడి ఉంటుంది మరియు మరొకటి డిజిటల్ పిన్స్ P2.3 మరియు P2.4 లతో అనుసంధానించబడి ఉంటుంది. దీని అర్థం మనం స్విచ్ నొక్కినప్పుడల్లా I / O పిన్ (2.3 లేదా 2.4) గ్రౌన్దేడ్ అవుతుంది మరియు బటన్ నొక్కితే ఉచితంగా వదిలివేయబడుతుంది. ప్రోగ్రామింగ్ చేసేటప్పుడు ఈ అమరికను ఎలా ఉపయోగించవచ్చో చూద్దాం.
ప్రోగ్రామింగ్ వివరణ:
స్విచ్ 1 నొక్కినప్పుడు 8 ఎల్ఈడీని సీక్వెన్స్ పద్ధతిలో నియంత్రించడానికి ప్రోగ్రామ్ రాయాలి, ఆపై స్విచ్ 2 నొక్కినప్పుడు సీక్వెన్స్ మార్చాలి. పూర్తి కార్యక్రమం మరియు ప్రదర్శన వీడియో ఈ పేజీ దిగువన చూడవచ్చు. ఇంకా క్రింద నేను ప్రోగ్రామ్ లైన్ను లైన్ ద్వారా వివరిస్తాను, తద్వారా మీరు సులభంగా అర్థం చేసుకోగలరు.
ఎప్పటిలాగే మేము శూన్య సెటప్ () ఫంక్షన్తో ప్రారంభించాలి, దానిలో మనం ఉపయోగిస్తున్న పిన్లను ఇన్పుట్ లేదా అవుట్పుట్ పిన్ అని ప్రకటిస్తాము. మా ప్రోగ్రామ్లో 8 ఎల్ఈడీ పిన్లు అవుట్పుట్ మరియు 2 స్విచ్లు ఇన్పుట్లు. ఈ 8 LED లు P1.0 నుండి P2.1 వరకు అనుసంధానించబడి ఉన్నాయి, ఇది బోర్డులో పిన్ సంఖ్య 2 నుండి 9 వరకు ఉంటుంది. అప్పుడు స్విచ్లు పిన్ P2.3 మరియు పిన్ 2.4 లతో అనుసంధానించబడి ఉంటాయి, ఇవి వరుసగా పిన్ సంఖ్య 11 మరియు 12. కాబట్టి మేము ఈ క్రింది వాటిని శూన్య సెటప్ () లో ప్రకటించాము
(int i = 2; i <= 9; i ++) {pinMode (i, OUTPUT) కోసం శూన్య సెటప్ ();; } for (int i = 2; i <= 9; i ++) {DigitalWrite (i, LOW); } పిన్మోడ్ (11, INPUT_PULLUP); పిన్మోడ్ (12, INPUT_PULLUP); }
మేము తెలిసి pinMode () ఫంక్షన్ అవుట్పుట్ లేదా ఇన్పుట్ మరియు పిన్ ప్రకటించాడు digitalWrite () ఫంక్షన్ అధిక (ON) లేదా తక్కువ (OFF) చేస్తుంది. మేము ఒక ఉపయోగించారు కోసం పంక్తులు కోసం సంఖ్య తగ్గించడానికి ఈ ప్రకటన చేయడానికి లూప్. ఫర్ లూప్లో “i” అనే వేరియబుల్ 2 నుండి 9 వరకు పెంచబడుతుంది మరియు ప్రతి ఇంక్రిమెంట్ కోసం లోపల ఫంక్షన్ అమలు అవుతుంది. మిమ్మల్ని గందరగోళపరిచే మరో విషయం “ INPUT_PULLUP ”. పిన్మోడ్ (పిన్_పేరు, INPUT) ఫంక్షన్ను పిలవడం ద్వారా పిన్ని ఇన్పుట్గా ప్రకటించవచ్చు , కాని ఇక్కడ మనం INPUT కి బదులుగా INPUT_PULLUP ని ఉపయోగించాము మరియు అవి రెండూ గుర్తించదగిన మార్పును కలిగి ఉన్నాయి.
మేము ఏదైనా మైక్రోకంట్రోలర్ పిన్లను ఉపయోగిస్తున్నప్పుడు, పిన్ను తక్కువ లేదా అధికంగా కనెక్ట్ చేయాలి. ఈ సందర్భంలో పిన్ 11 మరియు 12 స్విచ్కు అనుసంధానించబడి ఉంటాయి, అది నొక్కినప్పుడు భూమికి అనుసంధానించబడుతుంది. స్విచ్ నొక్కినప్పుడు పిన్ దేనితోనూ కనెక్ట్ కాలేదు ఈ పరిస్థితిని ఫ్లోటింగ్ పిన్ అంటారు మరియు ఇది మైక్రోకంట్రోలర్లకు చెడ్డది. కాబట్టి దీనిని నివారించడానికి మేము పుల్-అప్ లేదా పుల్-డౌన్ రెసిస్టర్ని ఉపయోగిస్తాము, అది తేలియాడేటప్పుడు పిన్ను ఒక స్థితికి పట్టుకోండి. లో MSP430G2553 సూక్ష్మ I / O పిన్స్ లో నిర్మించిన ఒక పుల్ అప్ నిరోధకం ఉంటుంది. మనం చేయాల్సిందల్లా డిక్లరేషన్ సమయంలో INPUT కి బదులుగా INPUT_PULLUP కి కాల్ చేయడమే.
ఇప్పుడు శూన్య లూప్ () ఫంక్షన్లోకి అడుగు పెట్టడానికి అనుమతిస్తుంది. ఈ ఫంక్షన్లో వ్రాయబడినవి ఎప్పటికీ అమలు చేయబడతాయి. మా ప్రోగ్రామ్లో మొదటి దశ ఏమిటంటే , స్విచ్ నొక్కిందో లేదో తనిఖీ చేయడం మరియు నొక్కితే మనం ఎల్ఈడీలను వరుసగా బ్లింక్ చేయడం ప్రారంభించాలి. బటన్ నొక్కినట్లు తనిఖీ చేయడానికి క్రింది పంక్తి ఉపయోగించబడుతుంది
if (DigitalRead (12) == తక్కువ)
ఇక్కడ క్రొత్త ఫంక్షన్ డిజిటల్ రీడ్ () ఫంక్షన్, ఈ ఫంక్షన్ డిజిటల్ పిన్ యొక్క స్థితిని చదువుతుంది మరియు పిన్ కొంత వోల్టేజ్ పొందుతున్నప్పుడు HIGH (1) ను తిరిగి ఇస్తుంది మరియు పిన్ గ్రౌన్దేడ్ అయినప్పుడు తక్కువ (0) తిరిగి వస్తుంది. మా హార్డ్వేర్లో, మేము బటన్ను నొక్కినప్పుడు మాత్రమే పిన్ గ్రౌన్దేడ్ అవుతుంది, లేకపోతే మనం పుల్-అప్ రెసిస్టర్ను ఉపయోగించినందున అది ఎక్కువగా ఉంటుంది. కాబట్టి బటన్ నొక్కినట్లు తనిఖీ చేయడానికి మేము if స్టేట్మెంట్ ఉపయోగిస్తాము.
బటన్ నొక్కిన తర్వాత (1) లూప్ అయితే మనం అనంతంలోకి వెళ్తాము. ఇక్కడే మనం ఎల్ఈడీలను క్రమం తప్పకుండా రెప్ప వేయడం ప్రారంభిస్తాము. ఒక అనంతమైన లూప్ క్రింద చూపించాం అయితే మరియు లూప్ ఒక విరామం వరకు ఎప్పటికీ రన్ చేస్తుంది లోపల రాస్తారు సంసార; స్టేట్మెంట్ ఉపయోగించబడుతుంది.
whiel (1) {}
పిన్ 11 కి అనుసంధానించబడిన రెండవ స్విచ్ యొక్క స్థితిని మేము తనిఖీ చేస్తున్నప్పుడు అనంతం లోపల.
ఈ స్విచ్ నొక్కితే మనం ఎల్ఈడీని ఒక నిర్దిష్ట సీక్వెన్స్లో బ్లింక్ చేస్తాము, లేకపోతే మరొక సీక్వెన్స్లో బ్లింక్ చేస్తాము.
if (డిజిటల్ రీడ్ (11) == తక్కువ) {(int i = 2; i <= 9; i ++) {DigitalWrite (i, HIGH); ఆలస్యం (100); } for (int i = 2; i <= 9; i ++) DigitalWrite (i, LOW); }
టు క్రమంలో LED బ్లింక్ మేము మళ్ళీ ఉపయోగించడానికి కోసం లూప్, కానీ మేము ఉపయోగించి 100 మిల్లీసెకన్లు ఒక చిన్న ఆలస్యం ఉపయోగించడానికి ఈ సమయంలో ఆలస్యం (100) కాబట్టి ఫంక్షన్ మేము LED అధిక పొందడానికి గమనించవచ్చు. ఒక సమయంలో ఒక ఎల్ఈడీ గ్లో మాత్రమే చేయడానికి, అన్ని ఎల్ఈడీలను ఆపివేయడానికి లూప్ కోసం మరొకదాన్ని కూడా ఉపయోగిస్తాము. కాబట్టి మేము కొంత సమయం వరకు లెడ్ వెయిట్ ఆన్ చేసి, ఆపై అన్ని ఎల్ఈడిలను ఆపివేసి, ఎల్ఈడి నిరీక్షణపై కౌంట్ టర్న్ ను కొంత సమయం పెంచండి మరియు చక్రం కొనసాగుతుంది. రెండవ స్విచ్ నొక్కినంతవరకు ఇవన్నీ జరుగుతాయి.
రెండవ స్విచ్ నొక్కితే, మేము క్రమాన్ని మార్చుకుంటాము, ఎల్ఈడీ ఆన్ చేయబడిన సీక్వెన్స్ కోసం ప్రోగ్రామ్ ఎక్కువ లేదా తక్కువ ఉంటుంది. క్రింద చూపిన పంక్తులు పరిశీలించి, మార్చబడిన వాటిని గుర్తించడానికి ప్రయత్నించండి.
else {for (int i = 9; i> = 2; i--) {DigitalWrite (i, HIGH); ఆలస్యం (100); } for (int i = 2; i <= 9; i ++) DigitalWrite (i, LOW); }
అవును, ఫర్ లూప్ మార్చబడింది. ఇంతకుముందు మనం ఎల్ఈడీని నంబర్ 2 నుండి మరియు 9 వరకు మెరుస్తూ ఉండేలా చేసాము. కాని ఇప్పుడు మనం 9 వ సంఖ్య నుండి ప్రారంభించి 2 కి తగ్గబోతున్నాం. ఈ విధంగా స్విచ్ నొక్కినా లేదా అనే విషయాన్ని మనం గమనించవచ్చు.
LED సీక్వెన్స్ మెరిసే హార్డ్వేర్ సెటప్:
అన్ని సిద్ధాంతం మరియు సాఫ్ట్వేర్ భాగం సరిపోతుంది. లెట్స్, కొన్ని భాగాలను పొందండి మరియు ఈ ప్రోగ్రామ్ ఎలా పనిచేస్తుందో చూద్దాం. సర్క్యూట్ చాలా సులభం మరియు అందువల్ల బ్రెడ్బోర్డ్లో సులభంగా నిర్మించవచ్చు. కానీ నేను ఎల్ఈడీని టంకం చేసి, చక్కగా కనిపించేలా పెర్ఫ్ బోర్డులో స్విచ్ చేసాను. నేను సాల్డర్ చేసిన పెర్ఫ్ బోర్డు క్రింద చూపబడింది.
మీరు చూడగలిగినట్లుగా, మనకు LED యొక్క అవుట్పుట్ పిన్స్ ఉన్నాయి మరియు కనెక్టర్ పిన్స్ వలె తీయబడతాయి. దిగువ చిత్రంలో చూపిన విధంగా ఇప్పుడు మనం ఎల్ఈడీలను కనెక్ట్ చేయడానికి ఆడ నుండి ఆడ కనెక్టర్ వైర్లను ఉపయోగించాము మరియు MSP430 లాంచ్ప్యాడ్ బోర్డ్కు మారాము.
అప్లోడ్ మరియు పని:
మీరు హార్డ్వేర్తో పూర్తి చేసిన తర్వాత, మీ కంప్యూటర్కు MSP430 బోర్డ్ను కనెక్ట్ చేసి, ఎనర్జియా IDE ని తెరిచి, ఈ పేజీ చివరిలో ఇచ్చిన ప్రోగ్రామ్ను ఉపయోగించండి. ఎనర్జియా IDE లో కుడి బోర్డు మరియు COM పోర్ట్ ఎంచుకోబడిందని నిర్ధారించుకోండి మరియు అప్లోడ్ బటన్ పై క్లిక్ చేయండి. ప్రోగ్రామ్ విజయవంతంగా కంపైల్ చేయబడాలి మరియు అప్లోడ్ చేసిన తర్వాత “అప్లోడ్ పూర్తయింది” చూపబడుతుంది.
ఇప్పుడు బోర్డులోని బటన్ 1 ని నొక్కండి మరియు క్రింద చూపిన విధంగా LED వరుసక్రమంలో వెలిగించాలి
క్రమం మార్చబడుతుందో లేదో తనిఖీ చేయడానికి మీరు రెండవ బటన్ను కూడా నొక్కి ఉంచవచ్చు. ప్రాజెక్ట్ యొక్క పూర్తి పని క్రింది వీడియోలో చూపబడింది. మీరు ఫలితాలతో సంతృప్తి చెందితే, క్రమాన్ని మార్చడం ఆలస్యం సమయాన్ని మార్చడం వంటి కోడ్లో కొన్ని మార్పులు చేయడానికి ప్రయత్నించవచ్చు. ఇది మీకు బాగా తెలుసుకోవడానికి మరియు బాగా అర్థం చేసుకోవడానికి సహాయపడుతుంది.
మీరు ట్యుటోరియల్ అర్థం చేసుకున్నారని మరియు దానితో ఉపయోగకరమైనదాన్ని నేర్చుకున్నారని ఆశిస్తున్నాము. మీరు ఏదైనా సమస్యను ఎదుర్కొన్నట్లయితే, దయచేసి వ్యాఖ్య విభాగంలో ప్రశ్నను పోస్ట్ చేయడానికి సంకోచించకండి లేదా ఫోరమ్లను ఉపయోగించండి. మన MSP30 లాంచ్ ప్యాడ్ ఉపయోగించి అనలాగ్ వోల్టేజ్లను ఎలా చదవాలో నేర్చుకునే మరొక ట్యుటోరియల్ లో కలుద్దాం.