రోటరీ ఎన్‌కోడర్ ఎలా పనిచేస్తుంది మరియు ఆర్డునోతో ఇంటర్‌ఫేస్ చేస్తుంది

Rotari En Kodar Ela Panicestundi Mariyu Ardunoto Intar Phes Cestundi



రోటరీ ఎన్‌కోడర్ అనేది ఎలక్ట్రానిక్స్ రంగంలో విభిన్న ఉపయోగాలున్న ముఖ్యమైన ఎలక్ట్రోమెకానికల్ పరికరం. ఈ కథనం ఆర్డునోతో దాని ఇంటర్‌ఫేసింగ్‌తో పాటు రోటరీ ఎన్‌కోడర్ యొక్క రకాలు మరియు పనితీరును వివరిస్తుంది.

రోటరీ ఎన్‌కోడర్ అంటే ఏమిటి

రోటరీ ఎన్‌కోడర్ అనేది డిజిటల్ ఇన్‌పుట్ పరికరం, ఇది రోటరీ నాబ్ యొక్క కోణీయ స్థానాన్ని గ్రహించి మైక్రోకంట్రోలర్ లేదా అవి కనెక్ట్ చేయబడిన ఏదైనా ఇతర పరికరానికి సంకేతాలను పంపుతుంది. అవి ఆగకుండా 360° తిప్పగలవు. దీనిని షాఫ్ట్ ఎన్‌కోడర్ అని కూడా అంటారు. ఇది ప్రింటర్లు, ఆడియో ఎలక్ట్రానిక్స్, మోటార్లు మరియు కంట్రోలర్లలో ఉపయోగించబడుతుంది.









రోటరీ ఎన్‌కోడర్‌ల రకాలు

ప్రధానంగా రెండు రకాల రోటరీ ఎన్‌కోడర్‌లు వాటి ద్వారా ఉత్పత్తి చేయబడిన అవుట్‌పుట్ సిగ్నల్ ఆధారంగా నిర్ణయించబడతాయి. ఈ రకాలు పేరు పెట్టబడ్డాయి:



పెరుగుతున్న రోటరీ ఎన్‌కోడర్

ఈ రకమైన ఎన్‌కోడర్ పప్పుల రూపంలో రోటరీ నాబ్ యొక్క విప్లవాలను గణిస్తుంది. నాబ్‌ని ఒకసారి తిప్పినప్పుడు, ఒక పల్స్ ఉత్పత్తి అవుతుంది. ప్రతి పల్స్ కోసం, షాఫ్ట్ యొక్క కోణీయ స్థానాన్ని సూచించడానికి కౌంటర్ ఇంక్రిమెంట్.





సంపూర్ణ రోటరీ ఎన్‌కోడర్

ఈ రకమైన ఎన్‌కోడర్ షాఫ్ట్ యొక్క సంపూర్ణ కోణీయ స్థానాన్ని ఇస్తుంది, ఎందుకంటే ఇది ప్రతి షాఫ్ట్ స్థానానికి ప్రత్యేక కోడ్‌ను కలిగి ఉంటుంది మరియు ఇది ఆ కోడ్ ద్వారా కోణాన్ని కొలుస్తుంది. కోణీయ స్థానం యొక్క అవుట్‌పుట్ ఇవ్వడానికి దీనికి కౌంటర్ అవసరం లేదు. సంపూర్ణ రోటరీ ఎన్‌కోడర్ డి-ఎనర్జైజ్ చేయబడినప్పటికీ, కోణీయ స్థానాల కోసం సంబంధిత విలువలు అలాగే ఉంచబడతాయి. ఇది తక్కువ-ధర ఎన్‌కోడర్ కూడా.



రోటరీ ఎన్‌కోడర్ పని చేస్తోంది

రోటరీ ఎన్‌కోడర్ గ్రౌన్దేడ్ అయిన ఒక సాధారణ పిన్ Cకి కనెక్ట్ చేయబడిన సమాన ఖాళీ ప్రాంతాలతో డిస్క్‌ను కలిగి ఉంటుంది. రెండు ఇతర పిన్‌లు A మరియు B లు రోటరీ నాబ్‌ను తిప్పినప్పుడు Cతో పరిచయం ఏర్పడే కాంటాక్ట్ పిన్‌లు. పిన్ A లేదా B భూమికి కనెక్ట్ అయినప్పుడు, అప్పుడు ఒక సిగ్నల్ ఉత్పత్తి అవుతుంది. అవుట్‌పుట్ పిన్‌ల నుండి ఉత్పత్తి చేయబడిన ఈ సంకేతాలు 90° దశకు మించి ఉన్నాయి. ఎందుకంటే నాబ్‌ను సవ్యదిశలో తిప్పినప్పుడు పిన్ A భూమికి కనెక్ట్ అవుతుంది మరియు నాబ్‌ను అపసవ్య దిశలో తిప్పినప్పుడు పిన్ B మొదట భూమికి కనెక్ట్ అవుతుంది. అందువల్ల, నాబ్ భ్రమణ దిశ ఈ కనెక్షన్ల ద్వారా నిర్ణయించబడుతుంది.

రాష్ట్రం అయితే బి సమానం కాదు , అప్పుడు నాబ్ సవ్యదిశలో తిరిగింది.


B యొక్క స్థితి Aకి సమానంగా ఉంటే, నాబ్ అపసవ్య దిశలో మారుతుంది.

రోటరీ ఎన్‌కోడర్ యొక్క పిన్ కాన్ఫిగరేషన్

దిగువ ఇవ్వబడిన రేఖాచిత్రం అవుట్‌పుట్ పిన్‌లు A మరియు B, పుష్ బటన్‌గా ఉపయోగించబడే రోటరీ స్విచ్ మరియు విద్యుత్ సరఫరా కోసం పిన్‌లను చూపే రోటరీ ఎన్‌కోడర్ యొక్క పిన్‌అవుట్‌ను అందిస్తుంది.

రోటరీ ఎన్‌కోడర్ యొక్క పిన్ వివరణ

అన్ని రోటరీ ఎన్‌కోడర్ పిన్‌ల యొక్క ఇవ్వబడిన వివరణ క్రిందిది.

అవుట్ B లేదా CLK

ఈ పిన్ నాబ్ లేదా రోటరీ ఎన్‌కోడర్ ఎన్నిసార్లు తిప్పబడిందో అవుట్‌పుట్ ఇస్తుంది. ప్రతిసారి నాబ్‌ని తిప్పినప్పుడు, CLK అధిక మరియు తక్కువ చక్రాన్ని పూర్తి చేస్తుంది. ఇది ఒక భ్రమణంగా పరిగణించబడుతుంది.

అవుట్ A లేదా DT

భ్రమణ దిశను నిర్ణయించే రోటరీ ఎన్‌కోడర్ యొక్క రెండవ అవుట్‌పుట్ పిన్ ఇది. ఇది CLK సిగ్నల్ కంటే 90° వెనుకబడి ఉంది. కాబట్టి, దాని స్థితి CLK స్థితికి సమానంగా లేకుంటే, భ్రమణ దిశ సవ్యదిశలో ఉంటుంది, లేకపోతే వ్యతిరేక సవ్యదిశలో ఉంటుంది.

మారండి

పుష్ బటన్ నొక్కినా లేదా అని తనిఖీ చేయడానికి స్విచ్ పిన్ ఉపయోగించబడుతుంది.

VCC

ఈ పిన్ 5V సరఫరాకు కనెక్ట్ చేయబడింది

GND

ఈ పిన్ భూమికి కనెక్ట్ చేయబడింది

ఆర్డునోతో ఇంటర్‌ఫేసింగ్ రోటరీ ఎన్‌కోడర్

రోటరీ ఎన్‌కోడర్‌లో ఐదు పిన్‌లు ఉంటాయి. రోటరీ ఎన్‌కోడర్ యొక్క VCC మరియు GND Arduinoకి కనెక్ట్ చేయబడ్డాయి. మిగిలిన పిన్‌లు CLK, DT మరియు SW Arduino యొక్క డిజిటల్ ఇన్‌పుట్ పిన్‌లకు కనెక్ట్ చేయబడ్డాయి.

రోటరీ ఎన్‌కోడర్ కోసం Arduino కోడ్

// రోటరీ ఎన్‌కోడర్ ఇన్‌పుట్‌లు
#CLK_PIN 2ని నిర్వచించండి
#DT_PIN 3ని నిర్వచించండి
#SW_PIN 4ని నిర్వచించండి
int కౌంటర్ = 0 ;
int కరెంట్CLKState;
int lastCLKState;
స్ట్రింగ్ కరెంట్ దిశ = '' ;
సంతకం చేయని దీర్ఘ చివరి బటన్ ప్రెస్ టైమ్ = 0 ;
శూన్యమైన సెటప్ ( ) {
// ఎన్‌కోడర్ పిన్‌లను సెట్ చేయండి వంటి ఇన్‌పుట్‌లు
    పిన్‌మోడ్ ( CLK_PIN, INPUT ) ;
    పిన్‌మోడ్ ( DT_PIN, INPUT ) ;
    పిన్‌మోడ్ ( SW_PIN, INPUT_PULLUP ) ;
// సీరియల్ మానిటర్‌ని సెటప్ చేయండి
సీరియల్.ప్రారంభం ( 9600 ) ;
// CLK యొక్క ప్రారంభ స్థితిని చదవండి
lastCLKState = డిజిటల్ రీడ్ ( CLK_PIN ) ;
}
శూన్య లూప్ ( ) {
// CLK యొక్క ప్రస్తుత స్థితిని చదవండి
currentCLKState = డిజిటల్ రీడ్ ( CLK_PIN ) ;
// ఉంటే చివరి మరియు CLK యొక్క ప్రస్తుత స్థితి భిన్నంగా ఉంది, అప్పుడు ఒక పల్స్ సంభవించింది
// మాత్రమే స్పందించండి 1 రెట్టింపు సంఖ్యను నివారించడానికి రాష్ట్ర మార్పు
ఉంటే ( ప్రస్తుతCLK రాష్ట్రం ! = చివరిCLK రాష్ట్రం && ప్రస్తుతCLK రాష్ట్రం == 1 ) {
// DT స్థితి CLK స్థితి కంటే భిన్నంగా ఉంటే, అప్పుడు
// ఎన్‌కోడర్ అపసవ్య దిశలో తిరుగుతోంది, కాబట్టి తగ్గుదల
ఉంటే ( డిజిటల్ రీడ్ ( DT_PIN ) ! = ప్రస్తుతCLK రాష్ట్రం ) {
కౌంటర్--;
ప్రస్తుత దిశ = 'CCW' ;
} లేకపోతే {
// ఎన్‌కోడర్ సవ్యదిశలో తిరుగుతోంది, కాబట్టి ఇంక్రిమెంట్
కౌంటర్ ++;
ప్రస్తుత దిశ = 'CW' ;
}
సీరియల్.ప్రింట్ ( 'భ్రమణ దిశ:' ) ;
సీరియల్.ప్రింట్ ( ప్రస్తుత దిశ ) ;
సీరియల్.ప్రింట్ ( ' | కౌంటర్ విలువ: ' ) ;
Serial.println ( కౌంటర్ ) ;
}
// గుర్తుంచుకో చివరి CLK రాష్ట్రం
lastCLKState = ప్రస్తుతCLKState;
// బటన్ స్థితిని చదవండి
int buttonState = డిజిటల్ రీడ్ ( SW_PIN ) ;
// మేము తక్కువ సిగ్నల్‌ని గుర్తించినట్లయితే, బటన్ నొక్కబడుతుంది
ఉంటే ( బటన్స్టేట్ == తక్కువ ) {
// నుండి 50ms దాటితే చివరి తక్కువ పల్స్, అంటే ది
// బటన్ నొక్కబడింది, విడుదల చేయబడింది మరియు మళ్లీ నొక్కబడింది
ఉంటే ( మిల్లీస్ ( ) - చివరి బటన్ ప్రెస్ టైమ్ > యాభై ) {
Serial.println ( 'బటన్ నొక్కింది!' ) ;
}
// గుర్తుంచుకో చివరి బటన్ ప్రెస్ ఈవెంట్ సమయం
lastButtonPressTime = మిల్లీస్ ( ) ;
}
// పెట్టండి లో కొంచెం ఆలస్యం సహాయం పఠనాన్ని విడదీయండి
ఆలస్యం ( 1 ) ;
}


పైన ఇచ్చిన కోడ్‌లో, CLK పిన్ స్థితి లూప్() ఫంక్షన్‌లో తనిఖీ చేయబడుతుంది. ఇది దాని మునుపటి స్థితికి సమానంగా లేకుంటే, రోటరీ నాబ్ తిరిగినట్లు చూపిస్తుంది. ఇప్పుడు, నాబ్ భ్రమణ దిశను తనిఖీ చేయడానికి, CLK యొక్క ప్రస్తుత స్థితి DT స్థితితో పోల్చబడింది. రెండు రాష్ట్రాలు అసమానంగా ఉంటే, అది నాబ్ సవ్యదిశలో తిరిగినట్లు చూపిస్తుంది మరియు రోటరీ నాబ్ యొక్క స్థానాన్ని చూపడానికి దాని విలువను కౌంటర్ పెంచుతుంది. వ్యతిరేక సందర్భంలో, కౌంటర్ తగ్గింపులు.

ముగింపు

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