- सामग्री की आवश्यकता
- गति की गणना करना और इसे एनालॉग स्पीडोमीटर पर दिखाना
- सर्किट आरेख और कनेक्शन
- प्रोग्रामिंग स्पष्टीकरण
वाहन या मोटर की गति / आरपीएम को मापना हमेशा कोशिश करने के लिए एक आकर्षक परियोजना रही है। इस परियोजना में, हम Arduino का उपयोग करके एक एनालॉग स्पीडोमीटर बनाने जा रहे हैं । हम गति को मापने के लिए IR सेंसर मॉड्यूल का उपयोग करेंगे। इसके लिए अन्य तरीके / सेंसर हैं, जैसे गति को मापने के लिए हॉल सेंसर, लेकिन आईआर सेंसर का उपयोग करना आसान है क्योंकि आईआर सेंसर मॉड्यूल बहुत सामान्य उपकरण है और हम इसे बाजार से आसानी से प्राप्त कर सकते हैं और यह किसी भी प्रकार पर उपयोग किया जा सकता है मोटर गाड़ी।
इस परियोजना में, हम एनालॉग और डिजिटल दोनों रूपों में गति दिखाने जा रहे हैं । इस परियोजना को करने से, हम Arduino और Stepper मोटर सीखने में भी अपने कौशल को बढ़ाएंगे क्योंकि इस परियोजना में इंटरप्ट और टाइमर का उपयोग शामिल है। इस परियोजना के अंत में, आप किसी भी घूर्णन वस्तु द्वारा कवर की गई गति और दूरी की गणना करने में सक्षम होंगे और उन्हें 16x2 एलसीडी स्क्रीन पर डिजिटल प्रारूप में और एनालॉग मीटर पर भी प्रदर्शित कर सकेंगे। तो चलिए इस स्पीडोमीटर और ओडोमीटर सर्किट को Arduino के साथ शुरू करते हैं
सामग्री की आवश्यकता
- Arduino
- एक द्विध्रुवीय स्टेपर मोटर (4 तार)
- स्टेपर मोटर ड्राइवर (L298n मॉड्यूल)
- आईआर सेंसर मॉड्यूल
- 16 * 2 एलसीडी डिस्प्ले
- 2.2k रोकनेवाला
- तारों को जोड़ना
- ब्रेड बोर्ड।
- बिजली की आपूर्ति
- स्पीडोमीटर पिक्चर प्रिंटआउट
गति की गणना करना और इसे एनालॉग स्पीडोमीटर पर दिखाना
एक आईआर सेंसर एक उपकरण है जो इसके सामने किसी वस्तु की उपस्थिति का पता लगा सकता है। हमने दो ब्लेड रोटर (प्रशंसक) का उपयोग किया है और आईआर सेंसर को इस तरह से रखा है कि हर बार ब्लेड घूमने पर आईआर सेंसर इसका पता लगाता है। फिर हम मोटर के एक पूर्ण रोटेशन के लिए लगने वाले समय की गणना करने के लिए Arduino में टाइमर और इंटरप्ट की मदद लेते हैं।
इस परियोजना में, हमने आरपीएम का पता लगाने के लिए सर्वोच्च प्राथमिकता वाले व्यवधान का उपयोग किया है और हमने इसे बढ़ते मोड में कॉन्फ़िगर किया है। ताकि जब भी सेंसर आउटपुट LOW से हाई हो जाए, तो RPMCount () फंक्शन निष्पादित किया जाएगा। और जैसा कि हमने दो ब्लेड रोटर का उपयोग किया है, इसका मतलब है कि फ़ंक्शन को एक क्रांति में 4 बार कहा जाएगा।
एक बार लिया गया समय ज्ञात होने के बाद, हम नीचे दिए गए सूत्रों का उपयोग करके RPM की गणना कर सकते हैं, जहाँ 1000 / समय लिया गया है, हमें RPS (प्रति सेकंड क्रांति) देगा और इसे 60 से गुणा करने पर आपको RPM (क्रांति प्रति मिनट) मिलेगा
आरपीएम = (60/2) * (1000 / (मिली () - समय)) * आरईवी / ब्लेडइन्फैन;
RPM प्राप्त करने के बाद, दिए गए सूत्र द्वारा गति की गणना की जा सकती है:
गति = आरपीएम * (2 * पाई * त्रिज्या) / 1000
हम जानते हैं कि Pi = 3.14 और त्रिज्या 4.7 इंच है
लेकिन पहले हमें त्रिज्या को इंच से मीटर में बदलने की जरूरत है:
त्रिज्या = ((त्रिज्या * 2.54) / 100.0) मीटर गति = आरपीएम * 60.0 * (2.0 * 3.14 * त्रिज्या) / 1000.0) किलोमीटर प्रति घंटे में
यहाँ हमने आरपीएम को आरपीएम में परिवर्तित करने के लिए आरपीएम को 60 से गुणा किया है (क्रांति प्रति घंटा) और मीटर / घंटे को मीटर / घंटे में बदलने के लिए 1000 से विभाजित किया है।
किमी में गति होने के बाद हम इन मूल्यों को सीधे एलसीडी के रूप में डिजिटल रूप में दिखा सकते हैं लेकिन एनालॉग रूप में गति दिखाने के लिए हमें पता लगाने के लिए एक और गणना करने की आवश्यकता है। चरणों की, स्टेपर मोटर को एनालॉग मीटर पर गति दिखाने के लिए चलना चाहिए।
यहां हमने एनालॉग मीटर के लिए 4 तार द्विध्रुवीय स्टेपर मोटर का उपयोग किया है, जो कि 1.8 डिग्री का मतलब है प्रति क्रांति 200 कदम।
अब हमें स्पीडोमीटर पर 280 Kmh दिखाना होगा। तो 280 किमी दिखाने के लिए स्टेपर मोटर को 280 डिग्री स्थानांतरित करने की आवश्यकता है
तो हमारे पास मैक्सस्पीड = 280 है
और maxSteps होगा
maxSteps = 280 / 1.8 = 155 कदम
अब हमारे पास अपने Arduino कोड में एक फ़ंक्शन है, जिसका नाम मैप फ़ंक्शन है, जिसका उपयोग यहां चरणों में गति को मैप करने के लिए किया जाता है।
चरण = नक्शा (गति, 0, मैक्सस्पीड , 0, मैक्सस्टेप्स);
तो अब हमारे पास है
चरण = नक्शा (गति, 0,280,0,155);
चरणों की गणना करने के बाद, हम सीधे स्टेपर मोटर को स्थानांतरित करने के लिए स्टेपर मोटर फ़ंक्शन में इन चरणों को लागू कर सकते हैं। हमें दिए गए गणनाओं का उपयोग करके स्टेपर मोटर के वर्तमान चरणों या कोण का भी ध्यान रखना चाहिए
currSteps = कदम चरणों = currSteps-preSteps preSteps = currSteps
यहां करप्शन स्टेप्स वर्तमान कदम है जो अंतिम गणना से आ रहा है और प्रीस्टैप्स अंतिम बार प्रदर्शन किया गया चरण है।
सर्किट आरेख और कनेक्शन
इस एनालॉग स्पीडोमीटर के लिए सर्किट आरेख सरल है, यहां हमने एनालॉग स्पीडोमीटर सुई को घुमाने के लिए डिजिटल रूप और स्टेपर मोटर में गति दिखाने के लिए 16x2 एलसीडी का उपयोग किया है।
Arxino के एनालॉग पिंस के बाद 16x2 LCD जुड़ा हुआ है।
RS - A5
RW - GND
EN - A4
D4 - A3
D5 - A2
D6 - A1
D7 - A0
एलसीडी की चमक को सेट करने के लिए 2.2k रेसिस्टर का उपयोग किया जाता है। एक IR सेंसर मॉड्यूल, जिसका उपयोग आरपीएम की गणना करने के लिए प्रशंसक के ब्लेड का पता लगाने के लिए किया जाता है, को 0 0 Arduino के D2 पिन का मतलब है।
यहाँ हमने एक स्टेपर मोटर चालक का उपयोग किया है जिसका नाम है L293N मॉड्यूल । IN1, IN2, IN3 और स्टेपर मोटर ड्राइवर का IN4 पिन सीधे Ar8ino के D8, D9, D10 और D11 से जुड़ा है। शेष कनेक्शन सर्किट आरेख में दिए गए हैं।
प्रोग्रामिंग स्पष्टीकरण
Arduino Speedomete r के लिए पूरा कोड अंत में दिया गया है, यहाँ हम इसके कुछ महत्वपूर्ण भाग के बारे में बता रहे हैं।
प्रोग्रामिंग भाग में, हमने सभी आवश्यक पुस्तकालयों को शामिल किया है जैसे कि स्टेपर मोटर लाइब्रेरी, लिक्विड क्रिस्टल ग्लास लाइब्रेरी और उनके लिए पिन घोषित किया।
#शामिल
इसके बाद, हमने गणना करने के लिए कुछ चर और मैक्रोज़ ले लिए हैं। गणना पहले से ही पिछले अनुभाग में बताई गई है।
वाष्पशील बाइट REV; अहस्ताक्षरित लंबे समय तक आरपीएम, आरपीएम; अहस्ताक्षरित लंबे सेंट = 0; अहस्ताक्षरित लंबे समय; int ledPin = 13; int led = 0, RPMlen, prevRPM; int ध्वज = 0; int flag1 = 1; # डेफिन ब्लेड्सइनफैन 2 फ्लोट त्रिज्या = 4.7; // इंच इंट प्रीस्टेप्स = 0; फ्लोट स्टेपअंगले = 360.0 / (फ्लोट) स्टेपपेयरवोल्यूशन; फ्लोट मिनस्पेड = 0; फ्लोट मैक्सस्पीड = 280.0; फ्लोट माइनस्टेप्स = 0; float maxSteps = maxSpeed / stepAngle;
इसके बाद, हम सेटअप फ़ंक्शन में एलसीडी, सीरियल, इंटरप्ट और स्टेपर मोटर को इनिशियलाइज़ करते हैं
शून्य सेटअप () { myStepper.setSpeed (60); सीरियल.बेगिन (9600); पिनमोड (ledPin, OUTPUT); lcd.begin (16,2); lcd.print ("स्पीडोमीटर"); देरी (2000); संलग्नक (0, RPMCount, RISING); }
इसके बाद, हम लूप फ़ंक्शन में आरपीएम पढ़ते हैं और गति प्राप्त करने के लिए एक गणना करते हैं और एनालॉग रूप में गति दिखाने के लिए स्टेपर मोटर चलाने के चरणों में परिवर्तित होते हैं।
शून्य लूप () { readRPM (); त्रिज्या = ((त्रिज्या * 2.54) / 100.0); // मीटर इंट स्पीड में बदलना = ((फ्लोट) आरपीएम * 60.0 * (2.0 * 3.14 * त्रिज्या) / 1000.0); // RPM 60 मिनट में, टायर का व्यास (2pi r) r त्रिज्या है, 1000 किमी में बदलने के लिए int int = = (गति, minSpeed, maxSpeed, minSteps, maxSteps); if (flag1) { Serial.print (स्पीड); सिरियल.प्रिंट्लन ("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 curSteps = Steps;int steps = curSteps-preSteps; preSteps = curSteps; myStepper.step (चरण); }
यहां हमारे पास RPM की गणना करने के लिए reapRPM () फ़ंक्शन है।
int readRPM () { if (REV> = 10 या मिलिस ()> = st + 1000) // IT मिलेंगे AFETR EVERY 10 READINGS या 1 सेकंड में निष्क्रिय { अगर (झंडा == 0) झंडा = 1; आरपीएम = (60/2) * (1000 / (मिली () - समय)) * आरईवी / ब्लेडइन्फैन; समय = मिली (); आरईवी = 0; int x = rpm; जबकि (x! = 0) { x = x / 10; RPMlen ++; } Serial.println (आरपीएम, डीईसी); आरपीएम = आरपीएम; देरी (500); st = millis (); flag1 = 1; } }
अंत में, हमारे पास रुकावट दिनचर्या है जो वस्तु की क्रांति को मापने के लिए जिम्मेदार है
शून्य RPMCount () { REV ++; if (led == कम) { led = HIGH; } और { एलईडी = लो; } digitalWrite (ledPin, led); }
यह है कि आप केवल Arduino का उपयोग करके एनालॉग स्पीडोमीटर कैसे बना सकते हैं । यह हॉल सेंसर का उपयोग करके भी बनाया जा सकता है और स्मार्ट फोन पर गति प्रदर्शित की जा सकती है, उसी के लिए इस Arduino स्पीडोमीटर ट्यूटोरियल का पालन करें।