विषयसूची:
- चरण 1: एक सिगल वायर चुनें
- चरण 2: तार को Arduino Board तक बढ़ाएँ
- चरण 3: सिग्नल विश्लेषण
- चरण 4: अपना सिग्नल विश्लेषण कोड करें
- चरण 5: एक फ़िल्टर की पहचान करें
- चरण 6: फ़िल्टरिंग: भाग 1
- चरण 7: फ़िल्टरिंग: भाग 2
- चरण 8: फ़िल्टरिंग: भाग 3
- चरण 9: फ़िल्टरिंग: भाग 4
वीडियो: इंजन RPM प्रदर्शित करने के लिए Arduino का उपयोग करें: 10 कदम (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
यह मार्गदर्शिका बताएगी कि कैसे मैंने Arduino UNO R3, I2C के साथ एक 16x2 LCD डिस्प्ले, और मेरी Acura Integra ट्रैक कार में इंजन स्पीड गेज और शिफ्ट लाइट के रूप में उपयोग की जाने वाली एक LED पट्टी का उपयोग किया। यह किसी ऐसे व्यक्ति के संदर्भ में लिखा गया है जिसके पास कुछ अनुभव या Arduino सॉफ़्टवेयर या सामान्य रूप से कोडिंग, गणितीय सॉफ़्टवेयर MATLAB, और इलेक्ट्रिक सर्किट बनाने या संशोधित करने का अनुभव है। भविष्य में इसे संशोधित किया जा सकता है ताकि इन विषयों के साथ कम या बिना अनुभव वाले किसी व्यक्ति के लिए समझना आसान हो।
चरण 1: एक सिगल वायर चुनें
आपको एक संकेत प्राप्त करने की आवश्यकता होगी जो इंजन की गति से संबंधित हो। एक ऐसी प्रणाली को जोड़ना संभव है जो इंजन की गति को मापता है लेकिन मौजूदा तार में टैप करना कहीं अधिक व्यावहारिक है जो इंजन की गति की जानकारी रखता है। इसके लिए एक कार के कई स्रोत हो सकते हैं, और यह एकल वाहन मॉडल पर साल-दर-साल बेतहाशा भिन्न हो सकता है। इस ट्यूटोरियल के लिए मैं अपनी कार के उदाहरण का उपयोग करूंगा, एक ट्रैक संशोधित 2000 Acura Integra LS। मैंने अपने इंजन पर पाया (B18B1, OBD2 के साथ) एक अप्रयुक्त वोल्टेज है जो 12V उच्च है और एक पूर्ण क्रांति को पूरा करने पर 0V तक गिर जाता है।
चीजें जो संभावित इंजन गति संकेत की पहचान करने में मदद करेंगी:
- आपके वाहन के लिए वायरिंग आरेख
- इंजन/ईसीयू सिग्नल वाले अपने वाहन के लिए खोज फ़ोरम
- एक दोस्ताना मैकेनिक या कार उत्साही
चरण 2: तार को Arduino Board तक बढ़ाएँ
एक बार जब आप एक उपयुक्त संकेत चुन लेते हैं, तो आपको इसे उस स्थान तक विस्तारित करना होगा जहाँ आप अपना Arduino बोर्ड रख रहे हैं। मैंने अपना वाहन उस वाहन के अंदर रखने का फैसला किया जहां रेडियो हुआ करता था, इसलिए मैंने इंजन से नए तार को आग की दीवार में एक रबर ग्रोमेट के माध्यम से और रेडियो क्षेत्र के दाईं ओर घुमाया। चूंकि स्ट्रिपिंग, सोल्डरिंग और प्रोटेक्टिंग वायरिंग पर पहले से ही प्रचुर मात्रा में गाइड हैं, इसलिए मैं इस प्रक्रिया की व्याख्या नहीं करूंगा।
चरण 3: सिग्नल विश्लेषण
यहीं से चीजें जटिल हो सकती हैं। सिग्नल विश्लेषण और नियंत्रणों की सामान्य समझ रखने से आपको बहुत मदद मिलेगी, लेकिन थोड़े ज्ञान के साथ ऐसा किया जा सकता है।
सबसे अधिक संभावना है कि चुना गया सिग्नल वायर इंजन की गति के सटीक मूल्य को नहीं थूकेगा। आपको वांछित इंजन आरपीएम की सटीक संख्या देने के लिए इसे आकार देने और संशोधित करने की आवश्यकता होगी। इस तथ्य के कारण चुना गया प्रत्येक अलग कार और सिग्नल तार अलग हो सकता है, इस बिंदु से आगे मैं समझाऊंगा कि मैंने अपने इंटेग्रा पर वितरक से स्थिति सिग्नल का उपयोग कैसे किया।
मेरा सिग्नल सामान्य रूप से 12V है और एक पूर्ण रोटेशन पूरा करने पर 0V तक गिर जाता है। यदि आप एक पूर्ण रोटेशन, या एक पूर्ण चक्र को पूरा करने का समय जानते हैं, तो इसे कुछ बुनियादी अवधारणाओं का उपयोग करके आसानी से क्रांति/मिनट में अनुवादित किया जा सकता है।
1 / (सेकंड प्रति चक्र) = चक्र प्रति सेकंड, या हर्ट्ज
प्रति मिनट क्रांतियां = हर्ट्ज * 60
चरण 4: अपना सिग्नल विश्लेषण कोड करें
इस पद्धति के लिए इनपुट सिग्नल को एक पूर्ण चक्र पूरा करने में लगने वाले समय की आवश्यकता होती है। सौभाग्य से Arduino IDE सॉफ़्टवेयर में एक कमांड है जो ठीक यही करता है, PulseIn।
यह कमांड एक सिग्नल के लिए थ्रेशोल्ड को पार करने, गिनती शुरू करने और थ्रेशोल्ड को फिर से पार करने पर गिनती बंद करने की प्रतीक्षा करेगा। कुछ विवरण हैं जिन्हें कमांड का उपयोग करते समय नोट किया जाना चाहिए, इसलिए मैं यहां पल्सइन की जानकारी के लिए एक लिंक शामिल करूंगा:
पल्सइन माइक्रोसेकंड में एक मान लौटाएगा, और गणित को सरल रखने के लिए इसे तुरंत सामान्य सेकंड में परिवर्तित किया जाना चाहिए। पिछले चरण पर गणित के बाद, समय की इस अवधि को सीधे RPM में बराबर किया जा सकता है।
नोट: परीक्षण और त्रुटि के बाद मैंने पाया कि वितरक इंजन क्रैंकशाफ्ट के प्रत्येक घूर्णन के लिए दो घूर्णन पूरा करता है, इसलिए मैंने इसके लिए अपने उत्तर को 2 से विभाजित कर दिया।
चरण 5: एक फ़िल्टर की पहचान करें
यदि आप भाग्यशाली हैं तो आपके सिग्नल में कोई 'शोर' (उतार-चढ़ाव) नहीं होगा और आपके इंजन की गति सटीक होगी। मेरे मामले में, वितरक की ओर से बहुत अधिक शोर आ रहा था जो अक्सर अपेक्षा से बहुत दूर वोल्टेज देता था। यह वास्तविक इंजन गति की बहुत ही गलत रीडिंग में बदल जाता है। इस शोर को फ़िल्टर करने की आवश्यकता होगी।
कुछ सिग्नल विश्लेषण के बाद, लगभग सभी शोर आवृत्तियों (हर्ट्ज) पर आए जो कि इंजन स्वयं आउटपुट कर रहा था (जो कि अधिकांश वास्तविक गतिशील प्रणालियों के लिए सच है) से कहीं अधिक है। इसका मतलब है कि कम पास फिल्टर इस पर ध्यान देने के लिए एक आदर्श उम्मीदवार है।
एक कम पास फिल्टर कम आवृत्तियों (वांछित) को पारित करने की अनुमति देता है और उच्च आवृत्तियों (अवांछित) को क्षीण करता है।
चरण 6: फ़िल्टरिंग: भाग 1
फ़िल्टर को डिज़ाइन करना हाथ से किया जा सकता है, हालाँकि MATLAB का उपयोग करने से यह काफी तेज़ हो जाएगा यदि आपके पास सॉफ़्टवेयर तक पहुँच है।
एक कम पास फ़िल्टर को लैपलेस डोमेन (फ़्रीक्वेंसी डोमेन) में स्थानांतरण फ़ंक्शन (या अंश) के बराबर किया जा सकता है। इनपुट फ़्रीक्वेंसी को इस अंश से गुणा किया जाएगा और आउटपुट एक फ़िल्टर्ड सिग्नल है जिसमें केवल वही जानकारी होती है जिसका आप उपयोग करना चाहते हैं।
फ़ंक्शन में एकमात्र चर ताऊ है। ताऊ 1 / ओमेगा के बराबर है, जहां ओमेगा कटऑफ आवृत्ति है जो आप चाहते हैं (प्रति सेकंड रेडियन में होना चाहिए)। कटऑफ आवृत्ति वह सीमा है जहां से अधिक आवृत्तियों को हटा दिया जाएगा और इससे कम आवृत्तियों को रखा जाएगा।
मैंने कटऑफ आवृत्ति को आरपीएम के बराबर सेट किया है, मेरा इंजन कभी नहीं पहुंचेगा (990 आरपीएम या 165 हर्ट्ज)। FFT ग्राफ़ मोटे तौर पर दिखाते हैं कि मेरे कच्चे सिग्नल में कौन सी आवृत्तियाँ थीं और फ़िल्टर से निकलने वाली आवृत्तियाँ क्या थीं।
चरण 7: फ़िल्टरिंग: भाग 2
यहाँ समय के लिए MATLAB का फिर से उपयोग किया गया था। कटऑफ आवृत्ति परिभाषित की जाती है, और इससे परिणामी स्थानांतरण फ़ंक्शन प्रदर्शित होता है। ध्यान रखें कि यह अंश केवल लैपलेस डोमेन पर लागू होता है और सीधे Arduino UNO R3 जैसे समय-आधारित माइक्रो नियंत्रक पर उपयोग नहीं किया जा सकता है।
चरण 8: फ़िल्टरिंग: भाग 3
MATLAB में एक कमांड है जो एक निरंतर फ़ंक्शन (फ़्रीक्वेंसी डोमेन) को एक असतत फ़ंक्शन (टाइम डोमेन) में बदल देगा। इस कमांड का आउटपुट एक समीकरण प्रदान करेगा जिसे आसानी से Arduino IDE कोड में शामिल किया जा सकता है।
चरण 9: फ़िल्टरिंग: भाग 4
Arduino स्केच में, सेटअप से पहले वेरिएबल u और y शामिल करें। फ्लोट कमांड केवल यह परिभाषित करता है कि चर डेटा कैसे संग्रहीत करेगा (अधिकतम मूल्य, दशमलव, आदि जैसी चीजें…) और इस पर अधिक जानकारी के लिए एक लिंक यहां प्रदान किया जाएगा: https://www.arduino.cc/reference/en/language /वरिया…
उस लूप में जहां कच्चे सिग्नल से इंजन की गति में रूपांतरण हो रहा है, u वैरिएबल और y मल्टीपल इक्वेशन शामिल करें। इसे नियोजित करने के कई तरीके हैं, लेकिन चर u को मापा जा रहा कच्चे इनपुट सिग्नल के बराबर सेट किया जाना चाहिए, और चर y फ़िल्टर किया गया मान होगा।
सिफारिश की:
लाइब्रेरी के बिना स्क्रॉलिंग टेक्स्ट प्रदर्शित करने के लिए एक और Arduino का उपयोग करके एक Arduino प्रोग्रामिंग: 5 कदम
लाइब्रेरी के बिना स्क्रॉलिंग टेक्स्ट प्रदर्शित करने के लिए किसी अन्य Arduino का उपयोग करके एक Arduino प्रोग्रामिंग करना: Sony Spresense या Arduino Uno इतने महंगे नहीं हैं और इसके लिए बहुत अधिक शक्ति की आवश्यकता नहीं होती है। हालाँकि, यदि आपकी परियोजना में बिजली, स्थान या बजट की सीमा है, तो आप Arduino Pro Mini का उपयोग करने पर विचार कर सकते हैं। Arduino Pro Micro के विपरीत, Arduino Pro Mi
मोबाइल फोन के साथ माइक्रो: बिट संचार को साकार करने के लिए एचसी-05 ब्लूटूथ मॉड्यूल का उपयोग करें: 9 कदम (चित्रों के साथ)
मोबाइल फोन के साथ माइक्रो: बिट संचार को साकार करने के लिए एचसी-05 ब्लूटूथ मॉड्यूल का उपयोग करें: अध्याय में माइक्रो को समझने के लिए एचसी-06 ब्लूटूथ मॉड्यूल का उपयोग करें: मोबाइल फोन के साथ बिट संचार, हमने माइक्रो के बीच संचार का एहसास करने के लिए एचसी-06 का उपयोग करने के तरीके के बारे में बात की है: बिट और मोबाइल फोन। HC-06 को छोड़कर, एक और सामान्य ब्लूटूथ मॉड्यूल है
ऑरेंज पीआई कैसे करें: इसे 5" एचडीएमआई टीएफटी एलसीडी डिस्प्ले के साथ उपयोग करने के लिए सेट करें: 8 कदम (चित्रों के साथ)
ऑरेंज पीआई कैसे करें: इसे 5 "एचडीएमआई टीएफटी एलसीडी डिस्प्ले के साथ उपयोग करने के लिए सेट करें: यदि आप अपने ऑरेंज पीआई के साथ एक एचडीएमआई टीएफटी एलसीडी डिस्प्ले ऑर्डर करने के लिए पर्याप्त समझदार थे, तो आप शायद इसे काम करने के लिए मजबूर करने की कोशिश में कठिनाइयों से निराश हैं जबकि अन्य किसी बाधा को नोट भी नहीं कर पाए। मुख्य बात यह है कि कुछ
वाईफाई के माध्यम से Blynk के साथ एलईडी को नियंत्रित करने के लिए ESP32 का उपयोग कैसे करें: 7 कदम (चित्रों के साथ)
वाईफाई के माध्यम से Blynk के साथ एलईडी को नियंत्रित करने के लिए ESP32 का उपयोग कैसे करें: यह ट्यूटोरियल वाईफाई के माध्यम से Blynk के साथ एलईडी को नियंत्रित करने के लिए ESP32 विकास बोर्ड का उपयोग करने जा रहा है। Blynk, Arduino, Raspberry Pi और इंटरनेट पर पसंद को नियंत्रित करने के लिए iOS और Android ऐप्स वाला एक प्लेटफ़ॉर्म है। यह एक डिजिटल डैशबोर्ड है जहां आप एक
Windows कंप्यूटर पर Linux कंप्यूटर से X प्रोग्राम प्रदर्शित करने के लिए SSH और XMing का उपयोग करें: 6 चरण
विंडोज कंप्यूटर पर लिनक्स कंप्यूटर से एक्स प्रोग्राम प्रदर्शित करने के लिए एसएसएच और एक्समिंग का उपयोग करें: यदि आप काम पर लिनक्स का उपयोग करते हैं, और घर पर विंडोज का उपयोग करते हैं, या इसके विपरीत, आपको कभी-कभी अपने अन्य स्थान पर कंप्यूटर में लॉग इन करने की आवश्यकता हो सकती है। , और प्रोग्राम चलाते हैं। ठीक है, आप एक एक्स सर्वर स्थापित कर सकते हैं, और अपने एसएसएच क्लाइंट के साथ एसएसएच टनलिंग को सक्षम कर सकते हैं, और एक