ఈ ట్యుటోరియల్లో మేము DC మోటారును Arduino UNO కి ఇంటర్ఫేస్ చేయబోతున్నాము మరియు PWM (పల్స్ వెడల్పు మాడ్యులేషన్) భావనను ఉపయోగించి దాని వేగాన్ని నియంత్రించబోతున్నాము. స్థిరమైన వోల్టేజ్ కంటే వేరియబుల్ వోల్టేజ్ పొందడానికి ఈ లక్షణం UNO లో ప్రారంభించబడింది. PWM యొక్క పద్ధతి ఇక్కడ వివరించబడింది; చిత్రంలో చూపిన విధంగా సాధారణ సర్క్యూట్ను పరిగణించండి.
బొమ్మ ఉంటే బటన్ నొక్కితే, అప్పుడు మోటారు తిరగడం ప్రారంభమవుతుంది మరియు బటన్ నొక్కినంత వరకు అది కదలికలో ఉంటుంది. ఈ నొక్కడం నిరంతరాయంగా ఉంటుంది మరియు ఇది మొదటి వేవ్ ఫిగర్లో సూచించబడుతుంది. ఒకవేళ, పరిగణించండి బటన్ 8ms కోసం నొక్కి 10ms చక్రంలో 2ms కోసం తెరిస్తే, ఈ సందర్భంలో మోటారు పూర్తి 9V బ్యాటరీ వోల్టేజ్ను అనుభవించదు ఎందుకంటే బటన్ 8ms మాత్రమే నొక్కినప్పుడు, కాబట్టి RMS టెర్మినల్ వోల్టేజ్ అంతటా మోటారు 7V చుట్టూ ఉంటుంది. ఈ తగ్గిన RMS వోల్టేజ్ కారణంగా మోటారు తిరుగుతుంది కాని తక్కువ వేగంతో ఉంటుంది. ఇప్పుడు సగటు 10ms వ్యవధిలో ఆన్ చేయండి = సమయం ఆన్ చేయండి / (సమయం ఆన్ చేయండి + సమయం ఆఫ్ చేయండి), దీనిని డ్యూటీ సైకిల్ అని పిలుస్తారు మరియు ఇది 80% (8 / (8 + 2%) గా ఉంటుంది.
రెండవ మరియు మూడవ కేసులలో మొదటి కేసుతో పోలిస్తే బటన్ కూడా తక్కువ సమయం నొక్కబడుతుంది. ఈ కారణంగా, మోటారు టెర్మినల్స్ వద్ద RMS టెర్మినల్ వోల్టేజ్ మరింత తగ్గుతుంది. ఈ తగ్గిన వోల్టేజ్ కారణంగా మోటారు వేగం మరింత తగ్గుతుంది. మోటారును తిప్పడానికి మోటారు టెర్మినల్ వోల్టేజ్ సరిపోని చోట, పాయింట్ వరకు నిరంతరాయంగా విధి చక్రంతో ఇది తగ్గుతుంది.
కాబట్టి దీని ద్వారా మనం మోటారు వేగాన్ని మార్చడానికి PWM ను ఉపయోగించవచ్చని నిర్ధారించవచ్చు.
మరింత ముందుకు వెళ్ళే ముందు మనం H-BRIDGE గురించి చర్చించాలి. ఇప్పుడు ఈ సర్క్యూట్లో ప్రధానంగా రెండు విధులు ఉన్నాయి, మొదట తక్కువ శక్తి నియంత్రణ సిగ్నల్స్ నుండి DC మోటారును నడపడం మరియు మరొకటి DC మోటారు యొక్క భ్రమణ దిశను మార్చడం.
మూర్తి 1
మూర్తి 2
DC మోటారు కోసం, భ్రమణ దిశను మార్చడానికి, మోటారు యొక్క సరఫరా వోల్టేజ్ యొక్క ధ్రువణతలను మార్చాల్సిన అవసరం ఉందని మనందరికీ తెలుసు. కాబట్టి ధ్రువణతలను మార్చడానికి మేము హెచ్-బ్రిడ్జిని ఉపయోగిస్తాము. ఇప్పుడు పై ఫిగర్ 1 లో మనకు ఫోర్ స్విచ్లు ఉన్నాయి. ఫిగర్ 2 లో చూపినట్లుగా, మోటారు A1 మరియు A2 ను తిప్పడానికి మూసివేయబడుతుంది. ఈ కారణంగా, ఫిగర్ 3 యొక్క 2 వ భాగంలో చూపిన విధంగా ప్రస్తుతము మోటారు ద్వారా కుడి నుండి ఎడమకు ప్రవహిస్తుంది. ప్రస్తుతానికి మోటారు సవ్యదిశలో తిరుగుతుందని పరిగణించండి. ఇప్పుడు A1 మరియు A2 స్విచ్లు తెరిస్తే, B1 మరియు B2 మూసివేయబడతాయి. మోటారు ద్వారా ప్రవాహం 1 స్టంప్లో చూపిన విధంగా ఎడమ నుండి కుడికి ప్రవహిస్తుంది ఫిగర్ 3 యొక్క భాగం. ప్రస్తుత ప్రవాహం యొక్క ఈ దిశ మొదటిదానికి వ్యతిరేకం మరియు కాబట్టి మోటారు టెర్మినల్ వద్ద మొదటిదానికి వ్యతిరేక శక్తిని మేము చూస్తాము, కాబట్టి మోటారు యాంటీ క్లాక్ వారీగా తిరుగుతుంది. H-BRIDGE ఈ విధంగా పనిచేస్తుంది. అయితే తక్కువ పవర్ మోటార్లు H-BRIDGE IC L293D చేత నడపబడతాయి.
L293D అనేది తక్కువ శక్తి గల DC మోటార్లు నడపడానికి రూపొందించిన H-BRIDGE IC మరియు ఇది చిత్రంలో చూపబడింది. ఈ ఐసిలో రెండు హెచ్-బ్రిడ్జిలు ఉన్నాయి మరియు కనుక ఇది రెండు డిసి మోటార్లు నడపగలదు. కాబట్టి మైక్రోకంట్రోలర్ యొక్క సిగ్నల్స్ నుండి రోబోట్ యొక్క మోటార్లు నడపడానికి ఈ ఐసిని ఉపయోగించవచ్చు.
ఇప్పుడు ఈ IC కి ముందు చర్చించినట్లుగా DC మోటారు యొక్క భ్రమణ దిశను మార్చగల సామర్థ్యం ఉంది. INPUT1 మరియు INPUT2 వద్ద వోల్టేజ్ స్థాయిలను నియంత్రించడం ద్వారా ఇది సాధించబడుతుంది.
పిన్ ప్రారంభించండి |
ఇన్పుట్ పిన్ 1 |
ఇన్పుట్ పిన్ 2 |
మోటార్ డైరెక్షన్ |
అధిక |
తక్కువ |
అధిక |
కుడివైపుకు తిరుగు |
అధిక |
అధిక |
తక్కువ |
ఎడమవైపు తిరగండి |
అధిక |
తక్కువ |
తక్కువ |
ఆపు |
అధిక |
అధిక |
అధిక |
ఆపు |
కాబట్టి పై చిత్రంలో చూపినట్లుగా, సవ్యదిశలో భ్రమణం 2A ఎక్కువగా ఉండాలి మరియు 1A తక్కువగా ఉండాలి. అదేవిధంగా యాంటీ సవ్యదిశలో 1A ఎక్కువగా ఉండాలి మరియు 2A తక్కువగా ఉండాలి.
చిత్రంలో చూపినట్లుగా, Arduino UNO 6PWM ఛానెల్లను కలిగి ఉంది, కాబట్టి మనం ఈ ఆరు పిన్లలో దేనినైనా PWM (వేరియబుల్ వోల్టేజ్) పొందవచ్చు. ఈ ట్యుటోరియల్లో మనం పిన్ 3 ను పిడబ్ల్యుఎం అవుట్పుట్గా ఉపయోగించబోతున్నాం.
హార్డ్వేర్: ARDUINO UNO, విద్యుత్ సరఫరా (5v), 100uF కెపాసిటర్, LED, బటన్లు (రెండు ముక్కలు), 10KΩ రెసిస్టర్ (రెండు ముక్కలు).
సాఫ్ట్వేర్: arduino IDE (Arduino nightly).
సర్క్యూట్ రేఖాచిత్రం
పైన చూపిన సర్క్యూట్ రేఖాచిత్రం ప్రకారం సర్క్యూట్ బ్రెడ్బోర్డ్లో అనుసంధానించబడి ఉంది. అయితే ఎల్ఈడీ టెర్మినల్స్ను కనెక్ట్ చేసేటప్పుడు తప్పక శ్రద్ధ వహించాలి. ఈ సందర్భంలో బటన్లు బౌన్స్ ప్రభావాన్ని చూపించినప్పటికీ ఇది గణనీయమైన లోపాలను కలిగించదు కాబట్టి మేము ఈసారి ఆందోళన చెందాల్సిన అవసరం లేదు.
UNO నుండి PWM సులభం, సాధారణ సందర్భాల్లో PWM సిగ్నల్ కోసం ATMEGA కంట్రోలర్ను ఏర్పాటు చేయడం అంత సులభం కాదు, ఖచ్చితమైన సిగ్నల్ కోసం మేము చాలా రిజిస్టర్లు మరియు సెట్టింగులను నిర్వచించాలి, అయితే ARDUINO లో మేము ఆ విషయాలన్నిటినీ ఎదుర్కోవాల్సిన అవసరం లేదు.
అప్రమేయంగా అన్ని హెడర్ ఫైల్స్ మరియు రిజిస్టర్లు ARDUINO IDE చేత ముందే నిర్వచించబడ్డాయి, మేము వాటిని కాల్ చేయాలి మరియు అంతే పిన్ వద్ద PWM అవుట్పుట్ ఉంటుంది.
ఇప్పుడు తగిన పిన్ వద్ద PWM అవుట్పుట్ పొందడానికి, మేము మూడు విషయాలపై పని చేయాలి,
|
మొదట మనం ఆరు పిన్ల నుండి పిడబ్ల్యుఎం అవుట్పుట్ పిన్ను ఎన్నుకోవాలి, ఆ తరువాత మనం ఆ పిన్ను అవుట్పుట్ గా సెట్ చేయాలి.
తరువాత మనం “అనలాగ్రైట్ (పిన్, విలువ)” ఫంక్షన్ను పిలవడం ద్వారా UNO యొక్క PWM లక్షణాన్ని ప్రారంభించాలి. ఇక్కడ 'పిన్' పిన్ నంబర్ను సూచిస్తుంది, ఇక్కడ మనకు పిడబ్ల్యుఎం అవుట్పుట్ అవసరం. కాబట్టి PIN3 వద్ద మేము PWM అవుట్పుట్ పొందుతున్నాము.
విలువ 0 (ఎల్లప్పుడూ ఆఫ్) మరియు 255 (ఎల్లప్పుడూ ఆన్) మధ్య టర్న్ ఆన్ డ్యూటీ చక్రం. మేము బటన్ ప్రెస్ ద్వారా ఈ సంఖ్యను పెంచబోతున్నాము.
UNO గరిష్ట రిజల్యూషన్ “8” ను కలిగి ఉంది, అందువల్ల 0-255 నుండి విలువలు ముందుకు వెళ్ళలేవు. అయినప్పటికీ, "అనలాగ్రైట్ రిజల్యూషన్ ()" కమాండ్ ఉపయోగించి పిడబ్ల్యుఎమ్ యొక్క రిజల్యూషన్ను తగ్గించవచ్చు, బ్రాకెట్లలో 4-8 నుండి విలువను నమోదు చేయడం ద్వారా, మేము దాని విలువను నాలుగు బిట్ పిడబ్ల్యుఎం నుండి ఎనిమిది బిట్ పిడబ్ల్యుఎంకు మార్చవచ్చు.
DC మోటారు కోసం భ్రమణ దిశను మార్చడం స్విచ్.