टैकोमीटर। Arduino पर एक photoresistor और HD44780 LCD डिस्प्ले के साथ काम करने का एक उदाहरण


32:20 - फर्मवेयर एल्गोरिदम 16 और 18
36:50 - फ़र्मवेयर चर
40:40 - हॉल सेंसर पर पिकअप

हमारे द्वारा यहां वर्णित नियामक को इकट्ठा और परीक्षण करने के बाद: https://shenrok.blog...t=1489156293398
हम फर्मवेयर स्थापित करना शुरू कर सकते हैं जो निर्दिष्ट गति का समर्थन करेगा। लेकिन पहले, आइए हॉल सेंसर के मुद्दे पर ध्यान दें।
टैचोजेनरेटर को हॉल सेंसर से बदलना बिल्कुल भी मुश्किल नहीं है। मैं इसके बारे में 5:48 पर वीडियो में विस्तार से बात करता हूं। लेकिन कौन सा लगाना है? हमें एक डिजिटल हॉल सेंसर की जरूरत है, अधिमानतः द्विध्रुवी। चूंकि यह 2 गुना अधिक सिग्नल देगा। और छोटी क्रांतियों के लिए यह बहुत महत्वपूर्ण है। यह मेरे इंजन में एक है एसएस441 .

विचार करना पीआईडी_12:
स्केच की शुरुआत में, हमारे पास ऐसी पंक्तियाँ हैं जिनमें हमें उन मूल्यों को दर्ज करना होगा जिनकी हमें आवश्यकता है:

इंट ओमैक्स = 6000; // अधिकतम आरपीएम दर्ज करें

फ्लोट किम्प = 120; // प्रति 10 क्रांतियों में दालों की संख्या दर्ज करें

पहली पंक्ति में हम अधिकतम क्रांतियों की संख्या दर्ज करते हैं जिनकी हमें आवश्यकता है। दूसरा न्यूनतम है। तीसरी पंक्ति में हम शाफ्ट के 10 क्रांतियों के लिए हमारे सेंसर की दालों की संख्या डालते हैं। चौथी पंक्ति में, आपको एक संख्या दर्ज करनी होगी जो वर्तमान की न्यूनतम गति को सीमित करेगी। यह न्यूनतम क्रांतियों की संख्या और लागू भार पर निर्भर करेगा। और पांचवें में - वह संख्या जिस पर इंजन फर्मवेयर नंबर 6 पर घूमना शुरू करता है (हमने इस पर ध्यान दिया)।
आगे सबसे महत्वपूर्ण बात है। पीआईडी ​​​​नियंत्रक के गुणांक को समायोजित (चयन) करना आवश्यक है। वे रेखाचित्र की 19वीं पंक्ति में हैं:
पीआईडी ​​myPID (और इनपुट, और आउटपुट, और सेटपॉइंट, 0.01 , 0.2 , 0 , प्रत्यक्ष);

खोज कॉन्फ़िगर करने के कई तरीके देती है, आप किसी का भी उपयोग कर सकते हैं। लेकिन ईमानदारी से कहूं तो मुझे यह नियंत्रक वास्तव में पसंद नहीं आया। या शायद मेरे पास इसे स्थापित करने का धैर्य नहीं था।

विचार करना _16:
स्केच के मुख्य चर पीआईडी ​​​​नियंत्रक के समान हैं:

इंट ओब्मिन = 200; // न्यूनतम आरपीएम दर्ज करें


इंटमिन्ज़न = 115; // त्रिक का न्यूनतम मूल्य जिस पर रोटेशन शुरू होता है।
इंट ओग्रमिन = 70; // न्यूनतम गति पर त्रिक सीमा।
इंट माइंडिमिंग = 80; // त्रिक मूल्य जब मशीन जाम हो जाती है (प्रारंभिक आवेग)

और वे उसी तरह स्थापित होते हैं। लेकिन 2 मान जोड़े गए हैं। यह एक जाम मशीन (प्रारंभिक आवेग) के साथ त्रिक मूल्य इसे इस तरह चुना जाता है। फ़र्मवेयर नंबर 6 पर, हम शाफ्ट को एक छोटा भार देते हैं, न्यूनतम, यदि केवल शाफ्ट निष्क्रिय नहीं था। और हम नियामक को घुमाने लगते हैं। उस संख्या को नोट करना जरूरी है जिस पर शाफ्ट घूमना शुरू कर देगा। हमें अपनी मशीन को प्रारंभिक आवेग देने के लिए इस मान की आवश्यकता होती है। संख्या बहुत सशर्त है और कुछ सहनशीलता की अनुमति देती है। और मुख्य चर जिसके लिए ट्यूनिंग और चयन की आवश्यकता होगी रेव टॉलरेंस माइनस और प्लस. इसका मतलब है कि हमारे इंजन की गति किस सीमा में स्थिर होगी। हम न्यूनतम मूल्य पाते हैं जिस पर इंजन अलग-अलग गति से निष्क्रिय और लोड के तहत झटके के बिना घूमेगा। यह फर्मवेयर पहले से ही निर्दिष्ट सीमाओं के भीतर क्रांतियों का अच्छा स्थिरीकरण प्रदान करता है, और शायद यह पहले से ही पर्याप्त होगा। यदि क्रांतियों का सटीक स्थिरीकरण आवश्यक है, तो हम अगली सिलाई के लिए आगे बढ़ते हैं।

विचार करना _18:

सभी मान पिछले फर्मवेयर से स्थानांतरित किए गए हैं:

इंट ओब्मिन = 200; // न्यूनतम आरपीएम दर्ज करें
इंट ओमैक्स = 9000; // अधिकतम आरपीएम दर्ज करें
इंट किम्प = 120; // प्रति 10 क्रांतियों में दालों की संख्या दर्ज करें
इंटमिन्ज़न = 115; // त्रिक का न्यूनतम मूल्य जिस पर रोटेशन शुरू होता है।
इंट ओग्रमिन = 70; // न्यूनतम गति पर त्रिक सीमा।
इंट माइंडिमिंग = 80; // triac मान जब मशीन जाम हो जाती है (प्रारंभिक आवेग)
इंट डोपस्क = 200; // माइनस और प्लस में क्रांतियों की सहनशीलता
इंट रेस = 50; // त्वरण चर 1 - 100

केवल त्वरण, या चिकनाई का मान जोड़ा गया है। 1 के मान के साथ, स्थिरीकरण सुचारू रूप से होता है, मूल्य में वृद्धि के साथ त्वरण अधिक गंभीर होता है। ऊपरी सीमा बहुत बड़ी है, लेकिन 100 के बाद (मेरे मामले में) कोई बदलाव नहीं हुआ है।

समानांतर विकास: http://www.motor-r.i...og-page_19.html

चिपमेकर पर नियामक का संस्करण:

विवरण के बारे में कई प्रश्न, कहां ऑर्डर करें। मैंने अपने लिए एक सेट का आदेश दिया, मैं आपके साथ साझा करता हूं।

और मैंने रिवर्स और सुरक्षा के लिए रिले के ब्लॉक का आदेश दिया। हम पूरक करेंगे।

आपके प्रश्नों के आधार पर, लेख को पूरक बनाया जाएगा। तो हम पूछते हैं।

तो, चलिए अपने फीडबैक स्पीड कंट्रोलर को ट्यूनिंग और रिफाइन करना जारी रखते हैं।
यहाँ से प्रारंभ करें:
1 विचार और विकास
2 पीआईडी ​​​​नियंत्रक
3 रेगुलेटर को असेंबल करना, स्टेप बाय स्टेप निर्देश
4 प्रश्न - उत्तर, युक्तियाँ, कार्य एल्गोरिथम
5 सहिष्णुता की स्थापना, अतिप्रवाह से जुड़े झटकों से छुटकारा, 2 गति पर एक टॉगल स्विच, ट्राइक के टूटने से बचाने के लिए एक रिले।

जिन लोगों ने पहले ही इस रेगुलेटर को बना लिया है, उनके सामने एक समस्या आ गई है, टॉलरेंस वेरिएबल का पता लगाना बहुत मुश्किल है। गणना पद्धति लंबी और असुविधाजनक है। और यह पता चला कि कम और उच्च गति पर सहनशीलता भिन्न हो सकती है। इसलिए, एक फर्मवेयर लिखा गया था जो एक समय में इस मूल्य को न्यूनतम और अधिकतम गति दोनों पर बहुत सटीक रूप से चुनने में मदद करता है।
ऐसा करने के लिए, हमें अपने arduino A3 को पिन करने के लिए केंद्रीय संपर्क के साथ अस्थायी रूप से 10 kΩ चर प्रतिरोध मिलाप करने की आवश्यकता है। प्रतिरोध के चरम संपर्क, हमेशा की तरह, + और - से मिलाप किए जाते हैं।
अब फर्मवेयर अपलोड करने के बाद nastroyka_dopuska जिसमें हम सबसे पहले अपने मशीन या इंजन से संबंधित सभी वेरिएबल्स को एंटर करेंगे। मशीन पर आवश्यक न्यूनतम और अधिकतम क्रांतियों के साथ-साथ धुरी के प्रति 10 क्रांतियों में दालों की संख्या मुख्य होगी।
हम सहिष्णुता का चयन करते हैं, जैसा कि वीडियो में दिखाया गया है। उसके बाद, हम प्राप्त डेटा को फर्मवेयर 18 में दर्ज कर सकते हैं और इसका उपयोग कर सकते हैं। इस फर्मवेयर में डिस्प्ले को बेहतर बनाया गया है। क्योंकि आपने पूछा।
फर्मवेयर: https://drive.google...iew?usp=sharing


हमारे सामने अगली समस्या यह थी कि इंजन की निश्चित गति पर "झटके" लगते थे। कारण को समझने के लिए, एक फर्मवेयर बनाया गया था जो कंप्यूटर को tic वेरिएबल का मान भेजता था। यह चक्रों की संख्या है जो हॉल सेंसर से संकेतों के बीच गुजरती है। डेटा को ग्राफिकल रूप में SerialPortPlotter प्रोग्राम में प्रदर्शित किया गया था।




परामर्श के बाद, यह पता चला कि विफलता तब होती है जब सेंसर से संकेत एक साथ काउंटर के अतिप्रवाह के साथ आता है, जो 65535 चक्रों के बाद होता है। उन्होंने मुझे यह भी बताया कि ऐसी असफलताओं से कैसे बचा जाए, जिसके लिए मैं उनका बहुत आभारी हूं।

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


हम जीएनडी संपर्कों के लिए एक माइनस लागू करते हैं, हम वीसीसी के लिए प्लस 5 वोल्ट लागू करते हैं, हम आईएन3 और आईएन4 को आर्डिनो के ए1 पिन से जोड़ते हैं, यह रिवर्स के लिए है, और आईएन2 ए2 पिन के लिए है। यह संपर्क बिजली बोर्ड को बंद करने के लिए जिम्मेदार होगा। फर्मवेयर अपलोड करना Proverka_rele , और हमारे रिले को वैकल्पिक रूप से 1 सेकंड के लिए चालू और बंद करना चाहिए। दो जोड़े और एक अलग। यदि सब कुछ ठीक से काम करता है, तो आप इस एकल रिले के माध्यम से बिजली बोर्ड में जाने वाले तार को चला सकते हैं, फर्मवेयर अपलोड कर सकते हैं roos_zashita_1 और नियंत्रक का प्रयोग करें। यहां झटकों को खत्म किया जाता है और सुरक्षा लागू की जाती है।

हम तुरंत 3 पोजीशन से रिवर्स के लिए टॉगल स्विच को इंस्टॉल और कनेक्ट कर सकते हैं और एक टॉगल स्विच जो हमारी गति सीमा को विभाजित कर देगा जैसा हम चाहते हैं। अपनी मशीन के लिए, मैंने पहली गति को 100rpm से 2000rpm तक, और दूसरी को 1500rpm से 5000rpm तक पीसने के लिए बनाया। हम उन्हें निम्न प्रकार से जोड़ते हैं:

जांच के लिए स्केच अपलोड करें Proverka_tumblerov और जब आप टॉगल स्विच की स्थिति बदलते हैं, तो स्क्रीन पर नंबर बदल जाएंगे। यदि परिवर्तन होते हैं, तो आप फ़र्मवेयर अपलोड कर सकते हैं roos_zashita_2speed और आनंद करो।

यह मत भूलो कि सभी फर्मवेयर पर आपको आवश्यक मूल्यों को दर्ज करने की आवश्यकता है।
फर्मवेयर:
सिग्नेट ---- रिवर्स और ब्रेकिंग के लिए दो रिले के साथ https://wdfiles.ru/dr8k

सिग्नेट ---- एसएमडी घटकों के साथ और आवेग ब्लॉक D6MG केस के लिए बिजली की आपूर्ति https://drive.google...T0JOd2pFZjI3SmM

रिले 12v के लिए, जम्पर को मार्क 12 पर स्थानांतरित करें
रिले के लिए, 5v पहले से ही मार्क 5 पर है
कंडक्टरों की तरफ से सीधे बोर्ड पर रिले पर डायोड को मिलाप करें।
रिले पर ULN2003 डायोड वाले बोर्डों की आवश्यकता नहीं है।

आपके द्वारा चुने गए सिग्नेट के आधार पर भागों की सूची बदलती है।

रोकनेवाला 10k 0.25W-2pcs
रोकनेवाला 4.7k 0.25W-1pc
रोकनेवाला 2k 0.25W-1pc
रोकनेवाला 470 0.25W-1pc
रोकनेवाला 100 2W-1pc
रोकनेवाला 360 0.25w-2pcs
रोकनेवाला 5k 0.25W-1pc (रिवर्स बटन)
ट्रिमर रोकनेवाला 10k-1pc (एलसीडी डिस्प्ले के लिए)
चर रोकनेवाला 10k-1pc (रेव ट्विस्टर)
ट्रिमर रोकनेवाला 10k (प्रति लेग A3)
डायोड RL205 1pc
संधारित्र 100n 600V-1pc С4
कैपेसिटर 0.05mf -1pc C3
रेडिएटर पर triac BTA24-600 (BTA16-600)।
PC817C-1pc
MOC3021-1pc (MOC3023)
L7805CV-1pc
डायोड ब्रिज बोर्ड GBL04-E3 / 51 (KBL04), डायोड ब्रिज 4A 400V जैसा ही होगा
बोर्ड पर टर्मिनल ब्लॉक - डबल - 7 पीसी,
रिले JS1-12V 2pcs 5v हो सकता है
इलेक्ट्रोलाइटिक कैपेसिटर 100 माइक्रोफ़ारड * 25v -2 पीसी (C1 और C2)
चिप ULN2003A - 1pc

ट्रांसफॉर्मर - आप कौन सा पा सकते हैं (1.5-3W)
तीन-स्थिति स्विच - 1 पीसी
Arduino -1pc के लिए सॉकेट

बोर्ड पर उपलब्ध है, सूचीबद्ध नहीं है
आर्डिनो के तहत सर्किट पर रोकनेवाला 10k है (क्या यह पटरियों के किनारे से है या इससे कोई फर्क पड़ता है?) कंडक्टर की तरफ से बोर्ड पर, लेकिन आप इसे ऊपर भी रख सकते हैं। और यह उन लोगों के लिए आवश्यक है जो गति नियंत्रण सीमा को दो उपश्रेणियों में विभाजित करेंगे।
बोर्ड के रिवर्स साइड पर डायोड रिले के लिए - क्या? उत्तर कोई भी है जो संभव होगा RL205
ट्रांजिस्टर बीसी 550 - 2 पीसी ट्रांजिस्टर भी गिरफ्तारी के साथ हैं। जारीकर्ता आप kt 315 या kt3102 कर सकते हैं

सर्किट वेरिएंट
योजना का सही संस्करण

संलग्न चित्र




पोस्ट संपादित किया गया है55: 01 मई 2017 - 20:05

एक टैकोमीटर एक पहिया या कताई वाली किसी भी चीज़ के RPM (प्रति मिनट क्रांतियों) की गणना करने के लिए एक उपयोगी उपकरण है। टैकोमीटर बनाने का सबसे आसान तरीका IR ट्रांसमीटर और रिसीवर का उपयोग करना है। जब उनके बीच संचार टूट जाता है, तो आप जानते हैं कि कुछ घूम रहा है और आप संचार विराम की आवृत्ति के आधार पर RPM की गणना करने के लिए कोड का उपयोग कर सकते हैं।

इस लेख में, हम Arduino का उपयोग करके टैकोमीटर बनाने के लिए IR ट्रांसमीटर और रिसीवर का उपयोग करने का तरीका देखेंगे। परिणाम 16x2 एलसीडी डिस्प्ले पर प्रदर्शित होता है।

इस परियोजना का लक्ष्य एक इनपुट और एक आउटपुट के साथ एक सिस्टम बनाना है। डिवाइस के इनपुट पर एक संकेत होता है जो संचार विफलता के मामले में उच्च (+5V) से निम्न (+0V) स्तर में बदल जाता है। इस संकेत के अनुसार, Arduino आंतरिक काउंटर का मान बढ़ाएगा। फिर अतिरिक्त प्रसंस्करण और गणना की जाती है, और जब ट्रिगर बाधित होता है, तो परिकलित RPM LCD पर प्रदर्शित होगा।

संचार के लिए, हम कम-प्रतिरोध प्रतिरोधी के माध्यम से जुड़े आईआर एलईडी से आईआर बीम का उपयोग करेंगे ताकि यह चमकदार रूप से चमक सके। एक रिसीवर के रूप में, हम एक फोटोट्रांसिस्टर का उपयोग करेंगे, जो आईआर एलईडी लाइट की अनुपस्थिति में "बंद" हो जाता है। कंप्यूटर पंखे को IR ट्रांसमीटर और रिसीवर के बीच रखा जाएगा और चालू किया जाएगा। एक ट्रांजिस्टर सर्किट के माध्यम से जुड़ा एक आईआर रिसीवर इंटरप्ट उत्पन्न करेगा। परिणाम प्रदर्शित करने के लिए उपयोग किया जाएगा अरुडिनो एलसीडीइंटरफ़ेस, इसलिए हम LCD पर अंतिम RPM मान प्रदर्शित कर सकते हैं।

तत्व:

ब्रेड बोर्ड

ट्रिमर रोकनेवाला 5 kΩ

जम्परों

एसआईपी कनेक्टर्स

2x 2N2222 एनपीएन ट्रांजिस्टर

अवरक्त एलईडी

phototransistor

रोकनेवाला 10 ओम

रोकनेवाला 100 kΩ

रोकनेवाला 15 kΩ या 16 kΩ

कंप्यूटर प्रशंसक

विस्तृत आइटम सूची

परियोजना में उपयोग किए गए सभी तत्व ऊपर सूचीबद्ध हैं, लेकिन मैं मुख्य तत्वों के कार्यों का अधिक विस्तार से वर्णन करूंगा।

अरुडिनो यूएनओ

यह Arduino बोर्ड है जिसका उपयोग हम IR इंटरप्ट दालों को संसाधित करने के लिए करेंगे जो हमें बताती हैं कि रिसीवर और सेंसर के बीच एक कंप्यूटर फैन ब्लेड कब होता है। Arduino पंखे के RPM की गणना करने के लिए टाइमर के साथ इन दालों का उपयोग करेगा।

एलसीडी डिस्प्ले 16 × 2

Arduino द्वारा RPM की गणना करने के बाद, यह मान डिस्प्ले पर उपयोगकर्ता के अनुकूल तरीके से प्रदर्शित किया जाएगा।

ट्रिमर रोकनेवाला 5 kΩ

इस ट्रिमर का उपयोग 16x2 एलसीडी के कंट्रास्ट को एडजस्ट करने के लिए किया जाएगा। यह 0 से +5V की सीमा में एक एनालॉग वोल्टेज प्रदान करता है, जिससे आप LCD की चमक को समायोजित कर सकते हैं।

इन्फ्रारेड एलईडी और फोटोट्रांसिस्टर

फोटोट्रांसिस्टर तब खुलता है जब शक्तिशाली IR प्रकाश उस पर पड़ता है। इसलिए, जब आईआर एलईडी चालू होता है, तो यह फोटोट्रांसिस्टर को खुला रखता है, लेकिन अगर आईआर एलईडी को कवर किया जाता है, उदाहरण के लिए, पंखे के ब्लेड से, तो फोटोट्रांसिस्टर बंद हो जाता है।

2N3904 और 2N3906

इन ट्रांजिस्टर का उपयोग सिग्नल स्तर को परिवर्तित करने के लिए किया जाता है, ताकि फोटोट्रांसिस्टर से अरुडिनो तक आउटपुट दालों को प्रदान किया जा सके, जिसमें +0 और +5V के अलावा कोई वोल्टेज नहीं है।

सर्किट आरेख


आरेख में, एलसीडी संचार इंटरफ़ेस को सरल किया गया है और इसमें केवल 2 नियंत्रण रेखाएँ और 4 डेटा रेखाएँ हैं।

सर्किट सुविधाएँ

एलसीडी डिस्प्ले इंटरफ़ेस 16 × 2

2 कंट्रोल पिन और 4 डेटा ट्रांसफर के लिए Arduino से LCD से जुड़े हैं। यही एलसीडी को बताता है कि क्या करना है और कब करना है।

आईआर बीम ब्रेक सर्किट

आईआर बीम ब्रेक सिग्नल दूसरे डिजिटल में जाता है अरुडिनो पिन. यह Arduino को बाधित करता है, जिससे यह पल्स को गिनने की अनुमति देता है और टैक को डेटा प्राप्त करने की अनुमति देता है।

Arduino एलसीडी लाइब्रेरी

इस परियोजना के लिए, हम Arduino LCD लाइब्रेरी का उपयोग करेंगे। मूल रूप से हम दूसरी लाइन पर RPM वैल्यू को नए के साथ अपडेट करेंगे।

तैयारी के तौर पर, नीचे दिए गए कोड को देखें, जो एलसीडी पर "हैलो, वर्ल्ड!" प्रदर्शित करने के लिए इस लाइब्रेरी का उपयोग करता है। टैकोमीटर में, हम समान कोड का उपयोग करेंगे, विशेष रूप से: "lcd.print(मिलिस()/1000);"।


आगे बढ़ने से पहले इस एलसीडी लाइब्रेरी के कार्यों को जितना संभव हो उतना विस्तार से समझें। यह अत्यधिक जटिल नहीं है और Arduino वेबसाइट पर अच्छी तरह से प्रलेखित है।

Arduino के साथ RPM की गिनती

चूँकि हम कंप्यूटर पंखे के RPM की गणना करने जा रहे हैं, हमें यह समझना चाहिए कि हम गणना करने के लिए IR बीम इंटरप्ट का उपयोग कर रहे हैं। यह बहुत सुविधाजनक है, लेकिन हमें इस बात का ध्यान रखना चाहिए कि कंप्यूटर पंखे में 7 ब्लेड हों। इसका मतलब है कि 7 रुकावटें 1 क्रांति के बराबर हैं।

यदि हम व्यवधानों को ट्रैक करते हैं, तो हमें यह जानने की आवश्यकता है कि प्रत्येक सातवें व्यवधान का अर्थ है कि अभी-अभी 1 पूर्ण क्रांति हुई है। यदि हम पूर्ण क्रांति में लगने वाले समय का ध्यान रखें, तो हम आसानी से RPM की गणना कर सकते हैं।

पहली परिक्रमा का समय = P * (µS/rev)

RPM = RPM = 60,000,000 * (µS/min) * (1/P) = (60,000,000 / P) * (RPM)

RPM की गणना करने के लिए, हम ऊपर दिए गए सूत्र का उपयोग करेंगे। सूत्र सटीक है, और सटीकता इस बात पर निर्भर करती है कि Arduino व्यवधानों के बीच के समय को कितनी अच्छी तरह से ट्रैक कर सकता है और पूर्ण क्रांतियों की संख्या की गणना कर सकता है।

सर्किट असेंबली

नीचे दी गई तस्वीर में आप आरेख के रूप में सभी आवश्यक भागों और कूदने वालों को देख सकते हैं।


पहले + 5V और LCD डेटा/कंट्रोल लाइन कनेक्ट करें। फिर एलसीडी, कंट्रास्ट पोटेंशियोमीटर और पावर एलईडी।


IR बीम को तोड़ने के लिए सर्किट को असेंबल किया जाता है। आईआर एलईडी और फोटोट्रांसिस्टर के बीच दूरी बनाए रखने की कोशिश करें। यह तस्वीर आईआर एलईडी और फोटोट्रांसिस्टर के बीच की दूरी को दिखाती है जहां मैं कंप्यूटर पंखा रखूंगा।


हार्डवेयर के बारे में पर्याप्त बात! डिवाइस कैसे काम करता है यह देखने के लिए आइए फर्मवेयर/प्रोग्राम बनाना शुरू करें!

सॉफ्टवेयर भाग

कोड के दो मुख्य भाग हैं जो नीचे दिखाए गए हैं और विस्तृत हैं:

मुख्य एलसीडी ताज़ा चक्र

ब्रेक टाइम अपडेट

मुख्य चक्र में, क्रांतियाँ और LCD अद्यतन गिने जाते हैं। चूँकि मुख्य लूप एक विशाल जबकि (1) लूप है, यह हमेशा चलेगा, RPM की गणना की जाएगी, और LCD को प्रति सेकंड कई बार अपडेट किया जाएगा। इंटरप्ट में फ़ंक्शन IR इंटरप्ट्स के बीच के समय की गणना करता है, इसलिए आप RPM को मुख्य लूप में गिन सकते हैं।

याद रखें कि एक कंप्यूटर पंखे में 7 ब्लेड होते हैं, इसलिए इस टैकोमीटर को केवल ऐसे प्रशंसकों के साथ काम करने के लिए डिज़ाइन किया गया है। यदि आपका पंखा या अन्य उपकरण प्रति क्रांति केवल 4 दालें देता है, तो कोड में "(समय * 4)" बदलें।

टैकोमीटर कैसे काम करता है इसका एक डेमो वीडियो यहां दिया गया है।

लगभग +/- 100rpm की त्रुटि के साथ दोनों पंखे मोटे तौर पर 3000rpm और 2600rpm पर चलते हैं।

Arduino टैकोमीटर अवलोकन

पंखा बाधा उत्पन्न करता है, और आउटपुट पर हम RPM देखते हैं। हालांकि सटीकता 100% नहीं है, लेकिन लगभग 95%, $ 10 की लागत के साथ, इस टैकोमीटर को Arduino पर बनाने के लिए समझ में आता है।

तो अब क्या है?

बीम-ब्रेक सिस्टम न केवल RPM मापन के लिए उपयोगी हैं, बल्कि अन्य सेंसर के रूप में भी उपयोगी हैं। उदाहरण के लिए, आप जानना चाहते हैं कि कोई दरवाजा खुला है या बंद है। शायद आप जानना चाहते हैं कि रोबोट के नीचे कुछ चला गया है या नहीं। बीम ब्रेकिंग के कई अनुप्रयोग हैं, और यहां उपयोग किया जाने वाला सर्किट इतना सरल है कि अन्य अद्भुत उपकरणों को बेहतर बनाने और बनाने के कई तरीके हैं।

निष्कर्ष

सामान्य तौर पर, मैं इस परियोजना को सफल मानता हूं ... लेकिन यह समय और अनुभव की बात है। वैसे भी, सिस्टम इरादे से और काफी मज़बूती से काम करता है, और हमें अपेक्षित परिणाम मिला। मुझे आशा है कि आपको यह लेख पढ़ने और अपना खुद का Arduino टैकोमीटर बनाने का तरीका सीखने में मज़ा आया होगा!

पर मूल लेख अंग्रेजी भाषा(अनुवाद: अलेक्जेंडर कास्यानोव cxem.net साइट के लिए)

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



आमतौर पर, सेंसर कुछ घटनाओं को दर्ज करके परिमाण को मापते हैं, फिर घटनाओं की संख्या उस समय अवधि के साथ सहसंबद्ध होती है, जिसमें वे घटित होती हैं।


तो इस मामले में, गति को मापा जाता है - यहां की घटनाओं को स्लॉट्स के साथ डिस्क के रोटेशन के दौरान ऑप्टिकल सेंसर के संचालन के परिणामस्वरूप प्राप्त आवेगों के रूप में समझा जाता है। सेंसर में एक एलईडी और एक फोटोट्रांसिस्टर होता है जो एलईडी विकिरण की उपस्थिति या अनुपस्थिति को महसूस करता है।


योजना


प्रस्तुत सर्किट का उपयोग पंजीकृत दालों को माइक्रोकंट्रोलर को भेजने के लिए किया जा सकता है। योजना का आधार है प्रकाशीय संवेदक OS25B10 (OC1) एलईडी और फोटोट्रांसिस्टर आउटपुट के साथ।


इसके बाद आता है LM393 दोहरा तुलनित्र IC (IC1) जिसे एक साधारण श्मिट ट्रिगर के रूप में कॉन्फ़िगर किया गया है। हरी एलईडी(LED1) सर्किट पर लागू वोल्टेज की उपस्थिति को इंगित करता है, और लाल एलईडी (LED2) मोटर स्पीड सेंसर मॉड्यूल के आउटपुट पर नज़र रखता है। अनुशंसित प्रचालन वोल्टेजमॉड्यूल 4.5 और 5.5 वी के बीच है।




ध्यान दें कि ऑप्टिकल सेंसर OS25B10 (OC1) के अंदर LED के ऑपरेटिंग करंट को सीमित करने के लिए यहां रेसिस्टर R1 (180 ओम) का उपयोग किया जाता है। यदि आवश्यक हो, तो आप अपने प्रोटोटाइप के लिए इसका मान बदल सकते हैं। आप अपने सर्किट के लिए आवश्यक वोल्टेज प्राप्त करने के लिए प्रतिरोधक R2 (10 kΩ) के मान को भी समायोजित कर सकते हैं। रोकनेवाला R7 (10 kΩ) एक वैकल्पिक पुल-अप रोकनेवाला है।


एनकोडर डिस्क


सेंसर स्लॉट में रखी गई एक एनकोडर डिस्क ऑप्टिकल सेंसर को इस तरह से अलग करती है कि डिस्क के एक तरफ एक एलईडी और दूसरी तरफ एक फोटोट्रांसिस्टर मौजूद होता है। यदि एलईडी से प्रकाश किरण का मार्ग डिस्क द्वारा अवरुद्ध नहीं किया जाता है, तो फोटोट्रांजिस्टर करंट पास करेगा, अन्यथा यह बंद हो जाएगा।


टैकोमीटर एक उपकरण है जिसका उपयोग किसी दिए गए समय अंतराल में किसी वस्तु के क्रांतियों की संख्या को मापने के लिए किया जाता है। आमतौर पर मूल्य प्रति मिनट या आरपीएम में क्रांतियों में व्यक्त किया जाता है। पहले, टैकोमीटर विशुद्ध रूप से यांत्रिक उपकरण थे जिसमें यांत्रिक कनेक्शन (केबल या शाफ्ट) के माध्यम से रोटेशन को टैकोमीटर में प्रेषित किया जाता था, प्रति मिनट क्रांतियों की संख्या का उपयोग करके निर्धारित किया जाता था गियर ट्रेनऔर एक गोलाकार पैमाने पर प्रदर्शित किया गया। आधुनिक इलेक्ट्रॉनिक्स के आगमन के बाद, टैकोमीटर बहुत बदल गए हैं। यह आलेख एक गैर-संपर्क डिजिटल टैकोमीटर पर आधारित वर्णन करता है अरुडिनो बेस. इसी तरह के सर्किट का उपयोग करके मोटर की गति को भी नियंत्रित किया जा सकता है। प्रति मिनट क्रांतियों की संख्या और अन्य जानकारी 16×2 लिक्विड क्रिस्टल डिस्प्ले पर प्रदर्शित होती है। वायरिंग का नक्शा Arduino- आधारित डिजिटल टैकोमीटर नीचे दिखाया गया है।

वायरिंग का नक्शा


आरपीएम सेंसर
इन्फ्रारेड फोटोट्रांसिस्टर और इन्फ्रारेड एलईडी एक सेंसर बनाते हैं। इन्फ्रारेड फोटोट्रांसिस्टर एक प्रकार का फोटोट्रांसिस्टर है जो केवल इन्फ्रारेड तरंगों का जवाब देता है। इन्फ्रारेड फोटोट्रांजिस्टर का उपयोग अन्य प्रकाश हस्तक्षेपों के प्रभाव से बचाता है वातावरण. फोटोट्रांसिस्टर और इन्फ्रारेड एलईडी को समानांतर में व्यवस्थित किया गया है। रोकनेवाला R2 इन्फ्रारेड डायोड के माध्यम से करंट को सीमित करता है। परावर्तक गाइड टेप को सेंसर के अनुरूप एक घूर्णन वस्तु (शाफ्ट, डिस्क या पंखे) से चिपकाया जाता है। मैंने 9V/100mA कूलिंग फैन का इस्तेमाल किया। सेंसर और परावर्तक गाइड टेप के बीच का अंतर 1 सेमी से अधिक नहीं होना चाहिए। जब परावर्तक गाइड टेप सेंसर के सामने से गुजरता है, तो इन्फ्रारेड तरंगें फोटोट्रांसिस्टर पर वापस परावर्तित हो जाती हैं। फोटोट्रांसिस्टर इस समय अधिक संचालन करता है और परिणामस्वरूप R3 (68K प्रतिरोध) पर वोल्टेज तेजी से बढ़ता है। परिणाम फोटोट्रांसिस्टर के उत्सर्जक पर नीचे दिखाया गया एक तरंग होगा। एक निश्चित समय अंतराल में ऊपर की ओर स्पंदनों की संख्या की गणना करके प्रति मिनट क्रांतियों की संख्या निर्धारित की जा सकती है।


प्रति मिनट क्रांतियों की संख्या की गणना
Arduino का उपयोग RPM मान की गणना करने और LCD पर इस मान को प्रदर्शित करने के लिए किया जाता है। फोटोट्रांसिस्टर का एमिटर Arduino के इंटरप्ट 0 (डिजिटल पिन 2) पिन से जुड़ा है। Arduino इंटरप्ट को ट्रिगर बढ़ते किनारे पर कॉन्फ़िगर किया गया है। नतीजतन, उत्सर्जक तरंग में प्रत्येक बढ़ती हुई नाड़ी के लिए एक रुकावट को नियंत्रित किया जाता है। एक निश्चित समय पर प्राप्त रुकावटों की संख्या की गणना एक चर को बढ़ाकर, एक व्यवधान सेवा दिनचर्या के माध्यम से की जाती है। कम्प्यूटेशनल चक्र के दौरान बीता हुआ समय मिलिस () फ़ंक्शन का उपयोग करके निर्धारित किया जाता है। मिलिस () फ़ंक्शन सेकंड के मील की संख्या लौटाता है जो Arduino बोर्ड के संचालित होने के बाद से समाप्त हो गया है। गणना चक्र से पहले और बाद में मिलिस () फ़ंक्शन को कॉल करना और उनके अंतर की गणना करना गणना चक्र के दौरान बीता हुआ समय देता है। मान (इंटरप्ट्स की संख्या/प्रति मिलीसेकंड की संख्या)*60000 प्रति मिनट क्रांतियों की संख्या (RPM) निर्धारित करेगा।

इंजन की गति नियंत्रण
सर्किट में पोटेंशियोमीटर के साथ मोटर की गति को नियंत्रित करने के लिए एक उपकरण भी शामिल है। ट्रांजिस्टर Q1 का उपयोग मोटर को नियंत्रित करने के लिए किया जाता है। इसका आधार Arduino के PWM पिन 9 से एक वर्तमान-सीमित अवरोधक R1 के माध्यम से जुड़ा हुआ है। स्पीड कंट्रोल पोटेंशियोमीटर R4 Arduino के एनालॉग पिन A0 से जुड़ा है। इस पिन पर वोल्टेज को anlogRead फ़ंक्शन का उपयोग करके 0 और 1023 के बीच के मान में परिवर्तित किया जाता है। इसके बाद 0 और 255 के बीच प्राप्त करने के लिए इस मान को चार से विभाजित किया जाता है। उसके बाद दिया गया मूल्य AnlogWrite फ़ंक्शन का उपयोग करके PWM पिन 9 को लिखा जाता है। नतीजा पिन 9 पर एक स्क्वायर वेव है जिसका कर्तव्य चक्र एनालॉगवाइट फ़ंक्शन के साथ लिखे गए मान के समानुपाती होता है। उदाहरण के लिए, यदि मान 255 है, तो कर्तव्य चक्र 100% होगा, और यदि मान 127 है, तो कर्तव्य चक्र लगभग 50% होगा। D1 एक फ्लाईबैक डायोड है और C1 एक नॉइज़ कैंसलिंग कैपेसिटर (डिकूप्लर) है। RPM और कर्तव्य चक्र को LCD स्क्रीन पर मानक लिक्विड क्रिस्टल लाइब्रेरी का उपयोग करके प्रदर्शित किया जाता है। इस लेख को पढ़ें: Arduino के लिए इंटरफ़ेस LCD। Arduino- आधारित डिजिटल टैकोमीटर का पूरा प्रोग्राम कोड नीचे दिखाया गया है।

प्रोग्राम कोड
#शामिल लिक्विड क्रिस्टल एलसीडी (12,11,6,5,4,3); intpwm=9; इंटपोट = ए0; फ्लोट वैल्यू = 0; इंट प्रतिशत; फ्लोट रेव = 0; इंट आरपीएम; इंट ओल्डटाइम = 0; इंट टाइम; शून्य isr () // इंटरप्ट सर्विस रूटीन (rev ++;) शून्य सेटअप () (lcd.begin (16,2); // इनिशियलाइज़ LCD अटैच इंटरप्ट (0, isr, RISING); // इंटरप्ट अटैच करना) शून्य लूप () (विलंब (1000); डिटैचइंटरप्ट (0); // इंटरप्ट टाइम को अलग करता है = मिलिस () - पुराना समय; // समय का पता लगाता है आरपीएम = (रेव / टाइम) * 60000; // आरपीएम ओल्डटाइम = मिली () की गणना करता है; / / वर्तमान समय बचाता है रेव = 0; मान = एनालॉगरीड (पॉट); // गति नियंत्रण पीओटी मूल्य = मूल्य / 4 पढ़ता है; एनालॉगवर्इट (पीडब्ल्यूएम, मूल्य); // वांछित गति प्रतिशत = (मूल्य / 255) सेट करता है * 100; // कर्तव्य चक्र % lcd.clear (); lcd.setCursor (0,0); lcd.print ("___TACHOMETER___") पाता है; lcd.setCursor (0,1); lcd.print (rpm); एलसीडी .print("RPM"); lcd.print(" "); lcd.print(प्रतिशत); lcd.print("%"); अटैचइंटरप्ट(0,isr,RISING); )
टिप्पणियाँ
पर अरुडिनो बोर्ड 9V आपूर्ति वोल्टेज की आपूर्ति बाहरी पावर सॉकेट के माध्यम से की जा सकती है।
कुछ सर्किट घटकों के लिए आवश्यक 5V की आपूर्ति Arduino बोर्ड पर 5V आपूर्ति से की जा सकती है।
इस्तेमाल किया गया पंखा 9V/100mA के वोल्टेज का उपयोग करता है। 2N2222 ट्रांजिस्टर केवल 800mA तक ही संभाल सकता है। भार चुनते समय इसे ध्यान में रखें।
लिक्विड क्रिस्टल डिस्प्ले का इस्तेमाल JHD162A है।
LCD कंट्रास्ट को समायोजित करने के लिए पोटेंशियोमीटर R5 का उपयोग किया जा सकता है। कनेक्ट होने पर, डिस्प्ले पर कुछ भी दिखाई नहीं देगा। R5 को तब तक समायोजित करें जब तक कि डिस्प्ले पर कोई छवि दिखाई न दे। R5 पोटेंशियोमीटर स्लाइडर पर इष्टतम वोल्टेज 0.4 से 1V की सीमा में है।
इन्फ्रारेड फोटोट्रांसिस्टर और इन्फ्रारेड डायोड को LTH-1550 फोटो इंटरप्ट मॉड्यूल से हटा दिया गया था।
फोटोट्रांसिस्टर की पार्श्व सतह को बिजली के टेप से ढका जाना चाहिए।
सेंसर की स्थिति नीचे चित्र में दिखाई गई है।