- పదార్థాలు అవసరం
- రోటరీ ఎన్కోడర్ ఎలా పనిచేస్తుంది?
- రోటరీ ఎన్కోడర్ రకాలు
- KY-040 రోటరీ ఎన్కోడర్ పిన్అవుట్ మరియు వివరణ
- ఆర్డునో రోటరీ ఎన్కోడర్ సర్క్యూట్ రేఖాచిత్రం
- రోటరీ ఎన్కోడర్ కోసం మీ ఆర్డునోను ప్రోగ్రామింగ్ చేస్తోంది
- Arduino తో రోటరీ ఎన్కోడర్ యొక్క పని
ఒక రోటరీ ఎన్కోడర్ ఒక వ్యవస్థతో సంకర్షణ సహాయపడుతుంది ఒక ఇన్పుట్ పరికరం. ఇది రేడియో పొటెన్టోమీటర్ లాగా కనిపిస్తుంది, అయితే ఇది పప్పుల రైలును ఉత్పత్తి చేస్తుంది, ఇది దాని అనువర్తనాన్ని ప్రత్యేకంగా చేస్తుంది. ఎన్కోడర్ యొక్క నాబ్ తిప్పబడినప్పుడు అది చిన్న దశల రూపంలో తిరుగుతుంది, ఇది స్టెప్పర్ / సర్వో మోటారు నియంత్రణకు ఉపయోగించటానికి సహాయపడుతుంది, మెను యొక్క క్రమం ద్వారా నావిగేట్ చేస్తుంది మరియు సంఖ్య యొక్క విలువను పెంచడం / తగ్గించడం మరియు మరెన్నో.
ఈ వ్యాసంలో వివిధ రకాల రోటరీ ఎన్కోడర్ల గురించి మరియు ఇది ఎలా పనిచేస్తుందో తెలుసుకుందాం. మేము దానిని ఆర్డునోతో ఇంటర్ఫేస్ చేస్తాము మరియు ఎన్కోడర్ను తిప్పడం ద్వారా పూర్ణాంక విలువను నియంత్రిస్తాము మరియు దాని విలువను 16 * 2 ఎల్సిడి తెరపై ప్రదర్శిస్తాము. ఈ ట్యుటోరియల్ చివరలో మీరు మీ ప్రాజెక్ట్ల కోసం రోటరీ ఎన్కోడర్ను ఉపయోగించడం సౌకర్యంగా ఉంటుంది. కాబట్టి ప్రారంభిద్దాం…
పదార్థాలు అవసరం
- రోటరీ ఎన్కోడర్ (KY-040)
- ఆర్డునో UNO
- 16 * 2 ఆల్ఫాన్యూమరిక్ ఎల్సిడి
- పొటెన్టోమీటర్ 10 కె
- బ్రెడ్బోర్డ్
- వైర్లను కనెక్ట్ చేస్తోంది
రోటరీ ఎన్కోడర్ ఎలా పనిచేస్తుంది?
రోటరీ ఎన్కోడర్ ఒక ఎలక్ట్రోమెకానికల్ ట్రాన్స్డ్యూసెర్, అంటే ఇది యాంత్రిక కదలికలను ఎలక్ట్రానిక్ పప్పులుగా మారుస్తుంది. ఇది ఒక నాబ్ను కలిగి ఉంటుంది, ఇది తిరిగేటప్పుడు దశల వారీగా కదులుతుంది మరియు ప్రతి దశకు ముందుగా నిర్వచించిన వెడల్పుతో పల్స్ రైళ్ల క్రమాన్ని ఉత్పత్తి చేస్తుంది. ప్రతి దాని స్వంత పని యంత్రాంగంతో అనేక రకాల ఎన్కోడర్లు ఉన్నాయి, మేము తరువాత రకాలను గురించి తెలుసుకుంటాము, కాని ఇప్పుడు మన ట్యుటోరియల్ కోసం దీనిని ఉపయోగిస్తున్నందున KY040 ఇంక్రిమెంటల్ ఎన్కోడర్పై మాత్రమే దృష్టి పెడదాం.
ఎన్కోడర్ యొక్క అంతర్గత యాంత్రిక నిర్మాణం క్రింద చూపబడింది. ఇది ప్రాథమికంగా ఈ వృత్తాకార డిస్క్ పైన ఉంచిన వాహక ప్యాడ్లతో (రాగి రంగు) వృత్తాకార డిస్క్ (బూడిద రంగు) కలిగి ఉంటుంది. ఈ వాహక ప్యాడ్లు క్రింద చూపిన విధంగా సమాన దూరంలో ఉంచబడతాయి. ఈ వృత్తాకార డిస్క్ పైన అవుట్పుట్ పిన్లు స్థిరంగా ఉంటాయి, నాబ్ తిరిగేటప్పుడు వాహక ప్యాడ్లు అవుట్పుట్ పిన్లతో సంబంధం కలిగి ఉంటాయి. క్రింద ఉన్న చిత్రంలో చూపిన విధంగా అవుట్పుట్ ఎ మరియు అవుట్పుట్ బి అనే రెండు అవుట్పుట్ పిన్ ఇక్కడ ఉన్నాయి.
అవుట్పుట్ పిన్ ఎ మరియు అవుట్పుట్ బి చేత ఉత్పత్తి చేయబడిన అవుట్పుట్ తరంగ రూపం వరుసగా నీలం మరియు ఆకుపచ్చ రంగులో చూపబడుతుంది. వాహక ప్యాడ్ నేరుగా పిన్ కింద ఉన్నప్పుడు అది సమయానికి వెళుతుంది మరియు వాహక ప్యాడ్ దూరంగా కదిలినప్పుడు పిన్ తక్కువగా వెళుతుంది, ఫలితంగా పైన చూపిన తరంగ రూపం ఆఫ్ ఆఫ్ అవుతుంది. ఇప్పుడు, మేము పప్పుధాన్యాల సంఖ్యను లెక్కించినట్లయితే, ఎన్కోడర్ ఎన్ని దశలను తరలించిందో మేము గుర్తించగలుగుతాము.
ఇప్పుడు ప్రశ్న తలెత్తవచ్చు, నాబ్ను తిప్పేటప్పుడు తీసుకున్న చర్యల సంఖ్యను లెక్కించడానికి ఒకటి సరిపోయేటప్పుడు మనకు రెండు పల్స్ సిగ్నల్స్ ఎందుకు అవసరం. నాబ్ ఏ దిశలో తిప్పబడిందో మనం గుర్తించాల్సిన అవసరం దీనికి కారణం. మీరు రెండు పప్పులను పరిశీలించినట్లయితే, అవి రెండూ 90 ° దశలో ఉన్నాయని మీరు గమనించవచ్చు. అందువల్ల నాబ్ సవ్యదిశలో తిప్పబడినప్పుడు అవుట్పుట్ A మొదట అధికంగా ఉంటుంది మరియు నాబ్ను సవ్యదిశలో తిప్పినప్పుడు అవుట్పుట్ B మొదట అధికంగా ఉంటుంది.
రోటరీ ఎన్కోడర్ రకాలు
మార్కెట్లో అనేక రకాల రోటరీ ఎన్కోడర్ ఉన్నాయి, డిజైనర్ తన అప్లికేషన్ ప్రకారం ఒకదాన్ని ఎంచుకోవచ్చు. అత్యంత సాధారణ రకాలు క్రింద ఇవ్వబడ్డాయి
- పెరుగుతున్న ఎన్కోడర్
- సంపూర్ణ ఎన్కోడర్
- మాగ్నెటిక్ ఎన్కోడర్
- ఆప్టికల్ ఎన్కోడర్
- లేజర్ ఎన్కోడర్
ఈ ఎన్కోడర్లు అవుట్పుట్ సిగ్నల్ మరియు సెన్సింగ్ టెక్నాలజీ ఆధారంగా వర్గీకరించబడ్డాయి, పెరుగుతున్న ఎన్కోడర్ మరియు సంపూర్ణ ఎన్కోడర్లు అవుట్పుట్ సిగ్నల్ ఆధారంగా వర్గీకరించబడతాయి మరియు మాగ్నెటిక్, ఆప్టికల్ మరియు లేజర్ ఎన్కోడర్ సెన్సింగ్ టెక్నాలజీ ఆధారంగా వర్గీకరించబడతాయి. ఎన్కోడర్ ఇక్కడ ఉపయోగించే ఒక ఇంక్రిమెంటల్ రకం ఎన్కోడర్ ఉంది.
KY-040 రోటరీ ఎన్కోడర్ పిన్అవుట్ మరియు వివరణ
KY-040 పెరుగుతున్న రకం రోటరీ ఎన్కోడర్ యొక్క పిన్అవుట్లు క్రింద చూపించబడ్డాయి
ఎన్కోడర్ను శక్తివంతం చేయడానికి మొదటి రెండు పిన్లు (గ్రౌండ్ మరియు విసిసి) ఉపయోగించబడతాయి, సాధారణంగా + 5 వి సరఫరా ఉపయోగించబడుతుంది. గడియారం వారీగా మరియు యాంటీ-సవ్యదిశలో నాబ్ను తిప్పడంతో పాటు, ఎన్కోడర్లో ఒక స్విచ్ (యాక్టివ్ తక్కువ) కూడా ఉంది, దీనిని లోపల నాబ్ నొక్కడం ద్వారా నొక్కవచ్చు. ఈ స్విచ్ నుండి సిగ్నల్ పిన్ 3 (స్విచ్) ద్వారా పొందబడుతుంది. చివరగా ఇది పైన పేర్కొన్న విధంగా తరంగ రూపాలను ఉత్పత్తి చేసే రెండు అవుట్పుట్ పిన్నులను కలిగి ఉంది. ఇప్పుడు దానిని ఆర్డునోతో ఎలా ఇంటర్ఫేస్ చేయాలో నేర్చుకుందాం.
ఆర్డునో రోటరీ ఎన్కోడర్ సర్క్యూట్ రేఖాచిత్రం
ఆర్డునోతో ఇంటర్ఫేసింగ్ రోటరీ ఎన్కోడర్ కోసం పూర్తి సర్క్యూట్ రేఖాచిత్రం క్రింది చిత్రంలో చూపబడింది
రోటరీ ఎన్కోడర్ పై లేబుల్లో చూపిన క్రమంలో 5 పిన్లను కలిగి ఉంది. మొదటి రెండు పిన్స్ గ్రౌండ్ మరియు విసిసి, ఇవి గ్రౌండ్ మరియు ఆర్డునో యొక్క + 5 వి పిన్తో అనుసంధానించబడి ఉన్నాయి. ఎన్కోడర్ యొక్క స్విచ్ డిజిటల్ పిన్ డి 10 కి అనుసంధానించబడి ఉంది మరియు 1 కె రెసిస్టర్ అయినప్పటికీ అధికంగా లాగబడుతుంది. రెండు అవుట్పుట్ పిన్స్ వరుసగా D9 మరియు D8 లకు అనుసంధానించబడి ఉన్నాయి.
రోటరీ ఎన్కోడర్ను తిప్పడం ద్వారా పెంచబడే లేదా తగ్గే వేరియబుల్ విలువను ప్రదర్శించడానికి మనకు డిస్ప్లే మాడ్యూల్ అవసరం. ఇక్కడ ఉపయోగించినది సాధారణంగా 16 * 2 ఆల్ఫా న్యూమరిక్ ఎల్సిడి డిస్ప్లేలో లభిస్తుంది. మేము డిస్ప్లేను 4-బిట్ మోడ్లో ఆపరేట్ చేయడానికి కనెక్ట్ చేసాము మరియు ఆర్డునో యొక్క + 5 వి పిన్ను ఉపయోగించి దీన్ని శక్తివంతం చేసాము. LCD డిస్ప్లే యొక్క విరుద్ధతను సర్దుబాటు చేయడానికి పొటెన్టోమీటర్ ఉపయోగించబడుతుంది. ఆర్డునోతో ఇంటర్ఫేసింగ్ ఎల్సిడి డిస్ప్లే గురించి మీరు మరింత తెలుసుకోవాలనుకుంటే లింక్ను అనుసరించండి. పూర్తి సర్క్యూట్ను బ్రెడ్బోర్డ్ పైన నిర్మించవచ్చు, అన్ని కనెక్షన్లు పూర్తయిన తర్వాత నేను క్రింద ఉన్నట్లు అనిపించింది.
రోటరీ ఎన్కోడర్ కోసం మీ ఆర్డునోను ప్రోగ్రామింగ్ చేస్తోంది
రోటరీ ఎన్కోడర్ యొక్క పని సూత్రాన్ని మీరు అర్థం చేసుకుంటే, దానితో రోటరీ ఎన్కోడర్ను ఇంటర్ఫేస్ చేయడానికి ఆర్డునో బోర్డును ప్రోగ్రామ్ చేయడం చాలా సులభం మరియు సూటిగా ముందుకు ఉంటుంది. ఎన్కోడర్ ఎన్ని మలుపులు చేసిందో తెలుసుకోవడానికి మేము పల్స్ సంఖ్యను చదవాలి మరియు ఎన్కోడర్ ఏ దిశలో తిప్పబడిందో తెలుసుకోవడానికి మొదట ఏ పల్స్ ఎక్కువగా ఉందో తనిఖీ చేయండి. ఈ ట్యుటోరియల్లో ఎల్సిడి యొక్క మొదటి వరుసలో ఇంక్రిమెంట్ లేదా తగ్గుతున్న సంఖ్యను మరియు రెండవ పంక్తిలో ఎన్కోడర్ దిశను ప్రదర్శిస్తాము. పూర్తి కార్యక్రమం అదే చేయడం కోసం ఒక ఈ పేజీ దిగువన చూడవచ్చు ప్రదర్శన వీడియో, అది ఏ లైబ్రరీ అవసరం లేదు. ఇప్పుడు, పనిని అర్థం చేసుకోవడానికి ప్రోగ్రామ్ను చిన్న భాగాలుగా విభజిద్దాం.
మేము ఎల్సిడి డిస్ప్లేను ఉపయోగించినందున, మేము ఆర్క్యూనో ఐడిఇలో డిఫాల్ట్గా ఉన్న లిక్విడ్ క్రిస్టల్ లైబ్రరీని చేర్చుకుంటాము. అప్పుడు మేము ఎల్సిడిని ఆర్డునోతో కనెక్ట్ చేయడానికి పిన్లను నిర్వచించాము. చివరగా మేము ఆ పిన్స్ పై LCD డిస్ప్లేని ప్రారంభిస్తాము.
# చేర్చండి
సెటప్ ఫంక్షన్ లోపల, మేము ఎల్సిడి స్క్రీన్లో పరిచయ సందేశాన్ని ప్రదర్శిస్తాము, ఆపై 2 సెకన్లపాటు వేచి ఉండండి, తద్వారా ఆ సందేశం యూజర్ చదవగలిగేలా ఉంటుంది. ఎల్సిడి సరిగా పనిచేస్తుందని నిర్ధారించడానికి ఇది.
lcd.print ("రోటరీ ఎన్కోడర్"); // పరిచయ సందేశ పంక్తి 1 lcd.setCursor (0, 1); lcd.print ("Arduino తో"); // పరిచయ సందేశ పంక్తి 2 ఆలస్యం (2000); lcd.clear ();
రోటరీ ఎన్కోడర్లో మూడు అవుట్పుట్ పిన్లు ఉన్నాయి, ఇవి ఆర్డునోకు INPUT పిన్లుగా ఉంటాయి. ఈ మూడు పిన్స్ వరుసగా స్విచ్, అవుట్పుట్ ఎ మరియు అవుట్పుట్ బి. ఇవి ఉపయోగించి ఇన్పుట్ ప్రకటించారు pinMode ఫంక్షన్ క్రింద చూపిన విధంగా.
// పిన్ మోడ్ డిక్లరేషన్ పిన్మోడ్ (ఎన్కోడర్_ఆపుటా, ఇన్పుట్); పిన్మోడ్ (ఎన్కోడర్_అపుట్బి, ఇన్పుట్); పిన్ మోడ్ (ఎన్కోడర్_స్విచ్, INPUT);
శూన్య సెటప్ ఫంక్షన్ లోపల, పిన్ యొక్క చివరి స్థితిని తనిఖీ చేయడానికి అవుట్పుట్ ఎ పిన్ యొక్క స్థితిని మేము చదువుతాము. ఏ పిన్ (అవుట్పుట్ ఎ లేదా అవుట్పుట్ బి) అధికంగా ఉందో తనిఖీ చేయడానికి కొత్త విలువతో పోల్చడానికి మేము ఈ సమాచారాన్ని ఉపయోగిస్తాము.
మునుపటి_ఆట్పుట్ = డిజిటల్ రీడ్ (ఎన్కోడర్_ఆపుటా); // అవుట్పుట్ A యొక్క ప్రారంభ విలువను చదవండి
చివరగా ప్రధాన లూప్ ఫంక్షన్ లోపల, ఏది అవుట్పుట్ ఎ మరియు అవుట్పుట్ బి యొక్క విలువను మునుపటి అవుట్పుట్తో పోల్చాలి. A మరియు B యొక్క ప్రస్తుత అవుట్పుట్ యొక్క విలువను మునుపటి అవుట్పుట్తో క్రింద చూపిన విధంగా పోల్చడం ద్వారా ఇది చేయవచ్చు.
if (DigitalRead (Encoder_OuputA)! = మునుపటి_ఆట్పుట్) { if (DigitalRead (Encoder_OuputB)! = మునుపటి_ అవుట్పుట్) { Encoder_Count ++; lcd.clear (); lcd.print (ఎన్కోడర్_కౌంట్); lcd.setCursor (0, 1); lcd.print ("సవ్యదిశలో"); }
పైన కోడ్ లో రెండవ ఉంటే అవుట్పుట్ B మునుపటి అవుట్పుట్ నుండి మార్చబడింది ఉంటే పరిస్థితి అమలు అవుతుంది. అలాంటప్పుడు ఎన్కోడర్ వేరియబుల్ యొక్క విలువ పెరుగుతుంది మరియు ఎన్కోడర్ సవ్యదిశలో తిప్పబడిందని LCD ప్రదర్శిస్తుంది. అదేవిధంగా ఆ ఉంటే ఉంటే పరిస్థితి విఫలమైతే, తదనంతరం వేరే పరిస్థితి మేము వేరియబుల్ మరియు ప్రదర్శన ఎన్కోడర్ తిరుగుతోన్న అని తరుగుదల అపసవ్యదిశలో దిశలో. దాని కోసం కోడ్ క్రింద చూపబడింది.
else { ఎన్కోడర్_కౌంట్--; lcd.clear (); lcd.print (ఎన్కోడర్_కౌంట్); lcd.setCursor (0, 1); lcd.print ("యాంటీ - సవ్యదిశలో"); } }
చివరగా, ప్రధాన లూప్ చివరిలో మునుపటి అవుట్పుట్ విలువను ప్రస్తుత అవుట్పుట్ విలువతో అప్డేట్ చేయాలి, తద్వారా లూప్ను అదే లాజిక్తో పునరావృతం చేయవచ్చు. కింది కోడ్ అదే చేస్తుంది
మునుపటి_ఆట్పుట్ = డిజిటల్ రీడ్ (ఎన్కోడర్_ఆపుటా);
మరొక ఐచ్ఛిక విషయం ఏమిటంటే ఎన్కోడర్లోని స్విచ్ నొక్కినట్లు తనిఖీ చేయడం. రోటరీ కోడర్లోని స్విచ్ పిన్ను తనిఖీ చేయడం ద్వారా దీన్ని పర్యవేక్షించవచ్చు. ఈ పిన్ చురుకైన తక్కువ పిన్, అంటే బటన్ నొక్కినప్పుడు అది తక్కువగా ఉంటుంది. పిన్ నొక్కినట్లయితే, స్విచ్ నొక్కినప్పుడు అధికంగా ఉండేలా చూసుకోవడానికి మేము పుల్ అప్ రెసిస్టర్ను కూడా ఉపయోగించాము, తద్వారా ఫ్లోటింగ్ పాయింట్ స్థితిని నివారించవచ్చు.
if (DigitalRead (Encoder_Switch) == 0) {lcd.clear (); lcd.setCursor (0, 1); lcd.print ("స్విచ్ నొక్కినప్పుడు"); }
Arduino తో రోటరీ ఎన్కోడర్ యొక్క పని
హార్డ్వేర్ మరియు కోడ్ సిద్ధమైన తర్వాత, కోడ్ను ఆర్డునో బోర్డ్కు అప్లోడ్ చేసి, ఆర్డునో బోర్డ్ను శక్తివంతం చేయండి. మీరు దీన్ని USB కేబుల్ ద్వారా శక్తినివ్వవచ్చు లేదా 12V అడాప్టర్ను ఉపయోగించవచ్చు. శక్తితో ఉన్నప్పుడు ఎల్సిడి పరిచయ సందేశాన్ని ప్రదర్శించి, ఆపై ఖాళీగా ఉండాలి. ఇప్పుడు రోటరీ ఎన్కోడర్ను తిప్పండి మరియు మీరు తిరిగే దిశ ఆధారంగా విలువ పెరగడం లేదా తగ్గడం ప్రారంభించడాన్ని మీరు చూడాలి. ఎన్కోడర్ సవ్యదిశలో లేదా వ్యతిరేక సవ్యదిశలో తిరుగుతున్నట్లయితే రెండవ పంక్తి మీకు చూపుతుంది. క్రింద ఉన్న చిత్రం అదే చూపిస్తుంది
బటన్ నొక్కినప్పుడు, రెండవ పంక్తి బటన్ నొక్కినట్లు ప్రదర్శిస్తుంది. పూర్తి పని క్రింది వీడియోలో చూడవచ్చు. ఎన్కోడర్ను ఆర్డునోతో ఇంటర్ఫేస్ చేయడానికి మరియు ఇది.హించిన విధంగా పనిచేస్తుందో లేదో తనిఖీ చేయడానికి ఇది ఒక నమూనా ప్రోగ్రామ్. మీరు ఇక్కడకు వచ్చాక మీ ప్రాజెక్టులు మరియు ప్రోగ్రామ్లలో దేనికోసం ఎన్కోడర్ను ఉపయోగించగలగాలి.
మీరు ట్యుటోరియల్ అర్థం చేసుకున్నారని మరియు విషయాలు అనుకున్నట్లుగా పనిచేశాయని ఆశిస్తున్నాము. మీకు ఏవైనా సమస్యలు ఉంటే సాంకేతిక సహాయం కోసం వ్యాఖ్య విభాగం లేదా ఫోరమ్లను ఉపయోగించండి.