विषयसूची:

एसटीएम 32 के साथ आरपीएम मीटर: 8 कदम
एसटीएम 32 के साथ आरपीएम मीटर: 8 कदम

वीडियो: एसटीएम 32 के साथ आरपीएम मीटर: 8 कदम

वीडियो: एसटीएम 32 के साथ आरपीएम मीटर: 8 कदम
वीडियो: JCB 3DX 2022 model इसमें रीडिंग कैसे बढ़ाएं और न्यू फीचर है 2024, नवंबर
Anonim
STM32. के साथ RPM मीटर
STM32. के साथ RPM मीटर

हालांकि इसे खरीदना थोड़ा मुश्किल है (क्योंकि यह कई इंटरनेट स्टोर में उपलब्ध नहीं है), मुझे लगता है कि STM32 L432KC पर चर्चा करना आवश्यक है। यह चिप विशेष स्नेह की पात्र है, क्योंकि यह अल्ट्रा लो पावर है। हालाँकि, जिनके पास STM32 नहीं है, उनके लिए इस परियोजना में Arduino Uno द्वारा प्रतिस्थापित किया जा सकता है। ऐसा करने के लिए, बस इंटरप्ट इनपुट का पिन बदलें।

आइए फिर STM32 L432KC और एक इन्फ्रारेड सेंसर का उपयोग करके एक RPM मीटर बनाएं। इसी कार्यक्रम का उपयोग हवा की गति को मापने के लिए भी किया जा सकता है। इस माइक्रोकंट्रोलर का लो-पावर फीचर IOT के लिए एकदम सही है।

चरण 1: मॉड्यूल

मॉड्यूल
मॉड्यूल
मॉड्यूल
मॉड्यूल

आज की हमारी परियोजना के लिए, हम 8-अंकीय MAX7219CWG, साथ ही इन्फ्रारेड मॉड्यूल का उपयोग करते हैं।

चरण 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

चरण 3: प्रदर्शन

प्रदर्शन
प्रदर्शन

हमारी असेंबली में, हमारे पास STM32, 8-अंकीय डिस्प्ले और पल्स इनपुट है। इन्फ्रारेड कार्ड में एक फोटोट्रांसिस्टर और एक एलईडी होती है जो एक सफेद रिबन को उछालकर प्रकाश को पकड़ती है। यह टेप एक पहिये से जुड़ा हुआ है और प्रत्येक मोड़ पर, एक पल्स उत्पन्न करेगा, जिसे STM32 इंटरप्ट द्वारा कैप्चर किया जाएगा।

हमारे पास असेंबली में एक डायोड और एक कैपेसिटर है जिसका उपयोग टेप रीडिंग सिग्नल के शोर को STM32 तक पहुंचने से रोकने के लिए किया गया था, जो इसे चालू और बंद की व्याख्या करेगा।

प्रदर्शन हमारी परियोजना, साथ ही मिनीपा मीटर (दोनों संचालन में) को दर्शाता है।

चरण 4: विधानसभा

सभा
सभा

चरण 5: कार्यक्रम

हम एक प्रोग्राम करेंगे जिसमें इन्फ्रारेड मॉड्यूल STM32 L432KC में हर "टर्न" में एक रुकावट को ट्रिगर करेगा और हम RPM को डिस्प्ले पर प्रदर्शित करने के लिए गणना करेंगे।

चरण 6: पुस्तकालय

पुस्तकालयों
पुस्तकालयों

निम्नलिखित "DigitLedDisplay" लाइब्रेरी जोड़ें।

बस "स्केच >> लाइब्रेरी शामिल करें >> लाइब्रेरी प्रबंधित करें …" तक पहुंचें

चरण 7: स्रोत कोड

पुस्तकालय और चर

आइए DigitLedDisplay लाइब्रेरी सहित सोर्स कोड शुरू करें। हम डिस्प्ले ऑब्जेक्ट दिखाएंगे। मैंने इंटरप्ट पिन सेट किया है, जो 12 होगा। साथ ही, मैं टकराव की किसी भी समस्या से बचने के लिए आरपीएम काउंटर और समय दोनों के लिए एक अस्थिर ऑपरेटर दर्ज करता हूं।

/* DigitLedDisplay लाइब्रेरी शामिल करें */#include "DigitLedDisplay.h" /* Arduino Pin to Display Pin 7 to DIN, 6 to CS, 5 to CLK *///DigitLedDisplay ld = DigitLedDisplay(7, 6, 5); //arduino DigitLedDisplay ld = DigitLedDisplay(4, 2, 3); //STM32 L432KC इंट पिन = 12; //pino de interrupção (módulo IR) अस्थिर अहस्ताक्षरित int rpm; // contador de rpm volatile unsigned long timeold; // टेम्पो

सेट अप

सेटअप में, हम डिस्प्ले ऑपरेशन को कॉन्फ़िगर करते हैं, साथ ही रुकावट को राइजिंग के रूप में कॉन्फ़िगर करते हैं।

शून्य सेटअप () {Serial.begin(११५२००); /* चमक सेट करें न्यूनतम:1, अधिकतम:15 */ ld.setBright(10); /* अंकों की गिनती सेट करें */ ld.setDigitLimit(8); एलडी.प्रिंटडिजिट (0); अटैचइंटरप्ट (डिजिटलपिनटोइंटरप्ट (पिन), इंटरप्टपिन, राइजिंग); आरपीएम = 0; टाइमोल्ड = मिली (); }

कुंडली

अंत में, हम डिस्प्ले को अपडेट करने के लिए 1 मिनट में 1 का अंतराल निर्धारित करते हैं। स्क्रीन को साफ करने के बाद हम RPM प्रिंट करते हैं। हम वह कार्य करते हैं जिसे इंटरप्ट कॉल करेगा। हम आरपीएम की गणना करते हैं और समय अपडेट करते हैं।

शून्य लूप () {देरी (1000); एलडी.क्लियर (); एलडी.प्रिंटडिजिट (आरपीएम); } शून्य इंटरप्टपिन () {आरपीएम = ६० * १०००/(मिली () - समय पुराना); टाइमोल्ड = मिली (); }

चरण 8: फ़ाइलें

फ़ाइलें डाउनलोड करें:

पीडीएफ

मैं नहीं

सिफारिश की: