इस लेख में, हम HC-SR04 अल्ट्रासोनिक रेंजफाइंडर-सोनार को Arduino से जोड़ेंगे।
ज़रूरी
- - अरुडिनो;
- - अल्ट्रासोनिक सेंसर HC-SR04;
- - तारों को जोड़ना।
निर्देश
चरण 1
HC-SR04 अल्ट्रासोनिक रेंजफाइंडर की क्रिया इकोलोकेशन के सिद्धांत पर आधारित है। यह अंतरिक्ष में ध्वनि आवेगों का उत्सर्जन करता है और एक बाधा से परावर्तित संकेत प्राप्त करता है। वस्तु की दूरी ध्वनि तरंग के बाधा और पीछे के प्रसार समय से निर्धारित होती है।
रेंजफाइंडर के TRIG लेग में कम से कम 10 माइक्रोसेकंड की सकारात्मक पल्स लगाने से ध्वनि तरंग शुरू हो जाती है। जैसे ही पल्स समाप्त होता है, रेंजफाइंडर अपने सामने के स्थान में 40 kHz की आवृत्ति के साथ ध्वनि दालों के फटने का उत्सर्जन करता है। उसी समय, परावर्तित सिग्नल के विलंब समय को निर्धारित करने के लिए एल्गोरिदम लॉन्च किया जाता है, और रेंजफाइंडर के ईसीएचओ पैर पर एक तार्किक इकाई दिखाई देती है। जैसे ही सेंसर परावर्तित संकेत का पता लगाता है, ईसीएचओ पिन पर एक तर्क शून्य दिखाई देता है। इस संकेत की अवधि (आकृति में "इको विलंब") वस्तु की दूरी निर्धारित करती है।
एचसी-एसआर04 रेंजफाइंडर की दूरी माप सीमा - 0.3 सेमी के संकल्प के साथ 4 मीटर तक अवलोकन कोण - 30 डिग्री, प्रभावी कोण - 15 डिग्री। स्टैंडबाय मोड में वर्तमान खपत 2 एमए है, ऑपरेशन के दौरान - 15 एमए।
चरण 2
अल्ट्रासोनिक रेंजफाइंडर की बिजली आपूर्ति +5 वी के वोल्टेज के साथ की जाती है। अन्य दो पिन Arduino के किसी भी डिजिटल पोर्ट से जुड़े होते हैं, हम 11 और 12 से जुड़ेंगे।
चरण 3
अब एक स्केच लिखते हैं जो बाधा की दूरी निर्धारित करता है और इसे सीरियल पोर्ट पर आउटपुट करता है। सबसे पहले, हम TRIG और ECHO पिन की संख्या निर्धारित करते हैं - ये पिन 12 और 11 हैं। फिर हम ट्रिगर को आउटपुट के रूप में घोषित करते हैं और इनपुट के रूप में इको करते हैं। हम सीरियल पोर्ट को 9600 बॉड पर इनिशियलाइज़ करते हैं। लूप () के प्रत्येक दोहराव पर, हम दूरी को पढ़ते हैं और इसे पोर्ट पर आउटपुट करते हैं।
GetEchoTiming () फ़ंक्शन एक ट्रिगर पल्स उत्पन्न करता है। यह सिर्फ 10 माइक्रोसेकंड पल्स का करंट बनाता है, जो अंतरिक्ष में ध्वनि पैकेट के रेंजफाइंडर द्वारा विकिरण की शुरुआत के लिए एक ट्रिगर है। तब वह ध्वनि तरंग के संचरण की शुरुआत से लेकर प्रतिध्वनि के आगमन तक के समय को याद करती है।
गेटडिस्टेंस () फ़ंक्शन ऑब्जेक्ट की दूरी की गणना करता है। स्कूल भौतिकी पाठ्यक्रम से, हमें याद है कि दूरी समय से गुणा की गई गति के बराबर है: S = V * t। हवा में ध्वनि की गति 340 मीटर/सेकेंड है, माइक्रोसेकंड में हम जो समय जानते हैं वह "ड्यूराट्यूयन" है। सेकंड में समय प्राप्त करने के लिए, 1,000,000 से विभाजित करें। चूंकि ध्वनि दो बार दूरी तय करती है - वस्तु और पीछे - आपको दूरी को आधे में विभाजित करने की आवश्यकता है। तो यह पता चला है कि वस्तु की दूरी S = 34000 सेमी / सेकंड * अवधि / 1.000.000 सेकंड / 2 = 1.7 सेमी / सेकंड / 100, जिसे हमने स्केच में लिखा था। माइक्रोकंट्रोलर विभाजन की तुलना में तेजी से गुणा करता है, इसलिए मैंने "/ 100" को समकक्ष "* 0, 01" से बदल दिया।
चरण 4
साथ ही, कई पुस्तकालयों को अल्ट्रासोनिक रेंजफाइंडर के साथ काम करने के लिए लिखा गया है। उदाहरण के लिए, यह एक: https://robocraft.ru/files/sensors/Ultraonic/HC-SR04/ultrasonic-HC-SR04.zip। पुस्तकालय एक मानक तरीके से स्थापित किया गया है: डाउनलोड करें, पुस्तकालयों की निर्देशिका को अनज़िप करें, जो कि Arduino IDE के साथ फ़ोल्डर में स्थित है। उसके बाद, पुस्तकालय का उपयोग किया जा सकता है।
पुस्तकालय स्थापित करने के बाद, आइए एक नया स्केच लिखें। इसके कार्य का परिणाम समान होता है - सीरियल पोर्ट मॉनिटर वस्तु से दूरी को सेंटीमीटर में प्रदर्शित करता है। यदि आप फ्लोट डिस्ट_सेमी = अल्ट्रासोनिक। रेंजिंग (आईएनसी) लिखते हैं, तो स्केच में दूरी इंच में प्रदर्शित होगी।
चरण 5
इसलिए, हमने HC-SR04 अल्ट्रासोनिक रेंजफाइंडर को Arduino से जोड़ा और इससे दो अलग-अलग तरीकों से डेटा प्राप्त किया: एक विशेष पुस्तकालय का उपयोग करके और बिना।
पुस्तकालय का उपयोग करने का लाभ यह है कि कोड की मात्रा काफी कम हो जाती है और कार्यक्रम की पठनीयता में सुधार होता है, आपको डिवाइस की पेचीदगियों में जाने की जरूरत नहीं है और आप तुरंत इसका उपयोग कर सकते हैं। लेकिन यह भी नुकसान है: आप कम अच्छी तरह समझते हैं कि डिवाइस कैसे काम करता है और इसमें कौन सी प्रक्रियाएं होती हैं। किसी भी मामले में, किस विधि का उपयोग करना है, यह आप पर निर्भर है।