Arduino वर आधारित टॅकोमीटर. Arduino IR बीम ब्रेक सर्किटवर आधारित टॅकोमीटर

टॅकोमीटर हे असे उपकरण आहे ज्याचा उपयोग चाकासारख्या यांत्रिक वस्तूच्या फिरण्याचा वेग मोजण्यासाठी केला जातो. कारमध्ये टॅकोमीटरचा मोठ्या प्रमाणावर वापर केला जातो. रेडिओ हौशींमध्ये, त्याला रोबोटिक्समध्ये अनुप्रयोग सापडला आहे, ज्यामुळे चाकांच्या रोबोटच्या हालचालीचा वेग मोजणे शक्य झाले आहे. सामान्यत: टॅकोमीटरचे अनेक उपयोग आहेत, ज्यात डीसी मोटर्सचा वेग मोजणे समाविष्ट आहे जेणेकरून ते वैशिष्ट्यांमध्ये कार्यरत आहेत.



टॅकोमीटर हे त्याच्या सारात एक साधे उपकरण आहे, त्यामुळे तुम्ही Arduino वापरून ते स्वतः बनवू शकता.


आपल्या स्वत: च्या हातांनी टॅकोमीटर बनविण्यासाठी, आम्हाला रोटेशन गती वाचनीय स्वरूपात रूपांतरित करावी लागेल. Arduino वाचू शकणारा एकमेव फॉर्म म्हणजे इलेक्ट्रिकल व्होल्टेज. हे सर्वज्ञात आहे की जर मोटरवर व्होल्टेज लागू केले गेले तर ही मोटर फिरण्यास सुरवात करेल आणि त्यासह चाक फिरेल (जर ते मोटर शाफ्टला जोडलेले असेल), ज्याचा वेग व्होल्टेजच्या प्रमाणात निर्धारित केला जातो. लागू तथापि, उलट देखील सत्य आहे: जर आपण मोटर स्वतः फिरवली तर त्या मोटरच्या टर्मिनल्सच्या दोन्ही टोकांना व्होल्टेज मिळू शकते. हे व्होल्टेज Arduino ला लागू केले जाऊ शकते आणि Arduino दिलेल्या मोटरला किती व्होल्टेज लागू केले आहे यावर अवलंबून रोटेशन गतीची गणना करण्यास सक्षम असेल.


Arduino वर आधारित होममेड टॅकोमीटरच्या घटकांना जोडण्याचा आकृती खाली दिला आहे. येथील मोटर रेझिस्टर आणि एलईडीला जोडलेली आहे. रेझिस्टरचा वापर जास्तीचा प्रवाह रोखण्यासाठी केला जातो ज्यामुळे सामान्यतः Arduino चे नुकसान होते. मोटार चालू आहे हे दर्शविण्यासाठी आणि विद्युत प्रवाह परत रोखण्यासाठी एलईडीचा वापर केला जातो. या प्रकरणात गती प्रदर्शित करण्यासाठी, हा निर्देशक नियंत्रित करण्यासाठी एक-अंकी सात-सेगमेंट इंडिकेटर आणि एक रजिस्टर चिप IC7447 वापरला जातो.



एकदा मोटर फिरू लागली की, पॉझिटिव्ह व्होल्टेज Arduino च्या ॲनालॉग इनपुटवर पाठवले जाईल. Arduino या व्होल्टेजला डिजिटल कोडमध्ये रूपांतरित करेल. आम्ही सात सेगमेंट डिस्प्ले वापरत असल्याने, आमच्याकडे 10 व्हॅल्यू असू शकतात, म्हणजेच 0 ते 9 या मूल्यापर्यंत. आम्ही Arduino ला प्रोग्रॅम करू शकतो की त्याला मिळणारे ॲनालॉग व्हॅल्यू 9 विभागांमध्ये विभागले जाईल, जे 0 ते इच्छित आउटपुट देईल. 9. खाली Arduino वर होममेड टॅकोमीटर चालवण्याचा कोड आहे.


intval=0; intbinVal; void setup() ( Serial.begin(9600); // सिरीयल पोर्ट पिनमोड सेट करणे(3,आउटपुट); पिनमोड(4,आउटपुट); पिनमोड(5,आउटपुट); पिनमोड(6,आउटपुट); पिनमोड(A2 ,इनपुट); binVal)( केस 0: digitalWrite(3,LOW); digitalWrite(5,LOW); ब्रेक; (5,LOW); digitalWrite(6,LOW); digitalWrite(3,LOW); : digitalWrite(3,HIGH); डिजिटलराइट(5,LOW); digitalWrite(3,LOW); डिजिटलराइट(6,LOW); खंडित; केस 7: डिजिटलराईट(3,HIGH); डिजिटलराइट (4, उच्च); डिजिटलराइट (5, उच्च); डिजिटलराइट(6,LOW); खंडित; केस 8: डिजिटलराइट(3,LOW); डिजिटलराइट(4,LOW); डिजिटलराइट(5,LOW); डिजिटलराइट (6, उच्च); खंडित; केस 9: डिजिटलराइट(3,HIGH); डिजिटलराइट(4,LOW); डिजिटलराइट(5,LOW); डिजिटलराइट (6, उच्च); खंडित; डीफॉल्ट: ब्रेक; ))

लाइन सेन्सर वापरून एकत्र केलेले टॅकोमीटर कनेक्ट करणे सोपे आहे. ज्या भागाची फिरण्याची गती तुम्ही मोजू इच्छिता त्या भागामध्ये तुम्हाला डिझाइन बदल करण्याची आवश्यकता नाही: छिद्र ड्रिल करा, स्लॉट बनवा, अतिरिक्त घटक स्थापित करा इ. त्यावर एक विरोधाभासी रेषा लागू करणे पुरेसे आहे (हलक्या पृष्ठभागावर काळी किंवा गडद पृष्ठभागावर पांढरी) आणि लाइन सेन्सर पृष्ठभागावर आणणे, आपल्याला त्वरित एक अचूक परिणाम मिळेल, प्रति मिनिट क्रांतीची संख्या. रेखा कोणत्याही रंगाची असली तरीही स्केच समायोजित करण्याची आवश्यकता नाही.

आम्हाला आवश्यक असेल:

प्रकल्पाची अंमलबजावणी करण्यासाठी आम्हाला लायब्ररी स्थापित करणे आवश्यक आहे:

  • लायब्ररी iarduino_4LED (चार-अंकी एलईडी इंडिकेटरसह काम करण्यासाठी).

लायब्ररी कशी इन्स्टॉल करायची ते तुम्ही Wiki पेजवर शोधू शकता - Arduino IDE मध्ये लायब्ररी इन्स्टॉल करणे.

व्हिडिओ:

कनेक्शन आकृती:

LED इंडिकेटर कोणत्याही दोन Arduino पिन (डिजिटल आणि ॲनालॉग दोन्ही) शी जोडलेला असतो, संख्या स्केचमध्ये दर्शविल्या जातात. लाइन सेन्सर कोणत्याही ॲनालॉग इनपुटशी कनेक्ट केलेले आहे, संख्या स्केचमध्ये दर्शविली आहे.

या ट्यूटोरियलमध्ये, LED इंडिकेटर डिजिटल पिन 2 आणि 3 शी जोडलेला आहे आणि लाइन सेन्सर ॲनालॉग इनपुट A0 शी जोडलेला आहे.

कार्य अल्गोरिदम:

  • LED इंडिकेटरवर जेव्हा लाईन सेन्सर प्रकाशातून गडद फील्डमध्ये बदलतो तेव्हाच माहिती प्रदर्शित केली जाते.
  • लूप फंक्शनची पहिली ओळ लाइन सेन्सर गडद फील्डमध्ये आहे की नाही हे तपासते, जर तसे असेल तर...
  • आम्ही एलईडी इंडिकेटरवर प्रति मिनिट क्रांतीची संख्या प्रदर्शित करतो (जर मिलिस ओव्हरफ्लो आढळला नाही) आणि संक्रमण वेळ वाचवतो
  • लाइन सेन्सर गडद फील्ड सोडेपर्यंत आम्ही while लूप कार्यान्वित करतो. यामुळे, मागील ऑपरेशन फक्त 1 वेळा केले जाते, संपूर्ण वेळ सेन्सर गडद क्षेत्रात आहे.
  • जर सेन्सर 6 सेकंदांपेक्षा जास्त काळ गडद किंवा हलक्या क्षेत्रात असेल, तर आम्ही "STOP" संदेश प्रदर्शित करतो (तुमच्या डिव्हाइसच्या क्रांतीची संख्या प्रति मिनिट 10 पेक्षा कमी असल्यास या ओळी काढल्या जाऊ शकतात).

प्रोग्राम कोड:

#समाविष्ट करा // चार अंकी LED इंडिकेटर iarduino_4LED dispLED(2,3) सह कार्य करण्यासाठी लायब्ररी कनेक्ट करा; // iarduino_4LED लायब्ररीच्या फंक्शन्ससह कार्य करण्यासाठी ऑब्जेक्ट घोषित करा, इंडिकेटर पिन्स (CLK, DIO) const uint8_t pinLine = A0 दर्शविते; // एनालॉग इनपुटची संख्या दर्शविणारा स्थिर घोषित करा ज्यावर लाइन सेन्सर जोडलेला आहे uint32_t strLine = 0; // सेन्सरच्या प्रकाशापासून गडद फील्डमध्ये संक्रमणाची वेळ शून्य सेटअप())( dispLED.begin(); // LED इंडिकेटर सुरू करा ) void loop())( if(analogRead(pinLine)>400)( // जर लाइन सेन्सर रीडिंग 400 (गडद फील्ड) पेक्षा जास्त असेल तर (strLine 350)(// लाइन सेन्सर गडद फील्ड सोडेपर्यंत प्रतीक्षा करा if((millis()-strLine)>6000)(dispLED.print("STOP");) // जर सेन्सर गडद फील्डमध्ये जास्त काळ असेल तर 6 सेकंद, नंतर इंडिकेटरवर "STOP" शिलालेख प्रदर्शित करा ) ) if((millis()-strLine)>6000)(dispLED.print("STOP");) // जर सेन्सर प्रकाश क्षेत्रात असेल तर 6 सेकंदांपेक्षा जास्त, नंतर "STOP" शिलालेख प्रदर्शित करा)

टॅकोमीटर हे चाक किंवा फिरणाऱ्या कोणत्याही गोष्टीचे RPM (प्रति मिनिट क्रांती) मोजण्यासाठी उपयुक्त साधन आहे. टॅकोमीटर बनवण्याचा सर्वात सोपा मार्ग म्हणजे आयआर ट्रान्समीटर आणि रिसीव्हर वापरणे. जेव्हा त्यांच्यामधील कनेक्शनमध्ये व्यत्यय येतो, तेव्हा आपल्याला माहित असते की काहीतरी फिरत आहे आणि आपण संप्रेषण व्यत्ययाच्या वारंवारतेवर आधारित RPM ची गणना करण्यासाठी कोड वापरू शकता.

या लेखात, आपण Arduino वापरून टॅकोमीटर बनवण्यासाठी IR ट्रान्समीटर आणि रिसीव्हर कसे वापरायचे ते पाहू. परिणाम 16x2 LCD डिस्प्लेवर प्रदर्शित केला जातो.

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

कम्युनिकेशनसाठी आम्ही कमी प्रतिरोधक रेझिस्टरद्वारे कनेक्ट केलेल्या IR LED मधील IR बीम वापरू जेणेकरून ते चमकदारपणे चमकेल. आम्ही रिसीव्हर म्हणून फोटोट्रांझिस्टर वापरू, जो IR LED च्या प्रकाशाच्या अनुपस्थितीत "बंद" होतो. IR ट्रान्समीटर आणि रिसीव्हर यांच्यामध्ये संगणकाचा पंखा ठेवला जाईल आणि तो चालू केला जाईल. ट्रान्झिस्टर सर्किटद्वारे कनेक्ट केलेला IR रिसीव्हर व्यत्यय निर्माण करेल. निकाल आउटपुट करण्यासाठी Arduino LCD इंटरफेस वापरला जाईल, त्यामुळे आम्ही LCD वर अंतिम RPM मूल्य आउटपुट करू शकतो.

घटक:

ब्रेड बोर्ड

ट्रिमर रेझिस्टर 5 kOhm

जंपर्स

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

2x 2N2222 NPN ट्रान्झिस्टर

इन्फ्रारेड एलईडी

फोटोट्रान्झिस्टर

10 ओम रेझिस्टर

रेझिस्टर 100 kOhm

रेझिस्टर 15 kOhm किंवा 16 kOhm

संगणक पंखा

आयटमची तपशीलवार यादी

प्रकल्पात वापरलेले सर्व घटक वर सूचीबद्ध आहेत, परंतु मी मुख्य घटकांच्या कार्यांचे अधिक तपशीलवार वर्णन करेन.

Arduino UNO

हा Arduino बोर्ड आहे जो आम्ही IR बीम इंटरप्टमधून डाळींवर प्रक्रिया करण्यासाठी वापरणार आहोत जे रिसीव्हर आणि सेन्सर दरम्यान संगणक फॅन ब्लेडची उपस्थिती दर्शवते. Arduino पंख्याच्या RPM ची गणना करण्यासाठी टायमरसह या डाळींचा वापर करेल.

LCD 16×2

एकदा Arduino ने RPM ची गणना केल्यावर, हे मूल्य डिस्प्लेवर वापरकर्ता-अनुकूल पद्धतीने प्रदर्शित केले जाईल.

ट्रिमर रेझिस्टर 5 kOhm

हा ट्रिमर 16x2 LCD चे कॉन्ट्रास्ट समायोजित करण्यासाठी वापरला जाईल. हे 0 ते +5V पर्यंतचे ॲनालॉग व्होल्टेज प्रदान करते, जे तुम्हाला LCD डिस्प्लेची चमक समायोजित करण्यास अनुमती देते.

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

शक्तिशाली IR लाईट आदळल्यावर फोटोट्रान्झिस्टर चालू होतो. म्हणून जेव्हा IR LED पेटते तेव्हा ते फोटोट्रांझिस्टर उघडे ठेवते, परंतु जर IR LED फॅन ब्लेडने झाकलेले असेल, उदाहरणार्थ, फोटोट्रांझिस्टर बंद आहे.

2N3904 आणि 2N3906

हे ट्रान्झिस्टर फोटोट्रांझिस्टरपासून आर्डिनोला आउटपुट डाळी प्रदान करण्यासाठी सिग्नल पातळी बदलण्यासाठी वापरले जातात, ज्यामध्ये +0 आणि +5V ​​व्यतिरिक्त कोणतेही व्होल्टेज नसतात.

योजनाबद्ध आकृती

सर्किटमध्ये, एलसीडी डिस्प्लेसह संप्रेषण इंटरफेस सरलीकृत आहे आणि त्यात फक्त 2 नियंत्रण रेषा आणि 4 डेटा लाइन आहेत.

योजनेची वैशिष्ट्ये

16×2 LCD इंटरफेस

2 कंट्रोल पिन आणि डेटा ट्रान्सफरसाठी 4 Arduino वरून LCD डिस्प्लेला जोडलेले आहेत. हे एलसीडीला काय करावे आणि केव्हा करावे हे सांगते.

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

IR बीम ब्रेक सिग्नल Arduino च्या 2ऱ्या डिजिटल पिनला जातो. हे Arduino मध्ये व्यत्यय आणते, त्याला नाडी मोजण्यास आणि टॅकोमीटरला डेटा प्राप्त करण्यास अनुमती देते.

Arduino LCD लायब्ररी

या प्रकल्पासाठी आम्ही Arduino LCD लायब्ररी वापरू. मुळात आम्ही फक्त दुसऱ्या ओळीवरील RPM व्हॅल्यू नवीनमध्ये अपडेट करू.

तयार करण्यासाठी, खालील कोड पहा, जे LCD वर "हॅलो, वर्ल्ड!" प्रदर्शित करण्यासाठी या लायब्ररीचा वापर करते. टॅकोमीटरमध्ये आम्ही समान कोड वापरू, विशेषतः: "lcd.print(millis()/1000);".

पुढे जाण्यापूर्वी या एलसीडी लायब्ररीची कार्ये शक्य तितक्या तपशीलवार समजून घ्या. हे खूप क्लिष्ट नाही आणि Arduino वेबसाइटवर चांगले दस्तऐवजीकरण केले आहे.

Arduino वापरून RPM मोजत आहे

आपण संगणकाच्या पंखाच्या आरपीएमची गणना करणार असल्याने, आपण हे समजले पाहिजे की आपण गणनासाठी IR बीम व्यत्यय वापरत आहोत. हे खूप सोयीस्कर आहे, परंतु आम्ही हे लक्षात घेतले पाहिजे की संगणक फॅनमध्ये 7 ब्लेड आहेत. याचा अर्थ 7 व्यत्यय समान 1 क्रांती.

जर आपण व्यत्ययांचा मागोवा घेत आहोत, तर आपल्याला हे माहित असणे आवश्यक आहे की प्रत्येक 7 व्या व्यत्ययाचा अर्थ असा आहे की 1 पूर्ण रोटेशन नुकतेच आले आहे. क्रांती पूर्ण करण्यासाठी लागणाऱ्या वेळेचा मागोवा घेतल्यास, आम्ही RPM सहज काढू शकतो.

पहिली क्रांती वेळ = P * (µS/क्रांती)

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

RPM ची गणना करण्यासाठी आपण वर दिलेल्या सूत्राचा वापर करू. सूत्र अचूक आहे, आणि अचूकता Arduino व्यत्ययांमधील वेळेचा मागोवा किती चांगल्या प्रकारे ठेवू शकते आणि पूर्ण क्रांतीची संख्या मोजू शकते यावर अवलंबून असते.

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

खालील फोटोमध्ये आपण आकृतीप्रमाणे सर्व आवश्यक भाग आणि जंपर्स पाहू शकता.

प्रथम, LCD डिस्प्लेच्या +5V आणि डेटा/कंट्रोल लाईन्स कनेक्ट करा. नंतर एलसीडी डिस्प्ले, कॉन्ट्रास्ट पोटेंशियोमीटर आणि पॉवर एलईडी.

आयआर बीमचा सर्किट ब्रेक एकत्र केला जातो. IR LED आणि phototransistor मध्ये काही अंतर ठेवण्याचा प्रयत्न करा. हा फोटो IR LED आणि फोटोट्रान्सिस्टर मधील अंतर दाखवतो जिथे मी संगणकाचा पंखा ठेवणार आहे.

पुरेशी हार्डवेअर चर्चा! डिव्हाइस कसे कार्य करते ते पाहण्यासाठी फर्मवेअर/प्रोग्राम करणे सुरू करूया!

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

कोडचे दोन मुख्य भाग आहेत, जे खाली दर्शविले आहेत आणि तपशीलवार आहेत:

मूलभूत LCD रिफ्रेश सायकल

व्यत्यय वेळ अद्यतन

मुख्य चक्रात, एलसीडी डिस्प्लेची क्रांती आणि अद्यतने मोजली जातात. मुख्य लूप हा एक मोठा असताना(1) लूप असल्याने, तो नेहमी चालू राहील, RPM मोजला जाईल, आणि LCD प्रति सेकंद अनेक वेळा अपडेट केला जाईल. इंटरप्टमधील फंक्शन IR इंटरप्ट्समधील वेळ मोजते, त्यामुळे तुम्ही मुख्य लूपमध्ये RPM मोजू शकता.

लक्षात ठेवा की संगणकाच्या पंख्याला 7 ब्लेड असतात, म्हणून हे टॅकोमीटर फक्त त्या चाहत्यांसह कार्य करण्यासाठी डिझाइन केलेले आहे. जर तुमचा पंखा किंवा इतर उपकरण प्रति क्रांती फक्त 4 डाळी निर्माण करत असेल, तर कोड "(वेळ*4)" वर बदला.

टॅकोमीटर कसे कार्य करते याचा एक डेमो व्हिडिओ येथे आहे.

दोन पंखे अंदाजे 3000 RPM आणि 2600 RPM वर ऑपरेट करतात, सुमारे +/-100 RPM च्या त्रुटीसह.

Arduino वर टॅकोमीटरचे पुनरावलोकन

पंखा इंटरप्ट पल्स व्युत्पन्न करतो आणि आउटपुटवर आपल्याला RPM दिसतो. जरी अचूकता 100% नाही, परंतु अंदाजे 95% आहे, घटकांची किंमत $10 सह, हे टॅकोमीटर Arduino वर तयार करण्यात अर्थ आहे.

मग आता काय आहे?

बीम ब्रेक-आधारित प्रणाली केवळ RPM मोजण्यासाठीच नव्हे तर इतर सेन्सर्ससाठी देखील उपयुक्त आहेत. उदाहरणार्थ, तुम्हाला दार उघडे आहे की बंद आहे हे जाणून घ्यायचे आहे. कदाचित तुम्हाला हे जाणून घ्यायचे असेल की रोबोटच्या खाली काहीतरी जात आहे. बीम कटसाठी बरेच उपयोग आहेत आणि येथे वापरलेले सर्किट इतके सोपे आहे की इतर आश्चर्यकारक उपकरणे सुधारण्याचे आणि तयार करण्याचे अनेक मार्ग आहेत.

निष्कर्ष

एकंदरीत, मी हा प्रकल्प यशस्वी मानतो... पण ही वेळ आणि अनुभवाची बाब आहे.. एक ना एक मार्ग, प्रणाली इच्छित आणि विश्वासार्हतेने कार्य करते आणि आम्हाला अपेक्षित परिणाम मिळाला. मला आशा आहे की तुम्हाला हा लेख वाचून आनंद झाला असेल आणि Arduino वापरून तुमचा स्वतःचा टॅकोमीटर कसा बनवायचा हे शिकून घेतले असेल!

मूळ लेख इंग्रजीमध्ये (अनुवाद: अलेक्झांडर कास्यानोव्ह cxem.net साइटसाठी)

टॅकोमीटर हे चाक किंवा फिरणाऱ्या कोणत्याही गोष्टीचे RPM (प्रति मिनिट क्रांती) मोजण्यासाठी उपयुक्त साधन आहे. टॅकोमीटर बनवण्याचा सर्वात सोपा मार्ग म्हणजे आयआर ट्रान्समीटर आणि रिसीव्हर वापरणे. जेव्हा त्यांच्यामधील कनेक्शनमध्ये व्यत्यय येतो, तेव्हा आपल्याला माहित असते की काहीतरी फिरत आहे आणि आपण संप्रेषण व्यत्ययाच्या वारंवारतेवर आधारित RPM ची गणना करण्यासाठी कोड वापरू शकता.

या लेखात, आपण Arduino वापरून टॅकोमीटर बनवण्यासाठी IR ट्रान्समीटर आणि रिसीव्हर कसे वापरायचे ते पाहू. परिणाम 16x2 LCD डिस्प्लेवर प्रदर्शित केला जातो.

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

कम्युनिकेशनसाठी आम्ही कमी प्रतिरोधक रेझिस्टरद्वारे कनेक्ट केलेल्या IR LED मधील IR बीम वापरू जेणेकरून ते चमकदारपणे चमकेल. आम्ही रिसीव्हर म्हणून फोटोट्रांझिस्टर वापरू, जो IR LED च्या प्रकाशाच्या अनुपस्थितीत "बंद" होतो. IR ट्रान्समीटर आणि रिसीव्हर यांच्यामध्ये संगणकाचा पंखा ठेवला जाईल आणि तो चालू केला जाईल. ट्रान्झिस्टर सर्किटद्वारे कनेक्ट केलेला IR रिसीव्हर व्यत्यय निर्माण करेल. निकाल आउटपुट करण्यासाठी Arduino LCD इंटरफेस वापरला जाईल, त्यामुळे आम्ही LCD वर अंतिम RPM मूल्य आउटपुट करू शकतो.

घटक:
Arduino UNO
16x2 LCD
ब्रेड बोर्ड
ट्रिमर रेझिस्टर 5 kOhm
जंपर्स
एसआयपी कनेक्टर
2x 2N2222 NPN ट्रान्झिस्टर
इन्फ्रारेड एलईडी
फोटोट्रान्झिस्टर
10 ओम रेझिस्टर
रेझिस्टर 100 kOhm
रेझिस्टर 15 kOhm किंवा 16 kOhm
संगणक पंखा

आयटमची तपशीलवार यादी

प्रकल्पात वापरलेले सर्व घटक वर सूचीबद्ध आहेत, परंतु मी मुख्य घटकांच्या कार्यांचे अधिक तपशीलवार वर्णन करेन.

Arduino UNO
हा Arduino बोर्ड आहे जो आम्ही IR बीम इंटरप्टमधून डाळींवर प्रक्रिया करण्यासाठी वापरणार आहोत जे रिसीव्हर आणि सेन्सर दरम्यान संगणक फॅन ब्लेडची उपस्थिती दर्शवते. Arduino पंख्याच्या RPM ची गणना करण्यासाठी टायमरसह या डाळींचा वापर करेल.

LCD 16x2
एकदा Arduino ने RPM ची गणना केल्यानंतर, हे मूल्य डिस्प्लेवर वापरकर्ता-अनुकूल पद्धतीने प्रदर्शित केले जाईल.

ट्रिमर रेझिस्टर 5 kOhm
हा ट्रिमर 16x2 LCD चे कॉन्ट्रास्ट समायोजित करण्यासाठी वापरला जाईल. हे 0 ते +5V पर्यंतचे ॲनालॉग व्होल्टेज प्रदान करते, जे तुम्हाला LCD डिस्प्लेची चमक समायोजित करण्यास अनुमती देते.

इन्फ्रारेड एलईडी आणि फोटोट्रान्सिस्टर
शक्तिशाली IR लाईट आदळल्यावर फोटोट्रान्झिस्टर चालू होतो. म्हणून जेव्हा IR LED पेटते तेव्हा ते फोटोट्रांझिस्टर उघडे ठेवते, परंतु जर IR LED फॅन ब्लेडने झाकलेले असेल, उदाहरणार्थ, फोटोट्रांझिस्टर बंद आहे.

2N3904 आणि 2N3906
हे ट्रान्झिस्टर फोटोट्रांझिस्टरपासून आर्डिनोला आउटपुट डाळी प्रदान करण्यासाठी सिग्नल पातळी बदलण्यासाठी वापरले जातात, ज्यामध्ये +0 आणि +5V ​​व्यतिरिक्त कोणतेही व्होल्टेज नसतात.

योजनाबद्ध आकृती

सर्किटमध्ये, एलसीडी डिस्प्लेसह संप्रेषण इंटरफेस सरलीकृत आहे आणि त्यात फक्त 2 नियंत्रण रेषा आणि 4 डेटा लाइन आहेत.

योजनेची वैशिष्ट्ये

16x2 LCD इंटरफेस
2 कंट्रोल पिन आणि डेटा ट्रान्सफरसाठी 4 Arduino वरून LCD डिस्प्लेला जोडलेले आहेत. हे एलसीडीला काय करावे आणि केव्हा करावे हे सांगते.

आयआर बीम ब्रेक सर्किट
IR बीम ब्रेक सिग्नल Arduino च्या 2ऱ्या डिजिटल पिनला जातो. हे Arduino मध्ये व्यत्यय आणते, त्याला नाडी मोजण्यास आणि टॅकोमीटरला डेटा प्राप्त करण्यास अनुमती देते.

Arduino LCD लायब्ररी

या प्रकल्पासाठी आम्ही Arduino LCD लायब्ररी वापरू. मुळात आम्ही फक्त दुसऱ्या ओळीवरील RPM व्हॅल्यू नवीनमध्ये अपडेट करू.

तयार करण्यासाठी, खालील कोड पहा, जे LCD वर "हॅलो, वर्ल्ड!" प्रदर्शित करण्यासाठी या लायब्ररीचा वापर करते. टॅकोमीटरमध्ये आम्ही समान कोड वापरू, विशेषतः: "lcd.print(millis()/1000);".

पुढे जाण्यापूर्वी या एलसीडी लायब्ररीची कार्ये शक्य तितक्या तपशीलवार समजून घ्या. हे खूप क्लिष्ट नाही आणि Arduino वेबसाइटवर चांगले दस्तऐवजीकरण केले आहे.

Arduino वापरून RPM मोजत आहे

आपण संगणकाच्या पंखाच्या आरपीएमची गणना करणार असल्याने, आपण हे समजले पाहिजे की आपण गणनासाठी IR बीम व्यत्यय वापरत आहोत. हे खूप सोयीस्कर आहे, परंतु आम्ही हे लक्षात घेतले पाहिजे की संगणक फॅनमध्ये 7 ब्लेड आहेत. याचा अर्थ 7 व्यत्यय समान 1 क्रांती.

जर आपण व्यत्ययांचा मागोवा घेत आहोत, तर आपल्याला हे माहित असणे आवश्यक आहे की प्रत्येक 7 व्या व्यत्ययाचा अर्थ असा आहे की 1 पूर्ण रोटेशन नुकतेच आले आहे. क्रांती पूर्ण करण्यासाठी लागणाऱ्या वेळेचा मागोवा घेतल्यास, आम्ही RPM सहज काढू शकतो.

पहिली क्रांती वेळ = P * (µS/क्रांती)
RPM = rpm = 60,000,000 * (µS/min) * (1/P) = (60,000,000 / P) * (rpm)

RPM ची गणना करण्यासाठी आपण वर दिलेल्या सूत्राचा वापर करू. सूत्र अचूक आहे, आणि अचूकता Arduino व्यत्ययांमधील वेळेचा मागोवा किती चांगल्या प्रकारे ठेवू शकते आणि पूर्ण क्रांतीची संख्या मोजू शकते यावर अवलंबून असते.

खालील फोटोमध्ये आपण आकृतीप्रमाणे सर्व आवश्यक भाग आणि जंपर्स पाहू शकता.

प्रथम, LCD डिस्प्लेच्या +5V आणि डेटा/कंट्रोल लाईन्स कनेक्ट करा. नंतर एलसीडी डिस्प्ले, कॉन्ट्रास्ट पोटेंशियोमीटर आणि पॉवर एलईडी.

आयआर बीमचा सर्किट ब्रेक एकत्र केला जातो. IR LED आणि phototransistor मध्ये काही अंतर ठेवण्याचा प्रयत्न करा. हा फोटो IR LED आणि फोटोट्रान्सिस्टर मधील अंतर दाखवतो जिथे मी संगणकाचा पंखा ठेवणार आहे.

पुरेशी हार्डवेअर चर्चा! डिव्हाइस कसे कार्य करते ते पाहण्यासाठी फर्मवेअर/प्रोग्राम करणे सुरू करूया!

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

कोडचे दोन मुख्य भाग आहेत, जे खाली दर्शविले आहेत आणि तपशीलवार आहेत:
-मुख्य एलसीडी रिफ्रेश सायकल
- व्यत्यय वेळा अद्यतनित करणे

मुख्य चक्रात, एलसीडी डिस्प्लेची क्रांती आणि अद्यतने मोजली जातात. मुख्य लूप हा एक मोठा असताना(1) लूप असल्याने, तो नेहमी चालू राहील, RPM मोजला जाईल, आणि LCD प्रति सेकंद अनेक वेळा अपडेट केला जाईल. इंटरप्टमधील फंक्शन IR इंटरप्ट्समधील वेळ मोजते, त्यामुळे तुम्ही मुख्य लूपमध्ये RPM मोजू शकता.

लक्षात ठेवा की संगणकाच्या पंख्याला 7 ब्लेड असतात, म्हणून हे टॅकोमीटर फक्त त्या चाहत्यांसह कार्य करण्यासाठी डिझाइन केलेले आहे. जर तुमचा पंखा किंवा इतर उपकरण प्रति क्रांती फक्त 4 डाळी निर्माण करत असेल, तर कोड "(वेळ*4)" वर बदला.

दोन पंखे अंदाजे 3000 RPM आणि 2600 RPM वर ऑपरेट करतात, सुमारे +/-100 RPM च्या त्रुटीसह.

Arduino वर टॅकोमीटरचे पुनरावलोकन

पंखा इंटरप्ट पल्स व्युत्पन्न करतो आणि आउटपुटवर आपल्याला RPM दिसतो. जरी अचूकता 100% नाही, परंतु अंदाजे 95% आहे, घटकांची किंमत $10 सह, हे टॅकोमीटर Arduino वर तयार करण्यात अर्थ आहे.

मग आता काय आहे?

बीम ब्रेक-आधारित प्रणाली केवळ RPM मोजण्यासाठीच नव्हे तर इतर सेन्सर्ससाठी देखील उपयुक्त आहेत. उदाहरणार्थ, तुम्हाला दार उघडे आहे की बंद आहे हे जाणून घ्यायचे आहे. कदाचित तुम्हाला हे जाणून घ्यायचे असेल की रोबोटच्या खाली काहीतरी जात आहे. बीम कटसाठी बरेच उपयोग आहेत आणि येथे वापरलेले सर्किट इतके सोपे आहे की इतर आश्चर्यकारक उपकरणे सुधारण्याचे आणि तयार करण्याचे अनेक मार्ग आहेत.

निष्कर्ष

एकंदरीत, मी हा प्रकल्प यशस्वी मानतो... पण ही वेळ आणि अनुभवाची बाब आहे... एक ना एक मार्ग, प्रणाली इच्छित आणि विश्वासार्हतेने कार्य करते आणि आम्हाला अपेक्षित परिणाम मिळाला. मला आशा आहे की तुम्हाला हा लेख वाचून आनंद झाला असेल आणि Arduino वापरून तुमचा स्वतःचा टॅकोमीटर कसा बनवायचा हे शिकून घेतले असेल!

रेडिओ घटकांची यादी

पदनाम प्रकार संप्रदाय प्रमाण नोंददुकानमाझे नोटपॅड
अर्डिनो बोर्ड

Arduino Uno

1 नोटपॅडवर
T2, T3 द्विध्रुवीय ट्रान्झिस्टर

2N2222

2 2N3904 आणि 2N3906 नोटपॅडवर
R1 रेझिस्टर

10 ओम

1 नोटपॅडवर
R2 रेझिस्टर

100 kOhm

1 नोटपॅडवर
R3 रेझिस्टर

16 kOhm

1

हे डिजिटल उपकरणाचे वर्णन करते जे कारचा वेग आणि त्याच्या इंजिनच्या क्रँकशाफ्ट गतीचे मोजमाप करते. इंडिकेटर हा 1602A प्रकारचा LCD डिस्प्ले आहे, तो HD44780 कंट्रोलरवर आधारित मानक आहे.

पदनाम 1602A चा अर्थ असा आहे की ते प्रत्येक ओळीत 16 वर्णांच्या दोन ओळींवर आहे. इंडिकेटर Aliexpress वर खरेदी केला गेला होता, “HD44780” (81 rubles पासून किंमती) शोधून सापडला. आधीच नमूद केल्याप्रमाणे, या निर्देशकामध्ये दोन ओळी आहेत. तर, वरच्या ओळीत डिव्हाइस कारची गती दर्शवते आणि खालच्या ओळीत - इंजिनची गती.

"ओरिअन-बीके" आणि यासारख्या अनेक ऑन-बोर्ड कॉम्प्युटरच्या विपरीत, तसेच एलईडी सात-सेगमेंट इंडिकेटरसह उपकरणे, हा एलसीडी डिस्प्ले, बॅकलाइट चालू असताना, एक अतिशय स्पष्ट प्रतिमा देतो, दोन्हीमध्ये पूर्णपणे दृश्यमान. प्रकाश आणि रात्री अंधारात, जे ऑटोमोटिव्ह वापरासाठी विशेषतः महत्वाचे आहे.

डिव्हाइस सर्किट रेडीमेड ARDUINO UNO बोर्डवर आधारित आहे, ज्यावर ATMEGA328 मायक्रोकंट्रोलर स्थित आहे, तसेच USB प्रोग्रामर आणि वीज पुरवठ्यासह त्याच्या ऑपरेशनसाठी आवश्यक असलेले सर्व "पाइपिंग" आहे.

Aliexpress वर ARDUINO UNO ची किंमत 200 rubles पासून सुरू होते. ARDUINO UNO बोर्डाचे वर्णन, तसेच त्यासाठीचे सॉफ्टवेअर, आणि वैयक्तिक संगणकाशी जोडणी लेखकाने L.1 मध्ये दिलेली आहे, त्यामुळे जर कोणाला ARDUINO म्हणजे काय आणि "त्याचा वापर कशासाठी केला जातो हे माहित नसेल तर, एल. मधील लेख जरूर वाचा.1.

डिव्हाइस कारच्या इग्निशन स्विचच्या आउटपुटशी पॉवरद्वारे कनेक्ट केलेले आहे आणि त्याच्या हॉल सेन्सरकडून सिग्नल प्राप्त करते, ज्यापैकी एक इग्निशन सेन्सर आहे आणि दुसरा स्पीड सेन्सर आहे.

योजनाबद्ध आकृती

डिव्हाइस केवळ इंजेक्शन इंजिन असलेल्या कारमध्ये कार्य करू शकते (कार्ब्युरेटर कारमध्ये स्पीड सेन्सर नसतो आणि सर्वांकडे इग्निशन सेन्सर नसते). डिव्हाइस आकृती आकृती 1 मध्ये दर्शविली आहे. या आकृतीमध्ये, ARDUINO UNO बोर्ड योजनाबद्धरित्या "शीर्ष दृश्य" म्हणून दर्शविला आहे.

तांदूळ. 1. Arduino वर आधारित स्पीडोमीटर आणि टॅकोमीटरचे योजनाबद्ध आकृती.

सेन्सरसह पोर्ट जुळण्यासाठी, ट्रान्झिस्टर VT1 आणि VT2 वर कॅस्केड वापरले जातात. इग्निशन स्विच आउटपुटमधून डिव्हाइसला वीज पुरवली जात असल्याने, ते फक्त इग्निशन चालू असतानाच कार्य करते. स्पीड सेन्सर, तसेच वाहन इग्निशन सेन्सर, डाळींचे स्त्रोत आहेत, ज्याची वारंवारता वाहनाच्या यांत्रिक भागांच्या रोटेशनवर अवलंबून असते.

चार-सिलेंडर गॅसोलीन इंजिन असलेल्या कारचा इग्निशन सेन्सर क्रँकशाफ्टच्या प्रति क्रांतीला दोन पल्स तयार करतो. जर इंजिनमध्ये चार सिलेंडर्स नसतील तर नाडीची पुनरावृत्ती दर भिन्न असेल.

स्पीड सेन्सर्स भिन्न आहेत, परंतु बहुतेक भागांसाठी, विशेषत: घरगुती कारसाठी, ते प्रति किलोमीटर 6000 आवेग देतात. जरी असे काही आहेत जे प्रति किलोमीटर 2500 आवेग देतात, कदाचित इतर आहेत.

कार्यक्रम

तपशीलवार टिप्पण्यांसह C++ प्रोग्राम टेबल 1 मध्ये दिलेला आहे. प्रोग्रामचे ऑपरेशन सेन्सर्समधून येणाऱ्या डाळींचा कालावधी मोजणे आणि क्रँकशाफ्टचा वेग आणि फिरण्याच्या गतीची त्यानंतरची गणना यावर आधारित आहे.

तक्ता 1. प्रोग्रामचा स्त्रोत कोड.

कार्य करण्यासाठी, पल्सलन फंक्शन वापरा, जे इनपुट पल्सच्या सकारात्मक किंवा नकारात्मक किनारीचा कालावधी मायक्रोसेकंदमध्ये मोजते. म्हणून, कालावधी शोधण्यासाठी, तुम्हाला सकारात्मक आणि नकारात्मक अर्ध-चक्रांचा कालावधी जोडणे आवश्यक आहे.

जेथे T हा सेकंदातील कालावधी आहे आणि F हा किमी/ताशी वेग आहे. कालावधी मायक्रोसेकंदमध्ये मोजला जात असल्याने वास्तविक सूत्र आहे:

जर सेन्सर 2500 पल्स प्रति किमी (जपानी) असेल तर सूत्र असे असेल:

त्यानुसार, कालावधी मायक्रोसेकंदमध्ये मोजला गेला आहे:

क्रँकशाफ्ट गती मोजण्यासाठी, सूत्र वापरले जाते:

जेथे T हा सेकंदातील कालावधी आहे आणि F हा क्रँकशाफ्ट रोटेशन गती प्रति मिनिट क्रांती आहे. कालावधी मायक्रोसेकंदमध्ये मोजला जात असल्याने, वास्तविक सूत्र आहे:

त्यानंतर, परिणाम एलसीडी डिस्प्लेच्या संबंधित ओळींमध्ये प्रदर्शित केले जातात. मोजमापाची एकके “किमी/ता” आणि “ओब/टिप” म्हणून दर्शविली जातात (तुम्हाला ते आवडत नसल्यास, तुम्ही ते बदलू शकता).

जर कोणतेही इनपुट सिग्नल नसेल, उदाहरणार्थ, इग्निशन चालू असेल, परंतु इंजिन सुरू किंवा चालवलेले नसेल, तर ज्या ओळींमध्ये सिग्नल नाही तेथे "inf" शिलालेख असेल.

तत्त्वानुसार, कोणत्याही सेटअपची आवश्यकता नाही. तथापि, एखाद्या विशिष्ट कारचा स्पीड सेन्सर प्रति किलोमीटर किती डाळी देतो हे अज्ञात असल्यास, हे प्रथम स्पष्ट करणे आवश्यक आहे.

एकतर तुम्ही डायल स्पीडोमीटरने तपासून कालखंडात विभागलेला नंबर प्रायोगिकरित्या समायोजित करू शकता, जे खूप त्रासदायक आहे किंवा मानक स्पीडोमीटर सदोष असल्यास (जे या डिव्हाइसच्या निर्मितीचे कारण असू शकते) असल्यास ते अशक्य आहे.

परंतु स्पीड सेन्सरचे पॅरामीटर्स शोधणे चांगले आहे. आणि नंतर प्रोग्राममधील कालावधीने भागलेल्या संख्येची गणना करा. चला ही संख्या X, आणि प्रति किलोमीटर N या डाळींची संख्या दर्शवू. नंतर खालील सूत्र वापरून X ची गणना करता येईल:

X = 3600000000 / N

उदाहरणार्थ, सेन्सर देत असल्यास, 2500 डाळी प्रति किलोमीटर:

X= 3600000000 / 2500 = 1440000

किंवा, जर सेन्सर प्रति किलोमीटर 6000 डाळी देतो:

X= 3600000000 / 6000 = 600000

शेवटी

डिव्हाइसमध्ये बिघाड झाल्यास, ट्रान्झिस्टर व्हीटी 1 आणि व्हीटी 2 वरील इनपुट स्टेजच्या ऑपरेटिंग मोडला अनुक्रमे, प्रतिरोधक R3 आणि R6, तसेच कॅपेसिटर C2 आणि S3 चे कॅपेसिटन्स निवडून ऑप्टिमाइझ करणे आवश्यक असू शकते.

करावकिन व्ही. आरके-12-16.

साहित्य:

1. मायक्रोकंट्रोलरच्या भीतीवर उपाय म्हणून ARDUINO वर Karavkin V. ख्रिसमस ट्री फ्लॅशर. आरके-11-2016.