- పదార్థాలు అవసరం
- వేగాన్ని లెక్కించి, అనలాగ్ స్పీడోమీటర్లో చూపుతోంది
- సర్క్యూట్ రేఖాచిత్రం మరియు కనెక్షన్లు
- ప్రోగ్రామింగ్ వివరణ
వాహనం లేదా మోటారు యొక్క వేగం / ఆర్పిఎమ్ను కొలవడం ఎల్లప్పుడూ ప్రయత్నించడానికి మనోహరమైన ప్రాజెక్ట్. ఈ ప్రాజెక్ట్లో, మేము ఆర్డునోను ఉపయోగించి అనలాగ్ స్పీడోమీటర్ను నిర్మించబోతున్నాం. వేగాన్ని కొలవడానికి మేము IR సెన్సార్ మాడ్యూల్ని ఉపయోగిస్తాము. దీనికి వేగాన్ని కొలవడానికి హాల్ సెన్సార్ వంటి ఇతర మార్గాలు / సెన్సార్లు ఉన్నాయి, కాని ఐఆర్ సెన్సార్ ఉపయోగించడం చాలా సులభం ఎందుకంటే ఐఆర్ సెన్సార్ మాడ్యూల్ చాలా సాధారణ పరికరం మరియు మేము దానిని మార్కెట్ నుండి సులభంగా పొందవచ్చు మరియు దీనిని ఏ రకమైనదైనా ఉపయోగించవచ్చు మోటారు వాహనం.
ఈ ప్రాజెక్ట్లో, మేము అనలాగ్ మరియు డిజిటల్ రూపంలో వేగాన్ని చూపించబోతున్నాము. ఈ ప్రాజెక్ట్ చేయడం ద్వారా, ఆర్డునో మరియు స్టెప్పర్ మోటారును నేర్చుకోవడంలో మా నైపుణ్యాలను కూడా పెంచుతాము, ఎందుకంటే ఈ ప్రాజెక్ట్లో అంతరాయాలు మరియు టైమర్ల వాడకం ఉంటుంది. వద్ద, ఈ ప్రాజెక్ట్ చివరలో మీరు ఏదైనా తిరిగే వస్తువు ద్వారా కప్పబడిన వేగం మరియు దూరాలను లెక్కించగలుగుతారు మరియు వాటిని 16x2 LCD తెరపై డిజిటల్ ఆకృతిలో మరియు అనలాగ్ మీటర్లో ప్రదర్శించగలరు. కాబట్టి ఈ స్పీడోమీటర్ మరియు ఓడోమీటర్ సర్క్యూట్తో ఆర్డునోతో ప్రారంభిద్దాం
పదార్థాలు అవసరం
- ఆర్డునో
- బైపోలార్ స్టెప్పర్ మోటర్ (4 వైర్)
- స్టెప్పర్ మోటార్ డ్రైవర్ (L298n మాడ్యూల్)
- IR సెన్సార్ మాడ్యూల్
- 16 * 2 ఎల్సిడి డిస్ప్లే
- 2.2 కే రెసిస్టర్
- వైర్లను కనెక్ట్ చేస్తోంది
- బ్రెడ్బోర్డ్.
- విద్యుత్ పంపిణి
- స్పీడోమీటర్ పిక్చర్ ప్రింటౌట్
వేగాన్ని లెక్కించి, అనలాగ్ స్పీడోమీటర్లో చూపుతోంది
ఐఆర్ సెన్సార్ అనేది ఒక పరికరం దాని ముందు ఉనికిని గుర్తించగల పరికరం. మేము రెండు బ్లేడ్ రోటర్ (అభిమాని) ను ఉపయోగించాము మరియు బ్లేడ్లు తిరిగే ప్రతిసారీ IR సెన్సార్ దానిని గుర్తించే విధంగా IR సెన్సార్ను దాని దగ్గర ఉంచాము. మోటారు యొక్క పూర్తి భ్రమణానికి తీసుకున్న సమయాన్ని లెక్కించడానికి మేము ఆర్డునోలో టైమర్లు మరియు అంతరాయాల సహాయాన్ని ఉపయోగిస్తాము.
ఇక్కడ ఈ ప్రాజెక్ట్లో, మేము rpm ను గుర్తించడానికి అత్యధిక ప్రాధాన్యత గల అంతరాయాన్ని ఉపయోగించాము మరియు మేము దానిని రైజింగ్ మోడ్లో కాన్ఫిగర్ చేసాము. కాబట్టి సెన్సార్ అవుట్పుట్ తక్కువ స్థాయికి వెళ్ళినప్పుడు , ఫంక్షన్ RPMCount () అమలు అవుతుంది. మరియు మేము రెండు బ్లేడ్ రోటర్ను ఉపయోగించినందున, ఒక విప్లవంలో ఫంక్షన్ను 4 సార్లు పిలుస్తారు.
తీసుకున్న సమయం తెలిసిన తర్వాత మేము ఈ క్రింది సూత్రాలను ఉపయోగించి RPM ను లెక్కించవచ్చు, ఇక్కడ 1000 / సమయం తీసుకున్నప్పుడు మాకు RPS (సెకనుకు విప్లవం) ఇస్తుంది మరియు దానిని 60 తో గుణించడం వలన మీకు RPM (నిమిషానికి విప్లవం)
rpm = (60/2) * (1000 / (మిల్లీస్ () - సమయం)) * REV / bladesInFan;
RPM పొందిన తరువాత, ఇచ్చిన ఫార్ములా ద్వారా వేగాన్ని లెక్కించవచ్చు:
వేగం = rpm * (2 * పై * వ్యాసార్థం) / 1000
పై = 3.14 మరియు వ్యాసార్థం 4.7 అంగుళాలు అని మాకు తెలుసు
అయితే మొదట మనం వ్యాసార్థాన్ని అంగుళాల నుండి మీటర్లుగా మార్చాలి:
వ్యాసార్థం = ((వ్యాసార్థం * 2.54) / 100.0) మీటర్లు వేగం = ఆర్పిఎమ్ * 60.0 * (2.0 * 3.14 * వ్యాసార్థం) / 1000.0) గంటకు కిలోమీటర్లలో
ఇక్కడ మనం ఆర్పిఎమ్ను ఆర్పిహెచ్గా మార్చడానికి గంటకు 60 గుణించాలి (గంటకు విప్లవం) మరియు మీటర్ / గంటను కిలోమీటర్లు / గంటకు మార్చడానికి 1000 ద్వారా విభజించబడింది.
కి.మీ.లో వేగం ఉన్న తరువాత మనం ఈ విలువలను నేరుగా ఎల్సిడి ద్వారా డిజిటల్ రూపంలో చూపించగలం కాని అనలాగ్ రూపంలో వేగాన్ని చూపించడానికి మనం కాదు అని తెలుసుకోవడానికి మరో గణన చేయాలి. దశల యొక్క, అనలాగ్ మీటర్లో వేగాన్ని చూపించడానికి స్టెప్పర్ మోటర్ కదలాలి.
ఇక్కడ మేము అనలాగ్ మీటర్ కోసం 4 వైర్ బైపోలార్ స్టెప్పర్ మోటారును ఉపయోగించాము, ఇది 1.8 డిగ్రీలను కలిగి ఉంది అంటే ప్రతి విప్లవానికి 200 దశలు.
ఇప్పుడు మనం స్పీడోమీటర్లో 280 కి.మీ. కాబట్టి 280 కిలోమీటర్ల స్టెప్పర్ మోటారును చూపించడానికి 280 డిగ్రీలు కదలాలి
కాబట్టి మనకు మాక్స్ స్పీడ్ = 280 ఉంది
మరియు మాక్స్ స్టెప్స్ ఉంటుంది
maxSteps = 280 / 1.8 = 155 దశలు
ఇప్పుడు మన ఆర్డునో కోడ్లో మ్యాప్ ఫంక్షన్ అనే ఫంక్షన్ ఉంది, ఇది వేగాన్ని దశల్లోకి మ్యాప్ చేయడానికి ఇక్కడ ఉపయోగించబడుతుంది.
స్టెప్స్ = మ్యాప్ (వేగం, 0, మాక్స్ స్పీడ్, 0, మాక్స్ స్టెప్స్);
కాబట్టి ఇప్పుడు మనకు ఉంది
దశలు = పటం (వేగం, 0,280,0,155);
దశలను లెక్కించిన తరువాత మేము స్టెప్పర్ మోటారును తరలించడానికి స్టెప్పర్ మోటార్ ఫంక్షన్లో ఈ దశలను నేరుగా అన్వయించవచ్చు. ఇచ్చిన లెక్కలను ఉపయోగించి స్టెప్పర్ మోటర్ యొక్క ప్రస్తుత దశలను లేదా కోణాన్ని కూడా మేము జాగ్రత్తగా చూసుకోవాలి
currSteps = స్టెప్స్ దశలను = currSteps-preSteps preSteps = currSteps
ఇక్కడ కర్ర్స్టెప్స్ అనేది ప్రస్తుత లెక్కలు, ఇది చివరి గణన నుండి వస్తోంది మరియు ప్రీస్టెప్స్ చివరిగా చేసిన దశలు.
సర్క్యూట్ రేఖాచిత్రం మరియు కనెక్షన్లు
ఈ అనలాగ్ స్పీడోమీటర్ కోసం సర్క్యూట్ రేఖాచిత్రం చాలా సులభం, ఇక్కడ మేము 16x2 LCD ని డిజిటల్ రూపంలో వేగాన్ని చూపించడానికి మరియు అనలాగ్ స్పీడోమీటర్ సూదిని తిప్పడానికి స్టెప్పర్ మోటారును ఉపయోగించాము.
ఆర్డునో యొక్క అనలాగ్ పిన్స్ వద్ద 16x2 LCD అనుసంధానించబడి ఉంది.
RS - A5
RW - GND
EN - A4
D4 - A3
D5 - A2
D6 - A1
D7 - A0
ఎల్సిడి ప్రకాశాన్ని సెట్ చేయడానికి 2.2 కె రెసిస్టర్ను ఉపయోగిస్తారు. ఆర్పిఎమ్ను లెక్కించడానికి అభిమాని బ్లేడ్ను గుర్తించడానికి ఉపయోగించే ఐఆర్ సెన్సార్ మాడ్యూల్, అంతరాయం 0 కి అనుసంధానించబడి ఉంది, అంటే ఆర్డునో యొక్క డి 2 పిన్.
ఇక్కడ మేము L293N మాడ్యూల్ అనే స్టెప్పర్ మోటార్ డ్రైవర్ను ఉపయోగించాము. స్టెప్పర్ మోటారు డ్రైవర్ యొక్క IN1, IN2, IN3 మరియు IN4 పిన్ నేరుగా ఆర్డునో యొక్క D8, D9, D10 మరియు D11 లతో అనుసంధానించబడి ఉన్నాయి. మిగిలిన కనెక్షన్లు సర్క్యూట్ రేఖాచిత్రంలో ఇవ్వబడ్డాయి.
ప్రోగ్రామింగ్ వివరణ
Arduino Speedomete r కొరకు పూర్తి కోడ్ చివరిలో ఇవ్వబడింది, ఇక్కడ మనం దానిలోని కొన్ని ముఖ్యమైన భాగాలను వివరిస్తున్నాము.
ప్రోగ్రామింగ్ భాగంలో, స్టెప్పర్ మోటార్ లైబ్రరీ, లిక్విడ్ క్రిస్టల్ ఎల్సిడి లైబ్రరీ వంటి అవసరమైన అన్ని లైబ్రరీలను చేర్చాము మరియు వాటి కోసం డిక్లేర్డ్ పిన్లను చేర్చాము.
# చేర్చండి
దీని తరువాత, మేము గణనలను నిర్వహించడానికి కొన్ని వేరియబుల్స్ మరియు మాక్రోలను తీసుకున్నాము. మునుపటి విభాగంలో లెక్కలు ఇప్పటికే వివరించబడ్డాయి.
అస్థిర బైట్ REV; సంతకం చేయని పొడవైన పూర్ణాంక rpm, RPM; సంతకం చేయని పొడవాటి st = 0; సంతకం చేయని దీర్ఘకాలం; int ledPin = 13; int led = 0, RPMlen, prevRPM; పూర్ణాంక పతాకం = 0; int ఫ్లాగ్ 1 = 1; # బ్లేడ్లు నిర్వచించండిఇన్ఫాన్ 2 ఫ్లోట్ వ్యాసార్థం = 4.7; // అంగుళాల పూర్ణాంకం = 0; ఫ్లోట్ స్టెప్అంగిల్ = 360.0 / (ఫ్లోట్) స్టెప్స్పెర్ రివల్యూషన్; ఫ్లోట్ minSpeed = 0; ఫ్లోట్ మాక్స్ స్పీడ్ = 280.0; ఫ్లోట్ minSteps = 0; ఫ్లోట్ మాక్స్ స్టెప్స్ = మాక్స్ స్పీడ్ / స్టెప్అంగిల్;
దీని తరువాత, మేము సెటప్ ఫంక్షన్లో LCD, సీరియల్, ఇంటరప్ట్ మరియు స్టెప్పర్ మోటారును ప్రారంభిస్తాము
శూన్య సెటప్ () { myStepper.setSpeed (60); సీరియల్.బెగిన్ (9600); పిన్మోడ్ (లెడ్పిన్, అవుట్పుట్); lcd.begin (16,2); lcd.print ("స్పీడోమీటర్"); ఆలస్యం (2000); అటాచ్ ఇంటరప్ట్ (0, RPMCount, RISING); }
దీని తరువాత, మేము rpm ను లూప్ ఫంక్షన్లో చదివి, వేగం పొందడానికి ఒక గణనను చేస్తాము మరియు అనలాగ్ రూపంలో వేగాన్ని చూపించడానికి స్టెప్పర్ మోటారును అమలు చేయడానికి దశలుగా మారుస్తాము.
void loop () { readRPM (); వ్యాసార్థం = ((వ్యాసార్థం * 2.54) / 100.0); // మీటర్ Int స్పీడ్ = ((ఫ్లోట్) RPM * 60.0 * (2.0 * 3.14 * వ్యాసార్థం) / 1000.0) లో మార్చడం; // 60 నిమిషాల్లో RPM, టైర్ యొక్క వ్యాసం (2pi r) r వ్యాసార్థం, 1000 కి.మీ.లో మార్చడానికి దశలు = మ్యాప్ (వేగం, మిన్స్పీడ్, మాక్స్ స్పీడ్, మిన్స్టెప్స్, మాక్స్ స్టెప్స్); if (ఫ్లాగ్ 1) { సీరియల్.ప్రింట్ (వేగం); సీరియల్.ప్రింట్ల్న్ ("Kmh"); lcd.setCursor (0,0); lcd.print ("RPM:"); lcd.print (RPM); lcd.print (""); lcd.setCursor (0,1); lcd.print ("వేగం:"); lcd.print (వేగం); lcd.print ("Km / h"); ఫ్లాగ్ 1 = 0; } int కర్ర్స్టెప్స్ = స్టెప్స్;పూర్ణాంక దశలు = కర్ర్స్టెప్స్-ప్రీస్టెప్స్; preSteps = కర్ర్స్టెప్స్; myStepper.step (దశలు); }
ఇక్కడ మనకు RPM ను లెక్కించడానికి reapRPM () ఫంక్షన్ ఉంది.
int readRPM () { if (REV> = 10 లేదా మిల్లీస్ ()> = st + 1000) // ఇది ప్రతి 10 రీడింగ్లను అప్డేట్ చేస్తుంది లేదా నిష్క్రియంగా 1 సెకను { if (ఫ్లాగ్ == 0) ఫ్లాగ్ = 1; rpm = (60/2) * (1000 / (మిల్లీస్ () - సమయం)) * REV / bladesInFan; సమయం = మిల్లీస్ (); REV = 0; int x = rpm; (x! = 0) { x = x / 10; RPMlen ++; } సీరియల్.ప్రింట్ల్న్ (rpm, DEC); RPM = rpm; ఆలస్యం (500); st = మిల్లీస్ (); ఫ్లాగ్ 1 = 1; } }
చివరగా, వస్తువు యొక్క విప్లవాన్ని కొలవడానికి బాధ్యత వహించే అంతరాయ దినచర్య మాకు ఉంది
శూన్యమైన RPMCount () { REV ++; if (led == LOW) { led = HIGH; } else { led = LOW; } డిజిటల్ రైట్ (లెడ్పిన్, లీడ్); }
ఈ విధంగా మీరు ఆర్డునోను ఉపయోగించి అనలాగ్ స్పీడోమీటర్ను నిర్మించవచ్చు. ఇది హాల్ సెన్సార్ను ఉపయోగించి కూడా నిర్మించవచ్చు మరియు వేగాన్ని స్మార్ట్ ఫోన్లో ప్రదర్శించవచ్చు, ఈ ఆర్డునో స్పీడోమీటర్ ట్యుటోరియల్ను అనుసరించండి.