- పిడబ్ల్యుఎం సిగ్నల్ అంటే ఏమిటి?
- పిడబ్ల్యుఎం సిగ్నల్ను అనలాగ్ వోల్టేజ్గా మార్చడం ఎలా?
- సర్క్యూట్ రేఖాచిత్రం:
- PWM సిగ్నల్ కోసం MSP ని ప్రోగ్రామింగ్:
- PWM తో LED యొక్క ప్రకాశాన్ని నియంత్రించడం:
ఈ ట్యుటోరియల్ MSP430G2 లాంచ్ప్యాడ్ ట్యుటోరియల్ల శ్రేణిలో ఒక భాగం, దీనిలో మేము టెక్సాస్ ఇన్స్ట్రుమెంట్స్ నుండి MSP430G2 లాంచ్ప్యాడ్ను ఉపయోగించడం నేర్చుకుంటున్నాము. ఇప్పటివరకు మేము బోర్డు యొక్క ప్రాథమికాలను నేర్చుకున్నాము మరియు అనలాగ్ వోల్టేజ్, MSP430G2 తో ఇంటర్ఫేస్ LCD మొదలైనవాటిని ఎలా చదవాలో కవర్ చేసాము. ఇప్పుడు మేము MSP430G2 లో PWM గురించి నేర్చుకునే తదుపరి దశతో ముందుకు వెళ్తాము. పొటెన్షియోమీటర్ను మార్చడం ద్వారా LED యొక్క ప్రకాశాన్ని నియంత్రించడం ద్వారా మేము దీన్ని చేస్తాము. కాబట్టి పొటెన్షియోమీటర్ దాని అనలాగ్ వోల్టేజ్ చదవడానికి MSP430 యొక్క అనలాగ్ పిన్తో జతచేయబడుతుంది, అందువల్ల కొనసాగడానికి ముందు ADC ట్యుటోరియల్ ద్వారా తెలుసుకోవడం మంచిది.
పిడబ్ల్యుఎం సిగ్నల్ అంటే ఏమిటి?
పల్స్ వెడల్పు మాడ్యులేషన్ (పిడబ్ల్యుఎం) అనేది డిజిటల్ సిగ్నల్, ఇది సాధారణంగా కంట్రోల్ సర్క్యూట్లో ఉపయోగించబడుతుంది. ఈ సిగ్నల్ ముందే నిర్వచించిన సమయం మరియు వేగంతో అధిక (3.3 వి) మరియు తక్కువ (0 వి) గా సెట్ చేయబడింది. సిగ్నల్ ఎక్కువగా ఉండే సమయాన్ని “ఆన్ టైమ్” అని పిలుస్తారు మరియు సిగ్నల్ తక్కువగా ఉండే సమయాన్ని “ఆఫ్ టైమ్” అంటారు. క్రింద చర్చించినట్లు PWM కోసం రెండు ముఖ్యమైన పారామితులు ఉన్నాయి:
PWM యొక్క విధి చక్రం:
PWM సిగ్నల్ HIGH (సమయానికి) గా మిగిలి ఉన్న సమయాన్ని డ్యూటీ సైకిల్ అంటారు. సిగ్నల్ ఎల్లప్పుడూ ఆన్లో ఉంటే అది 100% డ్యూటీ సైకిల్లో ఉంటుంది మరియు ఇది ఎల్లప్పుడూ ఆఫ్లో ఉంటే అది 0% డ్యూటీ సైకిల్.
డ్యూటీ సైకిల్ = సమయం ఆన్ చేయండి / (సమయం ఆన్ చేయండి + సమయం ఆఫ్ చేయండి)
PWM యొక్క ఫ్రీక్వెన్సీ:
PWM సిగ్నల్ యొక్క ఫ్రీక్వెన్సీ ఒక PWM ఒక కాలాన్ని ఎంత వేగంగా పూర్తి చేస్తుందో నిర్ణయిస్తుంది. పై చిత్రంలో చూపిన విధంగా ఒక కాలం PWM సిగ్నల్ యొక్క ఆన్ మరియు ఆఫ్ పూర్తయింది. మా ట్యుటోరియల్లో ఫ్రీక్వెన్సీ 500Hz గా ఉంటుంది, ఎందుకంటే ఇది ఎనర్జియా IDE చే సెట్ చేయబడిన డిఫాల్ట్ విలువ.
నిజ సమయంలో పిడబ్ల్యుఎం సిగ్నల్స్ కోసం అనువర్తనాలు చాలా ఉన్నాయి, కానీ మీకు ఒక ఆలోచన ఇవ్వడానికి పిడబ్ల్యుఎం సిగ్నల్ సర్వో మోటార్స్ ను నియంత్రించడానికి ఉపయోగించవచ్చు మరియు అనలాగ్ వోల్టేజ్ గా మార్చవచ్చు, ఇది ఎల్ఇడి యొక్క ప్రకాశం యొక్క ప్రకాశాన్ని నియంత్రించగలదు. అది ఎలా చేయవచ్చనే దాని గురించి కొంచెం తెలుసుకుందాం.
ఇతర మైక్రోకంట్రోలర్తో కొన్ని PWM ఉదాహరణలు ఇక్కడ ఉన్నాయి:
- MPLAB మరియు XC8 తో PIC మైక్రోకంట్రోలర్ ఉపయోగించి PWM ను ఉత్పత్తి చేస్తుంది
- రాస్ప్బెర్రీ పైతో సర్వో మోటార్ కంట్రోల్
- పిడబ్ల్యుఎం ఉపయోగించి ఆర్డునో బేస్డ్ ఎల్ఈడి డిమ్మర్
పిడబ్ల్యుఎం సంబంధిత ప్రాజెక్టులన్నింటినీ ఇక్కడ తనిఖీ చేయండి.
పిడబ్ల్యుఎం సిగ్నల్ను అనలాగ్ వోల్టేజ్గా మార్చడం ఎలా?
అనలాగ్ వోల్టేజ్కు పిడబ్ల్యుఎం సిగ్నల్లకు మనం ఆర్సి ఫిల్టర్ అనే సర్క్యూట్ను ఉపయోగించవచ్చు. ఈ ప్రయోజనం కోసం ఇది సరళమైన మరియు సాధారణంగా ఉపయోగించే సర్క్యూట్. దిగువ సర్క్యూట్లో చూపిన విధంగా సర్క్యూట్లో రెసిస్టర్ మరియు సిరీస్లో కెపాసిటర్ ఉన్నాయి.
కాబట్టి ఇక్కడ ప్రాథమికంగా ఏమి జరుగుతుందంటే, పిడబ్ల్యుఎం సిగ్నల్ ఎక్కువగా ఉన్నప్పుడు కెపాసిటర్ రెసిస్టర్ అయినప్పటికీ ఛార్జ్ అవుతుంది మరియు పిడబ్ల్యుఎం సిగ్నల్ తక్కువగా ఉన్నప్పుడు నిల్వ చేసిన ఛార్జ్ ద్వారా కెపాసిటర్ డిశ్చార్జ్ అవుతుంది. ఈ విధంగా PWM విధి చక్రానికి అనులోమానుపాతంలో ఉండే అవుట్పుట్ వద్ద మనకు ఎల్లప్పుడూ స్థిరమైన వోల్టేజ్ ఉంటుంది.
పైన చూపిన గ్రాఫ్లో, పసుపు రంగు ఒకటి పిడబ్ల్యుఎం సిగ్నల్ మరియు నీలం రంగు ఒకటి అవుట్పుట్ అనలాగ్ వోల్టేజ్. మీరు చూడగలిగినట్లుగా అవుట్పుట్ వేవ్ స్వచ్ఛమైన DC వేవ్ కాదు, కానీ ఇది మా అప్లికేషన్ కోసం బాగా పని చేస్తుంది. ఇతర రకాల అనువర్తనాల కోసం మీకు స్వచ్ఛమైన DC వేవ్ అవసరమైతే మీరు స్విచ్చింగ్ సర్క్యూట్ను రూపొందించాలి.
సర్క్యూట్ రేఖాచిత్రం:
సర్క్యూట్ రేఖాచిత్రం చాలా సులభం; ఇది కేవలం ఒక RC సర్క్యూట్ మరియు లెడ్ను రూపొందించడానికి ఒక పొటెన్షియోమీటర్ మరియు రెసిస్టర్ మరియు కెపాసిటర్ను కలిగి ఉంది. పిడబ్ల్యుఎం సిగ్నల్ డ్యూటీ చక్రాన్ని నియంత్రించగల అనలాగ్ వోల్టేజ్ను అందించడానికి పొటెన్షియోమీటర్ ఉపయోగించబడుతుంది. కుండ యొక్క అవుట్పుట్ పిన్ P1.0 కి అనుసంధానించబడి ఉంది, ఇది అనలాగ్ వోల్టేజ్లను చదవగలదు. అప్పుడు మేము పిడబ్ల్యుఎం సిగ్నల్ను ఉత్పత్తి చేయాలి, పిన్ పి 1.2 ను ఉపయోగించడం ద్వారా చేయవచ్చు, పిడబ్ల్యుఎం సిగ్నల్ను పిసిడబ్ల్యుఎం సిగ్నల్ను అనలాగ్ వోల్టేజ్గా మార్చడానికి ఆర్సి ఫిల్టర్ సర్క్యూట్కు పంపబడుతుంది, తరువాత దానిని ఎల్ఇడికి ఇస్తారు.
MSP బోర్డ్లోని అన్ని పిన్లు అనలాగ్ వోల్టేజ్ను చదవలేవు లేదా PWM పిన్లను ఉత్పత్తి చేయగలవని అర్థం చేసుకోవడం చాలా ముఖ్యం. నిర్దిష్ట పనులను చేయగల నిర్దిష్ట పిన్స్ క్రింది చిత్రంలో చూపించబడ్డాయి. ప్రోగ్రామింగ్ కోసం మీ పిన్లను ఎంచుకోవడానికి దీన్ని ఎల్లప్పుడూ మార్గదర్శకంగా ఉపయోగించండి.
పైన చూపిన విధంగా పూర్తి సర్క్యూట్ను సమీకరించండి, మీరు బ్రెడ్బోర్డ్ మరియు కొన్ని జంపర్ వైర్లను ఉపయోగించవచ్చు మరియు సులభంగా కనెక్షన్లను చేయవచ్చు. కనెక్షన్లు పూర్తయిన తర్వాత నా బోర్డు క్రింద చూపిన విధంగా కనిపిస్తుంది.
PWM సిగ్నల్ కోసం MSP ని ప్రోగ్రామింగ్:
హార్డ్వేర్ సిద్ధమైన తర్వాత మన ప్రోగ్రామింగ్ తో ప్రారంభించవచ్చు. ఒక ప్రోగ్రామ్లో మొదటి విషయం ఏమిటంటే, మనం ఉపయోగించబోయే పిన్లను ప్రకటించడం. ఇక్కడ పిన్ నంబర్ 4 (పి 1.2) ను మా అవుట్పుట్ పిన్గా ఉపయోగించబోతున్నాం ఎందుకంటే దీనికి పిడబ్ల్యుఎం ఉత్పత్తి చేసే సామర్థ్యం ఉంది. కాబట్టి మేము వేరియబుల్ ను క్రియేట్ చేసి పిన్ పేరును కేటాయిస్తాము, తద్వారా దానిని తరువాత ప్రోగ్రామ్ లో సూచించడం సులభం. పూర్తి ప్రోగ్రామ్ చివరిలో ఇవ్వబడుతుంది.
int PWMpin = 4; // మేము MSP మాడ్యూల్లోని 4 వ పిన్ను పిడబ్ల్యుఎం పిన్గా ఉపయోగిస్తున్నాము
తరువాత మనం సెటప్ ఫంక్షన్ లోకి వస్తాము . ఇక్కడ ఏ కోడ్ వ్రాసినా ఒక్కసారి మాత్రమే అమలు అవుతుంది, ఇక్కడ మేము ఈ 4 వ పిన్ను అవుట్పుట్ పిన్గా ఉపయోగిస్తున్నామని ప్రకటించాము ఎందుకంటే పిడబ్ల్యుఎం అవుట్పుట్ కార్యాచరణ. కోడ్ మరింత అర్ధవంతంగా కనిపించే విధంగా మేము ఇక్కడ 4 వ సంఖ్యకు బదులుగా PWMpin అనే వేరియబుల్ను ఉపయోగించామని గమనించండి
శూన్య సెటప్ () { పిన్మోడ్ (PWMpin, OUTPUT); // PEMpin అమర్చబడింది Outptut }
చివరగా మేము లూప్ ఫంక్షన్లోకి ప్రవేశిస్తాము . మనం ఇక్కడ ఏది వ్రాసినా మళ్లీ మళ్లీ అమలు అవుతుంది. ఈ ప్రోగ్రామ్లో మనం అనలాగ్ వోల్టేజ్ చదివి తదనుగుణంగా పిడబ్ల్యుఎం సిగ్నల్ను ఉత్పత్తి చేయాలి మరియు ఇది మళ్లీ మళ్లీ జరగాలి. కాబట్టి మొదట పిన్ A0 నుండి అనలాగ్ వోల్టేజ్ చదవడం ద్వారా ప్రారంభిద్దాం ఎందుకంటే మనం దానికి పొటెన్షియోమీటర్కు కనెక్ట్ చేసాము.
ఇక్కడ మేము AanalogRead ఫంక్షన్ ఉపయోగించి విలువను చదువుతున్నాము , ఈ ఫంక్షన్ పిన్కు వర్తించే వోల్టేజ్ విలువ ఆధారంగా 0-1024 నుండి విలువను తిరిగి ఇస్తుంది. మేము ఈ విలువను క్రింద చూపిన విధంగా “val” అనే వేరియబుల్కు నిల్వ చేస్తాము
int val = అనలాగ్ రీడ్ (A0); // పిన్ A0 నుండి ADC విలువను చదవండి
పిడబ్ల్యుఎం ఫంక్షన్కు ఇవ్వడానికి మనం 0 నుండి 1024 వరకు ఉన్న విలువలను ఎడిసి నుండి 0 నుండి 255 వరకు విలువలకు మార్చాలి. దీన్ని మనం ఎందుకు మార్చాలి? నేను త్వరలోనే చెబుతాను, కాని ప్రస్తుతానికి మనం మతం మార్చాలని గుర్తుంచుకోండి. విలువల సమితిని మరొక విలువలకు మార్చడానికి ఎనర్జియాకు ఆర్డునో మాదిరిగానే మ్యాప్ ఫంక్షన్ ఉంది. కాబట్టి మేము 0-1204 యొక్క విలువలను 0-255 గా మారుస్తాము మరియు దానిని తిరిగి "val" అనే వేరియబుల్ లో సేవ్ చేస్తాము.
val = పటం (val , 0, 1023, 0, 255); // ADC 0-1023 విలువను ఇస్తుంది, దానిని 0-255 గా మారుస్తుంది
ఇప్పుడు మనకు పొటెన్షియోమీటర్ యొక్క స్థానం ఆధారంగా 0-255 యొక్క వేరియబుల్ విలువ ఉంది. మనం చేయాల్సిందల్లా, ఈ విలువను పిడబ్ల్యుఎం పిన్లో ఉపయోగించడం ఈ క్రింది పంక్తిని ఉపయోగించి చేయవచ్చు.
అనలాగ్రైట్ (పిడబ్ల్యుఎంపిన్, వాల్); // ఆ విలువను పిడబ్ల్యుఎం పిన్కు రాయండి.
పిడబ్ల్యుఎం పిన్కు 0-255 ఎందుకు వ్రాయబడిందనే ప్రశ్నకు తిరిగి వద్దాం. ఈ విలువ 0-255 PWM సిగ్నల్ యొక్క విధి చక్రం నిర్ణయిస్తుంది. ఉదాహరణకు సిగ్నల్ విలువ 0 అయితే, దీని అర్థం విధి చక్రం 127 కి 0% అది 50% మరియు 255 కి ఇది 100% ఈ వ్యాసం పైభాగంలో చూపిన మరియు వివరించినట్లే.
PWM తో LED యొక్క ప్రకాశాన్ని నియంత్రించడం:
మీరు హార్డ్వేర్ మరియు కోడ్ను అర్థం చేసుకున్న తర్వాత, సర్క్యూట్ యొక్క పనితో కొంత ఆనందించండి. కోడ్ను MSP430G2 బోర్డ్కి అప్లోడ్ చేసి, పొటెన్షియోమీటర్ నాబ్ను తిప్పండి. మీరు నాబ్ను తిప్పినప్పుడు పిన్ 2 పై వోల్టేజ్ మారుతూ ఉంటుంది, ఇది మైక్రోకంట్రోలర్ చేత చదవబడుతుంది మరియు వోల్టేజ్ ప్రకారం పిన్ 4 పై పిడబ్ల్యుఎం సిగ్నల్స్ ఉత్పత్తి చేయబడతాయి. ఎక్కువ వోల్టేజ్, ఎక్కువ విధి చక్రం మరియు దీనికి విరుద్ధంగా ఉంటుంది.
ఈ పిడబ్ల్యుఎం సిగ్నల్ ఎల్ఇడిని మెరుస్తూ అనలాగ్ వోల్టేజ్గా మార్చబడుతుంది. LED యొక్క ప్రకాశం PWM సిగ్నల్ డ్యూటీ చక్రానికి నేరుగా అనులోమానుపాతంలో ఉంటుంది. బ్రెడ్బోర్డులోని ఎల్ఈడీతో పాటు, బ్రెడ్బోర్డ్ లీడ్ మాదిరిగానే దాని ప్రకాశం మారుతున్న ఎస్ఎమ్డి ఎల్ఇడి (ఎరుపు రంగు) ను కూడా మీరు గమనించవచ్చు. ఇది LED కూడా అదే పిన్తో అనుసంధానించబడి ఉంది, కానీ దీనికి RC నెట్వర్క్ లేదు కాబట్టి ఇది చాలా వేగంగా మినుకుమినుకుమనేది. బోర్డు దాని మెరిసే స్వభావాన్ని తనిఖీ చేయడానికి మీరు చీకటి గదిలో కదిలించవచ్చు. పూర్తి పని క్రింది వీడియోలో కూడా చూడవచ్చు.
ఇప్పుడే అందరికీ, MSP430G2 బోర్డ్లో PWM సిగ్నల్లను ఎలా ఉపయోగించాలో నేర్చుకున్నాము, మా తదుపరి ట్యుటోరియల్లో అదే PWM సిగ్నల్లను ఉపయోగించి సర్వో మోటారును నియంత్రించడం ఎంత సులభమో నేర్చుకుంటాము. మీకు ఏవైనా సందేహాలు ఉంటే వాటిని సాంకేతిక వ్యాఖ్య కోసం క్రింది వ్యాఖ్య విభాగంలో లేదా ఫోరమ్లలో పోస్ట్ చేయండి.