ఆర్డునోతో సర్వో మోటర్‌ను ఎలా నియంత్రించాలి

Ardunoto Sarvo Motar Nu Ela Niyantrincali



సర్వో మోటార్స్ ఒక వస్తువు యొక్క స్థానాన్ని చాలా ఖచ్చితత్వంతో మార్చగల లేదా తిప్పగల ఒక రకమైన విద్యుత్ పరికరం. ప్రారంభంలో, వారు RC ప్లేన్ రెక్కలను నియంత్రించడానికి ఉపయోగించారు, కొన్ని క్షణాల తర్వాత వారు రోబోటిక్స్, హ్యూమనాయిడ్ రోబోట్‌లు మరియు అనేక ఆటోమేషన్ ప్రాజెక్ట్‌లకు చేరుకున్నారు. స్టెప్పర్ మోటార్లు కాకుండా వాటి చలనం 0o నుండి 180o మధ్య పరిమితం చేయబడింది.

సాధారణంగా, సర్వో మోటార్లు Arduino ఉపయోగించి నియంత్రించబడే ఆయుధాలను కలిగి ఉంటాయి. సర్వో మోటార్లు అందించే నియంత్రణ వ్యవస్థను కలిగి ఉంటుంది అభిప్రాయం మోటార్ షాఫ్ట్ యొక్క ప్రస్తుత స్థానం గురించి ఈ అభిప్రాయం చాలా ఖచ్చితత్వంతో తరలించడానికి అనుమతిస్తుంది.

సర్వో మోటార్ పిన్అవుట్

సాధారణంగా, చాలా సర్వో మోటార్లు మూడు పిన్‌లను కలిగి ఉంటాయి:







  • Vcc పిన్ (సాధారణంగా ఎరుపు 5V)
  • GND పిన్ (సాధారణంగా నలుపు 0V)
  • ఇన్‌పుట్ సిగ్నల్ పిన్ (Arduino నుండి PWM సిగ్నల్ స్వీకరించండి)



Servo Motorలో పని చేస్తున్నారు

Vcc పిన్‌ను 5Vకి మరియు GND పిన్‌ను 0Vకి కనెక్ట్ చేయడం ద్వారా మేము సర్వో మోటార్‌ను నియంత్రించవచ్చు. పసుపు రంగు టెర్మినల్‌లో, మేము aని అందిస్తాము PWM సర్వో మోటార్ యొక్క భ్రమణ కోణాన్ని నియంత్రించే సిగ్నల్. PWM సిగ్నల్ యొక్క వెడల్పు మోటార్ దాని చేతిని తిప్పే కోణాన్ని ఇస్తుంది.



మేము సర్వో మోటార్ల డేటాషీట్‌ను పరిశీలిస్తే, మేము ఈ క్రింది పారామితులను పొందుతాము:





  • PWM సిగ్నల్ సమయ వ్యవధి
  • PWM కోసం కనీస వెడల్పు
  • PWM కోసం గరిష్ట వెడల్పు

ఈ పారామితులన్నీ Arduino సర్వో లైబ్రరీలో ముందే నిర్వచించబడ్డాయి.

ఆర్డునోతో సర్వో మోటార్స్

సర్వో మోటార్లు Arduinoతో నియంత్రించడం చాలా సులభం, ధన్యవాదాలు సర్వో లైబ్రరీ ఇది అవసరానికి అనుగుణంగా మా కోడ్‌ను అనుకూలీకరించడానికి మాకు సహాయపడుతుంది మరియు సర్వో ఆర్మ్‌ను మనకు కావలసిన కోణంలో తిప్పడానికి అనుమతిస్తుంది.



పైన పేర్కొన్న మూడు పారామీటర్‌లు సర్వో లైబ్రరీలో పరిష్కరించబడ్డాయి. ఈ పారామితులను ఉపయోగించడం ద్వారా, మేము ఈ క్రింది విధంగా సర్వో మోటార్ యొక్క కోణాన్ని నియంత్రించవచ్చు:

  • PWM సిగ్నల్ వెడల్పు = WIDTH_MAX అయితే, సర్వో 180oకి తిరుగుతుంది
  • PWM సిగ్నల్ వెడల్పు = WIDTH_MIIN అయితే, సర్వో 0oకి తిరుగుతుంది
  • PWM సిగ్నల్ వెడల్పు మధ్యలో ఉంటే WIDTH_MAX మరియు WIDTH_MIN , సర్వో మోటార్ 0o మరియు 180o మధ్య తిరుగుతుంది

మేము కొన్ని Arduino పిన్‌లపై కావలసిన PWM సిగ్నల్‌ను రూపొందించవచ్చు. సర్వో మోటార్ ఇన్‌పుట్ సిగ్నల్ పిన్ వద్ద PWM సిగ్నల్ ఇవ్వబడుతుంది. సర్వో యొక్క మిగిలిన రెండు పిన్‌లను 5v మరియు ఆర్డునో యొక్క GNDకి కనెక్ట్ చేస్తోంది.

Arduino ఉపయోగించి సర్వో మోటార్‌ను ఎలా నియంత్రించాలి

Arduino ఉపయోగించి మన సర్వో మోటార్‌ను ఎలా కనెక్ట్ చేసి ప్రోగ్రామ్ చేయాలో ఇక్కడ నేను వివరిస్తాను. మీకు కావలసిందల్లా:

  • Arduino UNO
  • USB B కేబుల్
  • సర్వో మోటార్
  • జంపర్ వైర్లు

ఆర్డునోతో సర్వోను ఎలా ప్రోగ్రామ్ చేయాలి

క్రింది కొన్ని సాధారణ దశలు ఉన్నాయి:

దశ 1: ముందే నిర్వచించిన సర్వో లైబ్రరీని చేర్చండి:

# చేర్చండి < సర్వో.హెచ్ >

దశ 2: సర్వో ఆబ్జెక్ట్‌ని సృష్టించండి:

సర్వో మైసర్వో;

చిట్కా: మీరు ఒకటి కంటే ఎక్కువ సర్వో మోటార్‌లను నియంత్రిస్తున్నట్లయితే, మీరు మరిన్ని సర్వో ఆబ్జెక్ట్‌లను సృష్టించాలి:

సర్వో మైసర్వో1;
సర్వో మైసర్వో2;

దశ 3: ఆర్డునో యునోపై కంట్రోల్ పిన్ (9) సెట్ చేయండి, ఇది సర్వో యొక్క ఇన్‌పుట్ సిగ్నల్ పోర్ట్‌కు PWM సిగ్నల్‌ను పంపుతుంది:

myservo.attach ( 9 ) ;

దశ 4: ఉదాహరణకు 90o కోసం సర్వో మోటార్ కోణాన్ని కావలసిన విలువకు తిప్పండి:

myservo.write ( పోస్ ) ;

Arduino కోడ్

నుండి సర్వో మోటార్ ఉదాహరణ ప్రోగ్రామ్‌ను తెరవండి ఫైల్> ఉదాహరణ> సర్వో> స్వీప్ , మా సర్వో స్కెచ్‌ను చూపించే కొత్త విండో తెరవబడుతుంది:

#ని చేర్చండి

సర్వో మైసర్వో; // సర్వో ఆబ్జెక్ట్ సృష్టించబడుతుంది కోసం సర్వో మోటార్‌ను నియంత్రిస్తుంది
int pos = 0 ; // సర్వో స్థానం నిల్వ చేయడానికి కొత్త వేరియబుల్ సృష్టించబడుతుంది
శూన్యమైన సెటప్ ( ) {
myservo.attach ( 9 ) ; // ఈ రెడీ సెట్ ఆర్డునో పిన్ 9 కోసం PWM అవుట్‌పుట్
}
శూన్య లూప్ ( ) {
కోసం ( pos = 0 ; pos = 0 ; pos -= 1 ) { // నుండి వెళుతుంది 180 కు 0 డిగ్రీలు
myservo.write ( పోస్ ) ; // 'pos' స్థానానికి వెళ్లమని సర్వోకి చెప్పండి
ఆలస్యం ( 5 ) ; // నిరీక్షిస్తుంది కోసం 5 ms కాబట్టి సర్వో స్థానానికి చేరుకోవచ్చు
}
}

ప్రోగ్రామ్ కంపైల్ చేయబడి, అప్‌లోడ్ చేయబడిన తర్వాత, సర్వో మోటారు 0 డిగ్రీల నుండి 180 డిగ్రీల వరకు, దశల మాదిరిగానే ఒక సమయంలో ఒక డిగ్రీ వరకు నెమ్మదిగా తిరగడం ప్రారంభిస్తుంది. మోటారు 180-డిగ్రీల భ్రమణాన్ని పూర్తి చేసినప్పుడు, అది దాని ప్రారంభ స్థానం వైపు వ్యతిరేక దిశలో దాని భ్రమణాన్ని ప్రారంభిస్తుంది, అంటే 0 డిగ్రీ.

స్కీమాటిక్స్

పొటెన్షియోమీటర్‌ని ఉపయోగించి సర్వో మోటార్‌ను ఎలా నియంత్రించాలి

మేము చేతితో సర్వో మోటార్ స్థానాన్ని కూడా నియంత్రించవచ్చు. దీన్ని చేయడానికి మనకు ఒక అవసరం పొటెన్షియోమీటర్ . పొటెన్షియోమీటర్‌లో మూడు పిన్‌లు ఉంటాయి. Arduino బోర్డ్‌లోని రెండు బయటి పిన్‌లను 5V Vcc మరియు GND యొక్క Arduino మరియు మధ్య ఒకదాని నుండి A0 పిన్‌కి కనెక్ట్ చేయండి.

పొటెన్షియోమీటర్‌తో సర్వోను ఎలా ప్రోగ్రామ్ చేయాలి

పొటెన్షియోమీటర్ కోసం చాలా స్కెచ్ మునుపటి ఉదాహరణ వలె ఉంటుంది. కొత్త వేరియబుల్ మాత్రమే తేడా విలువ మరియు సబ్‌పిన్ కోడ్ యొక్క సెటప్ మరియు లూప్ విభాగానికి ముందు నిర్వచించబడింది.

Int పాట్‌పిన్ = A0;
పూర్తి విలువ;

లూప్ విభాగంలో అనలాగ్ పిన్ A0 ఫంక్షన్‌తో పొటెన్షియోమీటర్ కోసం విలువలను చదవడానికి ఉపయోగించబడుతుంది అనలాగ్ రీడ్() . Arduino బోర్డులు 10-బిట్ ADC (అనలాగ్ టు డిజిటల్ కన్వర్టర్) కలిగి ఉంటాయి, పొటెన్షియోమీటర్ ఏ స్థానంలో ఉందో బట్టి 0 మరియు 1023 మధ్య విలువలను ఇస్తుంది:

val = అనలాగ్ రీడ్ ( సబ్‌పిన్ ) ;

చివరగా, మేము ఉపయోగించాము మ్యాప్() సర్వో యొక్క కోణం ప్రకారం 0 నుండి 1023 వరకు సంఖ్యలను రీ-మ్యాప్ చేయడానికి పని చేస్తుంది, సర్వో మోటార్లు 00 మరియు 1800 మధ్య మాత్రమే తిరుగుతాయి.

val = పటం ( విలువ, 0 , 1023 , 0 , 180 ) ;

Arduino కోడ్

Arduino IDEలో అందుబాటులో ఉన్న నాబ్ స్కెచ్‌ని తెరవండి, వెళ్ళండి ఫైల్‌లు>ఉదాహరణలు>సర్వో>నాబ్ . సర్వో కోసం మా నాబ్ స్కెచ్‌ను చూపే కొత్త విండో తెరవబడుతుంది:

#ని చేర్చండి
సర్వో మైసర్వో; // సర్వో వస్తువు పేరు myservo సృష్టిస్తోంది
Int పాట్‌పిన్ = A0; // అనలాగ్ పిన్ను నిర్వచించడం కోసం పొటెన్షియోమీటర్
పూర్తి విలువ; // వేరియబుల్ ఏది రెడీ చదవండి అనలాగ్ పిన్ విలువలు కోసం పొటెన్షియోమీటర్

శూన్యమైన సెటప్ ( ) {
myservo.attach ( 9 ) ; // నిర్వచించిన పిన్ 9 కోసం Arduino పై సర్వో యొక్క PWM ఇన్‌పుట్ సిగ్నల్
}
శూన్య లూప్ ( ) {
val = అనలాగ్ రీడ్ ( సబ్‌పిన్ ) ; // పొటెన్షియోమీటర్ నుండి విలువను చదువుతుంది ( మధ్య విలువ 0 మరియు 1023 )
val = పటం ( విలువ, 0 , 1023 , 0 , 180 ) ; // సర్వోతో ఉపయోగించాల్సిన విలువను స్కేల్ చేయండి ( మధ్య విలువ 0 మరియు 180 )
myservo.write ( విలువ ) ; // స్కేల్ చేయబడిన విలువతో సర్వో స్థానాన్ని సెట్ చేస్తుంది
ఆలస్యం ( పదిహేను ) ; // నిరీక్షిస్తుంది కోసం స్థానానికి చేరుకోవడానికి సర్వో
}

పొటెన్షియోమీటర్‌ని ఉపయోగించి సర్వో మోటార్ షాఫ్ట్‌ను నియంత్రించడానికి పై కోడ్ మాకు సహాయం చేస్తుంది, షాఫ్ట్ 0 మరియు 180 డిగ్రీల మధ్య తిరుగుతుంది. మేము దానిని ఉపయోగించి సర్వో దిశతో పాటు వేగాన్ని కూడా నిర్వహించవచ్చు.

సర్క్యూట్ రేఖాచిత్రం

నేను ఆర్డునోతో ఎన్ని సర్వో మోటార్‌లను కనెక్ట్ చేయగలను?

Arduino UNO నిర్వహించగల సర్వో మోటార్ల గరిష్ట సంఖ్య సర్వో కోసం Arduino లైబ్రరీతో 12 వరకు ఉంటుంది మరియు గరిష్టంగా 48 సర్వోలు మెగా వంటి బోర్డులతో అనుసంధానించవచ్చు.

చిట్కా: మేము నేరుగా Arduino కరెంట్‌ని ఉపయోగించి సర్వోను అమలు చేయగలము, అయితే సర్వోస్ మోటార్లు అంతకంటే ఎక్కువ డ్రా చేస్తే గుర్తుంచుకోండి 500mA అప్పుడు మీ Arduino బోర్డు స్వయంచాలకంగా రీసెట్ చేయబడుతుంది మరియు శక్తిని కోల్పోతుంది. సర్వో మోటార్‌ల కోసం ఎల్లప్పుడూ ప్రత్యేక విద్యుత్ సరఫరాను ఉపయోగించాలని సిఫార్సు చేయబడింది.

ముగింపు

ఈ ట్యుటోరియల్‌లో, మేము ఆర్డునోతో సర్వో మోటార్‌ల నియంత్రణ యంత్రాంగాన్ని కవర్ చేసాము. మేము పొటెన్షియోమీటర్‌ని ఉపయోగించి సర్వో స్థానం మరియు వేగాన్ని నియంత్రించే ప్రాథమిక అంశాలను కవర్ చేసాము. ఇప్పుడు మీకు సర్వో గురించి ఒక ఆలోచన వచ్చింది మరియు మీ రోబోటిక్స్, RC ప్రాజెక్ట్‌లు మరియు సర్వోను ఉపయోగించే ఆటోమేషన్‌కు సంబంధించిన అవకాశాలు అంతులేనివి.