పొటెన్షియోమీటర్లు మరియు రోటరీ ఎన్కోడర్లు రెండూ భ్రమణాన్ని లేదా గ్రహణ స్థితిని గుర్తించడానికి ఉపయోగించబడతాయి. అవి ఎలక్ట్రానిక్స్ రంగంలో విభిన్న అనువర్తనాలను కలిగి ఉండే ఎలక్ట్రోమెకానికల్ పరికరాలు. వివిధ ప్రాజెక్ట్లను రూపొందించడానికి వాటిని Arduinoతో కూడా ఇంటర్ఫేస్ చేయవచ్చు. ఈ కథనం పొటెన్షియోమీటర్ మరియు రోటరీ ఎన్కోడర్ మధ్య ఉన్న ప్రాథమిక వ్యత్యాసాలను ప్రదర్శించడం.
పొటెన్షియోమీటర్ అంటే ఏమిటి
పొటెన్షియోమీటర్ అనేది రియోస్టాట్, లేదా మనం దానిని వేరియబుల్ రెసిస్టర్ అని పిలుస్తాము. పొటెన్షియోమీటర్ యొక్క షాఫ్ట్ భ్రమణాన్ని బట్టి ప్రతిఘటన విలువ మారుతుంది. పొటెన్షియోమీటర్లు నిర్ణీత దూరానికి మాత్రమే మారగలవు. అనలాగ్ మరియు డిజిటల్ పొటెన్షియోమీటర్లు రెండూ ఉన్నాయి, కానీ అవి దాదాపు సమానంగా ఉంటాయి. అనలాగ్ పొటెన్షియోమీటర్లను Arduino, Raspberry Pi మరియు ఇతర పరికరాలలో మైక్రోకంట్రోలర్లతో ఇంటర్ఫేస్ చేయవచ్చు. ఒక పొటెన్షియోమీటర్ మూడు పిన్లను కలిగి ఉంటుంది, అవి ఇన్పుట్ వోల్టేజ్ పిన్ Vcc, గ్రౌండ్ పిన్ GND మరియు ఇన్పుట్ సిగ్నల్ పిన్. సిగ్నల్ పిన్ Arduinoకి ఇన్పుట్ను అందిస్తుంది.
రోటరీ ఎన్కోడర్ అంటే ఏమిటి
రోటరీ ఎన్కోడర్లు రోటరీ నాబ్ యొక్క కోణీయ స్థానాన్ని గ్రహించి, మైక్రోకంట్రోలర్ లేదా అవి కనెక్ట్ చేయబడిన ఏదైనా ఇతర పరికరానికి సిగ్నల్ను పంపుతాయి. ఇది ఒక సాధారణ పిన్కి అనుసంధానించబడిన సమాన అంతరం గల పరిచయ ప్రాంతాలతో కూడిన డిస్క్ను కలిగి ఉంది. రోటరీ ఎన్కోడర్లు నిర్దిష్ట అవసరాలకు అనుగుణంగా ఆన్ మరియు ఆఫ్ సిగ్నల్లను అందించే అంతర్నిర్మిత పుష్ బటన్ లేదా రోటరీ స్విచ్ను కూడా కలిగి ఉంటాయి.
రోటరీ ఎన్కోడర్ యొక్క పిన్అవుట్ రేఖాచిత్రం మరియు పిన్ వివరణ
క్రింద ఇవ్వబడిన రేఖాచిత్రం రోటరీ ఎన్కోడర్ యొక్క పిన్లను చూపుతుంది. ఈ పిన్స్ ఈ క్రింది విధంగా వివరించబడ్డాయి:
అవుట్ B లేదా CLK
ఈ పిన్ నాబ్ లేదా రోటరీ ఎన్కోడర్ ఎన్నిసార్లు తిప్పబడిందో అవుట్పుట్ ఇస్తుంది. ప్రతిసారి నాబ్ని తిప్పినప్పుడు, CLK అధిక మరియు తక్కువ చక్రాన్ని పూర్తి చేస్తుంది. ఇది ఒక భ్రమణంగా పరిగణించబడుతుంది.
అవుట్ A లేదా DT
భ్రమణ దిశను నిర్ణయించే రోటరీ ఎన్కోడర్ యొక్క రెండవ అవుట్పుట్ పిన్ ఇది. ఇది CLK సిగ్నల్ కంటే 90° వెనుకబడి ఉంది. కాబట్టి, దాని స్థితి CLK స్థితికి సమానంగా లేకుంటే, భ్రమణ దిశ సవ్యదిశలో ఉంటుంది, లేకపోతే వ్యతిరేక సవ్యదిశలో ఉంటుంది.
మారండి
పుష్ బటన్ నొక్కినా లేదా అని తనిఖీ చేయడానికి స్విచ్ పిన్ ఉపయోగించబడుతుంది.
Vcc
ఈ పిన్ 5V సరఫరాకు కనెక్ట్ చేయబడింది
GND
ఈ పిన్ భూమికి కనెక్ట్ చేయబడింది
పొటెన్షియోమీటర్ మరియు రోటరీ ఎన్కోడర్ మధ్య వ్యత్యాసం
స్పెసిఫికేషన్ | పొటెన్షియోమీటర్ | రోటరీ ఎన్కోడర్ |
భ్రమణం | పొటెన్షియోమీటర్ను ఒక దిశలో మాత్రమే తిప్పవచ్చు మరియు అది కూడా వృత్తంలో మూడు వంతుల వరకు తిప్పబడుతుంది. | రోటరీ ఎన్కోడర్ సవ్యదిశలో మరియు అపసవ్య దిశలో 360° నిరంతరం తిరిగే సామర్థ్యాన్ని కలిగి ఉంటుంది. |
అనలాగ్ లేదా డిజిటల్ పరికరం | పొటెన్షియోమీటర్ అనేది చాలావరకు అనలాగ్ ఇన్పుట్ పరికరం, ఇది రెసిస్టర్ విలువలో మార్పు ద్వారా స్థానంలో మార్పును కొలుస్తుంది. | రోటరీ ఎన్కోడర్ అనేది కోణీయ స్థానాన్ని గ్రహించి డిజిటల్ విలువలను అందించే డిజిటల్ ఇన్పుట్ పరికరం.
|
ఇన్పుట్ స్థానాల సంఖ్య | పొటెన్షియోమీటర్ ఒక అనలాగ్ పరికరం అయినందున విలువలను తీసుకోగల అనంతమైన ఇన్పుట్ స్థానాలను కలిగి ఉంటుంది. | రోటరీ ఎన్కోడర్లు పరిమిత సంఖ్యలో ఇన్పుట్ స్థానాలను కలిగి ఉంటాయి. |
ఆర్డునోతో పొటెన్షియోమీటర్ని సెటప్ చేస్తోంది
రోటరీ ఎన్కోడర్ కంటే పొటెన్షియోమీటర్ను ఆర్డునోతో సెటప్ చేయడం సులభం. పొటెన్షియోమీటర్లో మూడు పిన్స్ VCC, GND మరియు Arduinoకి కనెక్ట్ చేయబడిన INPUT పిన్ మాత్రమే ఉన్నాయి. ఆర్డునోతో పొటెన్షియోమీటర్ యొక్క ఇంటర్ఫేసింగ్ క్రింద చూపబడింది:
ఆర్డునోలో పొటెన్షియోమీటర్ను ప్రోగ్రామింగ్ చేయడం రోటరీ ఎన్కోడర్ కంటే సులభం. రెండింటికీ నమూనా సింటాక్స్ కోడ్లు క్రింద ఇవ్వబడ్డాయి.
పొటెన్షియోమీటర్ కోసం నమూనా కోడ్
const int pot = A0; // ఇన్పుట్ పిన్ని ప్రకటించండిశూన్యమైన సెటప్ ( ) {
పిన్మోడ్ ( కుండ, INPUT ) ; // పొటెన్షియోమీటర్ నుండి సెటప్ విలువ తీసుకోబడింది వంటి ఇన్పుట్
సీరియల్.ప్రారంభం ( 9600 ) ;
}
శూన్య లూప్ ( ) {
int potValue = అనలాగ్ రీడ్ ( కుండ ) ; // పొటెన్షియోమీటర్ ద్వారా తీసుకున్న ఇన్పుట్ విలువను చదవండి
పటం ( potvalue, 0 , 1023 , 0 , 255 ) ; // సరిపోలడానికి ఇన్పుట్ విలువను స్కేల్ చేస్తోంది 8 -బిట్
Serial.println ( potvalue ) ; // పొటెన్షియోమీటర్కి ఇన్పుట్ చేసిన విలువను ప్రింట్ చేస్తుంది
ఆలస్యం ( 100 ) ;
}
పొటెన్షియోమీటర్ కోడ్ చాలా సులభం మరియు సులభం. Arduino యొక్క అనలాగ్ ఇన్పుట్ పిన్ కేవలం పొటెన్షియోమీటర్ నుండి ఇన్పుట్ తీసుకోవడానికి ప్రకటించబడింది, ఆపై అనలాగ్రీడ్() మరియు మ్యాప్() ఫంక్షన్లు పొటెన్షియోమీటర్ నుండి రీడింగ్ యొక్క ఖచ్చితమైన విలువను చదవడానికి మరియు ఇవ్వడానికి ఉపయోగించబడతాయి.
ఆర్డునోతో ఇంటర్ఫేసింగ్ రోటరీ ఎన్కోడర్
రోటరీ ఎన్కోడర్లో ఐదు పిన్లు ఉంటాయి. రోటరీ ఎన్కోడర్ యొక్క 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 స్థితితో పోల్చబడింది. రెండు రాష్ట్రాలు అసమానంగా ఉంటే, అది నాబ్ సవ్యదిశలో తిరిగినట్లు చూపిస్తుంది మరియు రోటరీ నాబ్ యొక్క స్థానాన్ని చూపడానికి దాని విలువను కౌంటర్ పెంచుతుంది. వ్యతిరేక సందర్భంలో, కౌంటర్ తగ్గింపులు.
అప్లికేషన్లు
నియంత్రణ ఫంక్షన్ అవసరమైన చోట పొటెన్షియోమీటర్లు ప్రధానంగా ఉపయోగించబడతాయి. వారు వాల్యూమ్ నియంత్రణ, LED ప్రకాశం నియంత్రణలో ఉపయోగిస్తారు. మరోవైపు, రోటరీ ఎన్కోడర్లు విస్తృత శ్రేణి అప్లికేషన్లను అందిస్తాయి. అవి రోబోటిక్స్, వైద్య పరికరాలు, ఆటోమేషన్ మరియు గేమింగ్లో ఉపయోగించబడతాయి.
ముగింపు
పొటెన్షియోమీటర్లు మరియు రోటరీ ఎన్కోడర్లు రెండూ ఎలక్ట్రానిక్స్ రంగంలో ప్రత్యేకించి ఉపయోగకరమైన పరికరాలు. రోటరీ ఎన్కోడర్లు పొటెన్షియోమీటర్లతో పోలిస్తే అధునాతనంగా ఉంటాయి, ఎందుకంటే అవి నిరంతరం 360° వరకు తిరుగుతాయి. అదేవిధంగా, వారు ఆధునిక ఎలక్ట్రానిక్స్లో ఎక్కువ అప్లికేషన్లను కలిగి ఉన్నారు మరియు వాటిని పొటెన్షియోమీటర్ల కంటే ఉపయోగించడం కొంచెం కష్టం .