- ఇన్ఫ్రారెడ్ స్లాటెడ్ ఆప్టికల్ LM-393 స్పీడ్ సెన్సార్ మాడ్యూల్
- ఛార్జీలను లెక్కించడానికి ప్రయాణించే వేగం మరియు దూరాన్ని కొలవడం
నేడు డిజిటల్ మీటర్లు ప్రతి సెక్టార్లోని అనలాగ్ మీటర్లను దాని విద్యుత్ మీటర్ అయినా, టాక్సీ ఛార్జీ మీటర్ అయినా భర్తీ చేస్తున్నాయి. దానికి ప్రధాన కారణం అనలాగ్ మీటర్లలో ఎక్కువసేపు ఉపయోగించినప్పుడు ధరించే యాంత్రిక భాగాలు మరియు అవి డిజిటల్ మీటర్ల వలె ఖచ్చితమైనవి కావు.
దీనికి మంచి ఉదాహరణ అనలాగ్ స్పీడోమీటర్ మరియు ఓడోమీటర్, ఇది పాత మోటారు బైక్లలో వేగం మరియు ప్రయాణ దూరాన్ని కొలవడానికి ఉపయోగిస్తారు. వాటికి పినియన్ మరియు రాక్ అమరిక అని పిలువబడే ప్రత్యేక భాగాలు ఉన్నాయి, దీనిలో చక్రం తిప్పినప్పుడు స్పీడోమీటర్ యొక్క పిన్ను తిప్పడానికి ఒక కేబుల్ ఉపయోగించబడుతుంది. ఇది ఎక్కువ కాలం ఉపయోగించినప్పుడు క్షీణిస్తుంది మరియు భర్తీ మరియు నిర్వహణ కూడా అవసరం.
డిజిటల్ మీటర్లో, యాంత్రిక భాగాలను ఉపయోగించకుండా, వేగం మరియు దూరాన్ని లెక్కించడానికి ఆప్టికల్ ఇంటరప్టర్ లేదా హాల్ సెన్సార్ వంటి కొన్ని సెన్సార్లు ఉపయోగించబడతాయి. ఇది అనలాగ్ మీటర్ల కంటే చాలా ఖచ్చితమైనది మరియు ఎక్కువ కాలం నిర్వహణ అవసరం లేదు. మేము గతంలో వేర్వేరు సెన్సార్లను ఉపయోగించి అనేక డిజిటల్ స్పీడోమీటర్ ప్రాజెక్టులను నిర్మించాము:
- ఆర్డునో మరియు ప్రాసెసింగ్ Android అనువర్తనాన్ని ఉపయోగించి DIY స్పీడోమీటర్
- పిఐసి మైక్రోకంట్రోలర్ ఉపయోగించి డిజిటల్ స్పీడోమీటర్ మరియు ఓడోమీటర్ సర్క్యూట్
- LM393 సెన్సార్ (H206) ఉపయోగించి మొబైల్ రోబోట్ల కోసం వేగం, దూరం మరియు కోణ కొలత
ఈ రోజు, ఈ ట్యుటోరియల్లో మనం ఆర్డునో ఉపయోగించి డిజిటల్ టాక్సీ ఫేర్ మీటర్ యొక్క నమూనాను తయారు చేస్తాము. ఈ ప్రాజెక్ట్ టాక్సీ చక్రం ప్రయాణించే వేగం మరియు దూరాన్ని లెక్కిస్తుంది మరియు దానిని నిరంతరం 16x2 LCD డిస్ప్లేలో ప్రదర్శిస్తుంది. మరియు ప్రయాణించిన దూరం ఆధారంగా మేము పుష్ బటన్ నొక్కినప్పుడు ఛార్జీల మొత్తాన్ని ఉత్పత్తి చేస్తుంది.
క్రింద ఉన్న చిత్రం డిజిటల్ టాక్సీ మీటర్ ప్రాజెక్ట్ యొక్క పూర్తి సెటప్ను చూపిస్తుంది
ఈ ప్రోటోటైప్లో స్పీడ్ సెన్సార్ మాడ్యూల్తో ఆర్సి కార్ చట్రం మరియు మోటారుకు జతచేయబడిన ఎన్కోడర్ వీల్ ఉన్నాయి. వేగాన్ని కొలిచిన తర్వాత, మేము ప్రయాణించిన దూరాన్ని కొలవవచ్చు మరియు పుష్ బటన్ను నొక్కడం ద్వారా ఛార్జీల మొత్తాన్ని కనుగొనవచ్చు. మేము పొటెన్షియోమీటర్ ఉపయోగించి చక్రం యొక్క వేగాన్ని సెట్ చేయవచ్చు. Arduino తో LM-393 స్పీడ్ సెన్సార్ మాడ్యూల్ ఉపయోగించడం గురించి మరింత తెలుసుకోవడానికి, లింక్ను అనుసరించండి. స్పీడ్ సెన్సార్ మాడ్యూల్ యొక్క చిన్న పరిచయాన్ని చూద్దాం.
ఇన్ఫ్రారెడ్ స్లాటెడ్ ఆప్టికల్ LM-393 స్పీడ్ సెన్సార్ మాడ్యూల్
ఇది స్లాట్ రకం మాడ్యూల్, ఇది ఎన్కోడర్ చక్రాల భ్రమణ వేగాన్ని కొలిచేందుకు ఉపయోగపడుతుంది. ఈ స్పీడ్ సెన్సార్ మాడ్యూల్ ఆప్టికల్ సోర్స్ సెన్సార్ అని కూడా పిలువబడే స్లాట్ రకం ఆప్టికల్ ఇంటరప్టర్ ఆధారంగా పనిచేస్తుంది. ఈ మాడ్యూల్కు 3.3V నుండి 5V వరకు వోల్టేజ్ అవసరం మరియు డిజిటల్ అవుట్పుట్ను ఉత్పత్తి చేస్తుంది. కనుక ఇది ఏదైనా మైక్రోకంట్రోలర్తో ఇంటర్ఫేస్ చేయవచ్చు.
ఇన్ఫ్రారెడ్ లైట్ సెన్సార్లో లైట్ సోర్స్ (IR-LED) మరియు ఫోటోట్రాన్సిస్టర్ సెన్సార్ ఉంటాయి. రెండూ వాటి మధ్య చిన్న గ్యాప్తో ఉంచబడతాయి. IR LED మరియు ఫోటోట్రాన్సిస్టర్ యొక్క అంతరం మధ్య ఒక వస్తువు ఉంచినప్పుడు, అది కాంతి పుంజానికి అంతరాయం కలిగిస్తుంది, దీని వలన ఫోటోట్రాన్సిస్టర్ కరెంట్ దాటకుండా ఆగిపోతుంది.
ఈ సెన్సార్తో స్లాట్డ్ డిస్క్ (ఎన్కోడర్ వీల్) ఉపయోగించబడుతుంది, ఇది మోటారుతో జతచేయబడుతుంది మరియు చక్రం మోటారుతో తిరుగుతున్నప్పుడు అది ఐఆర్ ఎల్ఇడి మరియు ఫోటోట్రాన్సిస్టర్ మధ్య కాంతి పుంజానికి అంతరాయం కలిగిస్తుంది, ఇది అవుట్పుట్ ఆన్ మరియు ఆఫ్ చేస్తుంది (పప్పులను సృష్టించడం).
అందువల్ల మూలం మరియు సెన్సార్ మధ్య అంతరాయం ఉన్నప్పుడు ఇది అధిక ఉత్పత్తిని ఉత్పత్తి చేస్తుంది (ఏదైనా వస్తువు మధ్యలో ఉంచినప్పుడు) మరియు వస్తువు లేనప్పుడు తక్కువ ఉత్పత్తిని ఉత్పత్తి చేస్తుంది. మాడ్యూల్లో ఆప్టికల్ అంతరాయం ఏర్పడిందని సూచించడానికి మాకు LED ఉంది.
ఈ మాడ్యూల్ LM393 కంపారిటర్ IC తో వస్తుంది, ఇది OUTPUT వద్ద ఖచ్చితమైన అధిక మరియు తక్కువ సంకేతాలను ఉత్పత్తి చేయడానికి ఉపయోగించబడుతుంది. అందువల్ల ఈ మాడ్యూల్ను కొన్నిసార్లు LM393 స్పీడ్ సెన్సార్ అని పిలుస్తారు.
ఛార్జీలను లెక్కించడానికి ప్రయాణించే వేగం మరియు దూరాన్ని కొలవడం
భ్రమణ వేగాన్ని కొలవడానికి మనం ఎన్కోడర్ వీల్లో ఉన్న స్లాట్ల సంఖ్యను తెలుసుకోవాలి. నా వద్ద 20 స్లాట్లతో ఎన్కోడర్ వీల్ ఉంది. అవి ఒక పూర్తి భ్రమణాన్ని తిప్పినప్పుడు మనకు అవుట్పుట్ వద్ద 20 పప్పులు ఉంటాయి. కాబట్టి వేగాన్ని లెక్కించడానికి మనకు సెకనుకు ఉత్పత్తి చేసే పప్పుధాన్యాల సంఖ్య అవసరం.
ఉదాహరణకి
ఒక సెకనులో 40 పప్పులు ఉంటే, అప్పుడు
వేగం = నూ. పప్పుధాన్యాలు / స్లాట్ల సంఖ్య = 40/20 = 2RPS (సెకనుకు విప్లవం)
RPM లో వేగాన్ని లెక్కించడానికి (నిమిషానికి విప్లవాలు) 60 తో గుణించాలి.
RPM = 2 X 60 = 120 RPM లో వేగం (నిమిషానికి విప్లవాలు)
దూరాన్ని కొలవడం
చక్రం ప్రయాణించే దూరాన్ని కొలవడం చాలా సులభం. దూరాన్ని లెక్కించే ముందు, చక్రం యొక్క చుట్టుకొలత తెలుసుకోవాలి.
చక్రం యొక్క చుట్టుకొలత = π * d
ఇక్కడ d అనేది చక్రం యొక్క వ్యాసం.
Of యొక్క విలువ 3.14.
నాకు 6.60 సెం.మీ వ్యాసం కలిగిన చక్రం (ఆర్సి కార్ వీల్) ఉంది కాబట్టి చుట్టుకొలత (20.7 సెం.మీ).
కాబట్టి ప్రయాణించిన దూరాన్ని లెక్కించడానికి, చుట్టుకొలతతో కనుగొనబడిన పప్పుల సంఖ్యను గుణించండి.
ప్రయాణించిన దూరం = చక్రం యొక్క చుట్టుకొలత x (పప్పుధాన్యాల సంఖ్య / స్లాట్ల సంఖ్య)
కాబట్టి ఒక చక్రం 20.7 సెం.మీ 20 పప్పులను ఎన్కోడర్ వీల్ యొక్క ఒక భ్రమణం తీసుకుంటే, అప్పుడు చక్రం ప్రయాణించే దూరం లెక్కించబడుతుంది
ప్రయాణించిన దూరం = 20.7 x (20/20) = 20.7 సెం.మీ.
మీటర్లోని దూరాన్ని లెక్కించడానికి సెం.మీ విలువలో దూరాన్ని 100 ద్వారా విభజించండి.
గమనిక: ఇది ఒక చిన్న RC కారు చక్రం, నిజ సమయంలో కార్లు దీని కంటే పెద్ద చక్రాలను కలిగి ఉంటాయి. కాబట్టి నేను చక్రం యొక్క చుట్టుకొలత ఊహిస్తూ వెబ్ ఈ ట్యుటోరియల్ లో 230cm ఉండాలి.
ప్రయాణించిన దూరం ఆధారంగా ఛార్జీలను లెక్కిస్తోంది
మొత్తం ఛార్జీల మొత్తాన్ని పొందడానికి, ఛార్జీల రేటు (మొత్తం / మీటర్) తో ప్రయాణించిన దూరాన్ని గుణించండి.
టైమర్ 1.ఇనిటిలైజ్ (1000000); టైమర్ 1.టాచ్ఇంటరప్ట్ (టైమర్ఇస్ర్);
తరువాత రెండు బాహ్య అంతరాయాలను అటాచ్ చేయండి. మొదటి అంతరాయం ఆర్డునో పిన్ 2 ను ఇంటరప్ట్ పిన్గా చేస్తుంది మరియు పిన్ 2 వద్ద RISING (LOW TO HIGH) కనుగొనబడినప్పుడు ISR (కౌంట్) అని పిలుస్తుంది. ఈ పిన్ 2 స్పీడ్ సెన్సార్ మాడ్యూల్ యొక్క D0 అవుట్పుట్కు అనుసంధానించబడి ఉంది.
మరియు రెండవది ఆర్డునో పిన్ 3 ను ఇంటరప్ట్ పిన్గా చేస్తుంది మరియు పిన్ 3 వద్ద HIGH కనుగొనబడినప్పుడు ISR (జనరేట్ఫేర్) అని పిలుస్తుంది. ఈ పిన్ పుల్ డౌన్ రెసిస్టర్తో పుష్ బటన్కు అనుసంధానించబడి ఉంది.
అటాచ్ఇంటరప్ట్ (డిజిటల్ పిన్టోఇంటరప్ట్ (2), కౌంట్, రైజింగ్); attachInterrupt (digitalPinToInterrupt (3), generatefare , HIGH);
5. తరువాత మనం ఇక్కడ ఉపయోగించిన ISR గురించి చూద్దాం:
పిన్ 2 (స్పీడ్ సెన్సార్కి కనెక్ట్ చేయబడింది) వద్ద RISING (LOW TO HIGH) జరిగినప్పుడు ISR1- కౌంట్ () ISR అంటారు.
శూన్య గణన () // స్పీడ్ సెన్సార్ { కౌంటర్ ++ నుండి గణనల కోసం ISR ; // కౌంటర్ విలువను ఒక భ్రమణం ద్వారా పెంచండి ++; // భ్రమణ విలువను ఒక ఆలస్యం ద్వారా పెంచండి (10); }
ISR2- timerIsr () ISR ను ప్రతి సెకనుకు పిలుస్తారు మరియు ISR లోపల ఉన్న పంక్తులను అమలు చేస్తుంది.
void timerIsr () { detachInterrupt (DigitalPinToInterrupt (2%); టైమర్ 1.డెటాచ్ఇంటరప్ట్ (); lcd.clear (); ఫ్లోట్ స్పీడ్ = (కౌంటర్ / 20.0) * 60.0; ఫ్లోట్ భ్రమణాలు = 230 * (భ్రమణం / 20); rotationinm = భ్రమణాలు / 100; lcd.setCursor (0,0); lcd.print ("Dist (m):"); lcd.print (rotationinm); lcd.setCursor (0,1); lcd.print ("వేగం (RPM):"); lcd.print (వేగం); కౌంటర్ = 0; పూర్ణాంక అనలాగ్ = అనలాగ్ రీడ్ (A0); int motorspeed = పటం (అనలాగిప్, 0,1023,0,255); అనలాగ్రైట్ (5, మోటర్స్పీడ్); టైమర్ 1.టాచ్ఇంటరప్ట్ (టైమర్ఇస్ర్); అటాచ్ఇంటరప్ట్ (డిజిటల్ పిన్టోఇంటరప్ట్ (2), కౌంట్, రైజింగ్); }
ఈ ఫంక్షన్ వాస్తవానికి మొదట టైమర్ 1 మరియు ఇంటరప్ట్ పిన్ 2 ను వేరుచేసే పంక్తులను కలిగి ఉంది ఎందుకంటే మనకు ISR లోపల LCD ప్రింట్ స్టేట్మెంట్స్ ఉన్నాయి.
RPM లో SPEED ను లెక్కించడానికి మేము కోడ్ క్రింద ఉపయోగిస్తాము, ఇక్కడ 20.0 ఎన్కోడర్ వీల్లో ముందుగా అమర్చబడిన స్లాట్ల సంఖ్య.
ఫ్లోట్ స్పీడ్ = (కౌంటర్ / 20.0) * 60.0;
మరియు కోడ్ క్రింద దూరాన్ని లెక్కించడానికి ఉపయోగిస్తారు:
ఫ్లోట్ భ్రమణాలు = 230 * (భ్రమణం / 20);
ఇక్కడ చక్రం యొక్క చుట్టుకొలత 230 సెం.మీ గా భావించబడుతుంది (ఇది నిజ సమయ కార్లకు సాధారణం కాబట్టి)
తరువాత దూరాన్ని 100 ద్వారా విభజించడం ద్వారా m లో దూరాన్ని మార్చండి
rotationinm = భ్రమణాలు / 100;
ఆ తరువాత మేము స్పీడ్ మరియు డిస్టెన్స్ను ఎల్సిడి డిస్ప్లేలో ప్రదర్శిస్తాము
lcd.setCursor (0,0); lcd.print ("Dist (m):"); lcd.print (rotationinm); lcd.setCursor (0,1); lcd.print ("వేగం (RPM):"); lcd.print (వేగం);
ముఖ్యమైనది: మేము కౌంటర్ను 0 కి రీసెట్ చేయాలి ఎందుకంటే సెకనుకు కనుగొనబడిన ప్లస్ల సంఖ్యను పొందాలి, కాబట్టి మేము ఈ పంక్తిని ఉపయోగిస్తాము
కౌంటర్ = 0;
తరువాత అనలాగ్ పిన్ A0 ను చదివి దానిని డిజిటల్ విలువగా (0 నుండి 1023 వరకు) మార్చండి మరియు PWM అవుట్పుట్ (మోటారు వేగాన్ని సెట్ చేయడం) కోసం ఆ విలువలను 0-255 కు మ్యాప్ చేయండి మరియు చివరకు ULN2003 కి అనుసంధానించబడిన అనలాగ్రైట్ ఫంక్షన్ను ఉపయోగించి ఆ PWM విలువలను రాయండి. మోటార్ ఐసి.
పూర్ణాంక అనలాగ్ = అనలాగ్ రీడ్ (A0); int motorspeed = పటం (అనలాగిప్, 0,1023,0,255); అనలాగ్రైట్ (5, మోటర్స్పీడ్);
ISR3: జనరేట్ఫేర్ () ప్రయాణించిన దూరం ఆధారంగా ఛార్జీల మొత్తాన్ని ఉత్పత్తి చేయడానికి ISR ఉపయోగించబడుతుంది. అంతరాయ పిన్ 3 కనుగొనబడినప్పుడు ఈ ISR అంటారు HIGH (పుష్ బటన్ నొక్కినప్పుడు). ఈ ఫంక్షన్ పిన్ 2 వద్ద అంతరాయాన్ని వేరు చేస్తుంది మరియు టైమర్ అంతరాయం కలిగిస్తుంది మరియు తరువాత LCD ని క్లియర్ చేస్తుంది.
void generatefare () { detachInterrupt (DigitalPinToInterrupt (2)); 2 టైమర్ 1.డెటాచ్ఇంటరప్ట్ () వద్ద పిన్ చేయండి ; lcd.clear (); lcd.setCursor (0,0); lcd.print ("FARE Rs:"); ఫ్లోట్ రూపాయిలు = రొటేషన్ఇన్మ్ * 5; lcd.print (రూపాయి); lcd.setCursor (0,1); lcd.print ("మీటరుకు 5 రూపాయలు"); }
ప్రయాణించిన దూరం 5 తో గుణించబడిన తరువాత (నేను 5 / మీటర్ రేటుకు 5 ఉపయోగించాను). మీ కోరిక ప్రకారం మీరు మారవచ్చు.
ఫ్లోట్ రూపాయిలు = రొటేషన్ఇన్మ్ * 5;
మొత్తం విలువను లెక్కించిన తరువాత Arduino కి కనెక్ట్ చేయబడిన LCD డిస్ప్లేలో ప్రదర్శిస్తుంది.
lcd.setCursor (0,0); lcd.print ("FARE Rs:"); lcd.print (రూపాయి); lcd.setCursor (0,1); lcd.print ("మీటరుకు 5 రూపాయలు");
పూర్తి కోడ్ మరియు ప్రదర్శన వీడియో క్రింద ఇవ్వబడింది.
ఖచ్చితత్వం, దృ ness త్వం పెంచడం మరియు Android అనువర్తనం, డిజిటల్ చెల్లింపు మొదలైన మరిన్ని లక్షణాలను జోడించడం ద్వారా మీరు ఈ నమూనాను మరింత మెరుగుపరచవచ్చు మరియు దానిని ఉత్పత్తిగా అభివృద్ధి చేయవచ్చు.