ভিউ: 164 লেখক: গ্রেস প্রকাশের সময়: 2021-07-26 মূল: সাইট
দ HC-SR04 অতিস্বনক সেন্সর Arduino প্রকল্পের জন্য সবচেয়ে জনপ্রিয় দূরত্ব পরিমাপ মডিউলগুলির মধ্যে একটি। এটি ব্যাপকভাবে বাধা এড়ানো রোবট, পার্কিং সেন্সর, স্তর সনাক্তকরণ, স্মার্ট ট্র্যাশ বিন, দূরত্ব মিটার এবং অন্যান্য অ-যোগাযোগ সেন্সিং অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়।
মডিউলটি একটি ট্রান্সমিটারের মাধ্যমে 40kHz অতিস্বনক তরঙ্গ নির্গত করে। শব্দ তরঙ্গ যখন একটি বস্তুর সাথে মিলিত হয়, তখন এটি রিসিভারে প্রতিফলিত হয়। প্রতিধ্বনি সময় পরিমাপ করে এবং শব্দের গতি ব্যবহার করে, Arduino সেন্সর এবং বস্তুর মধ্যে দূরত্ব গণনা করতে পারে।
| প্যারামিটার | মান |
| সাধারণ কাজের ভোল্টেজ | 5V ডিসি |
| স্ট্যাটিক কাজ বর্তমান | কিছু মডিউল সংস্করণে 5mA-এর কম |
| অপারেটিং ফ্রিকোয়েন্সি | 40kHz অতিস্বনক তরঙ্গ |
| সনাক্তকরণ দূরত্ব | সাধারণ পরিসীমা: 2 সেমি থেকে 400 সেমি; কিছু লাভ-অ্যাডজাস্টেড সংস্করণ দীর্ঘ পরিসর সমর্থন করতে পারে। |
| সনাক্তকরণ কোণ | সাধারণত 15 ডিগ্রির মধ্যে; উচ্চতর লাভ সহ কিছু সংস্করণ প্রায় 30 ডিগ্রিতে পৌঁছতে পারে। |
| যথার্থতা | উপযুক্ত পরীক্ষা অবস্থার অধীনে প্রায় 0.3 সেমি পর্যন্ত |
| অন্ধ অঞ্চল | ন্যূনতম পরিমাপের দূরত্ব প্রায় 2 সেমি |
HC-SR04 অতিস্বনক মডিউলটিতে চারটি পিন রয়েছে: VCC, TRIG, ECHO এবং GND। Arduino TRIG পিনে একটি ছোট ট্রিগার পালস পাঠায়, তারপর ECHO পিন থেকে রিটার্ন পালস পড়ে।
| HC-SR04 পিন | আরডুইনো সংযোগ | ফাংশন |
| ভিসিসি | 5V | অতিস্বনক মডিউল জন্য পাওয়ার সাপ্লাই. |
| TRIG | ডিজিটাল পিন 9 | ট্রিগার ইনপুট। Arduino রেঞ্জিং শুরু করতে একটি 10us পালস প্রয়োগ করে। |
| ইকো | ডিজিটাল পিন 10 | ইকো আউটপুট। আরডুইনো দূরত্ব গণনা করতে পালস প্রস্থ পড়ে। |
| জিএনডি | জিএনডি | স্থল সংযোগ। |
HC-SR04 ফ্লাইটের সময় পরিমাপ করে কাজ করে। Arduino TRIG পিনে কমপক্ষে 10 মাইক্রোসেকেন্ডের একটি উচ্চ-স্তরের ট্রিগার সংকেত পাঠায়। মডিউলটি তখন স্বয়ংক্রিয়ভাবে আটটি 40kHz অতিস্বনক ডাল পাঠায় এবং প্রতিফলিত প্রতিধ্বনির জন্য অপেক্ষা করে।
প্রতিফলিত অতিস্বনক সংকেত সনাক্ত করা হলে, ECHO পিন একটি উচ্চ-স্তরের পালস আউটপুট করে। এই নাড়ির সময়কাল হল অতিস্বনক তরঙ্গের রাউন্ড-ট্রিপ ভ্রমণের সময়।
দূরত্ব = প্রতিধ্বনি উচ্চ-স্তরের সময় × শব্দের গতি / 2
Arduino কোডে, সাধারণ সরলীকৃত সূত্র হল:
সেমিতে দূরত্ব = সময়কাল × 0.0343 / 2
টাইমিং প্রক্রিয়া সহজ: Arduino সংক্ষিপ্তভাবে TRIG কম রাখে, একটি 10us উচ্চ পালস পাঠায়, তারপর TRIG-কে নিম্নে ফিরিয়ে দেয়। HC-SR04 একটি অতিস্বনক বিস্ফোরণ পাঠায় এবং প্রতিফলিত সংকেত ফিরে না আসা পর্যন্ত বা পরিমাপের সময় শেষ না হওয়া পর্যন্ত ECHO উচ্চ সেট করে।
অস্থির রিডিং এড়াতে, পরিমাপের মধ্যে একটি ছোট বিলম্ব ছেড়ে দিন। প্রায় 60ms এর একটি পরিমাপ চক্র সাধারণত ব্যবহৃত হয় তাই পূর্ববর্তী অতিস্বনক প্রতিধ্বনি পরবর্তী ট্রিগারের আগে অদৃশ্য হয়ে যাওয়ার সময় থাকে।
Arduino pulseIn() ফাংশন একটি ডিজিটাল পিন কতক্ষণ উচ্চ বা কম থাকে তা পরিমাপ করতে ব্যবহৃত হয়। HC-SR04 এর জন্য, আরডুইনো pulseIn(echoPin, HIGH) ব্যবহার করে। ECHO পিন থেকে উচ্চ-স্তরের পালস প্রস্থ পড়তে
| সিনট্যাক্স | অর্থ |
| পালসইন (পিন, মান) | উচ্চ বা নিম্ন নাড়ির সময়কাল পড়ে। |
| পালসইন (পিন, মান, সময় শেষ) | মাইক্রোসেকেন্ডে একটি টাইমআউট মান সহ পালস পড়ে। |
একটি টাইমআউট ব্যবহার করার সুপারিশ করা হয়. যদি কোনো প্রতিধ্বনি ফেরত না আসে, তাহলে ফাংশন অপেক্ষা করা বন্ধ করে দিতে পারে এবং প্রোগ্রামটিকে বেশিক্ষণ অবরুদ্ধ করার পরিবর্তে 0 ফেরত দিতে পারে।
ওয়্যারিং সোজা। VCC-কে 5V, GND থেকে GND, TRIG-কে একটি Arduino ডিজিটাল আউটপুট পিনে এবং ECHO-কে একটি Arduino ডিজিটাল ইনপুট পিনে সংযুক্ত করুন। নিচের উদাহরণে Arduino Uno, পিন 9-এ TRIG এবং পিন 10-এ ECHO ব্যবহার করা হয়েছে।
নিম্নলিখিত সাধারণ Arduino প্রোগ্রামটি একটি 10us ট্রিগার পালস পাঠায়, ECHO পালস প্রস্থ পড়ে, সেন্টিমিটারে দূরত্ব গণনা করে এবং সিরিয়াল মনিটরে ফলাফল প্রিন্ট করে।
const int trigPin = 9; const int echoPin = 10; দীর্ঘ সময়কাল; ভাসা দূরত্বCm; void সেটআপ() { pinMode(trigPin, OUTPUT); পিনমোড (ইকোপিন, ইনপুট); Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW); বিলম্ব মাইক্রোসেকেন্ড(2); ডিজিটাল রাইট (ট্রিগপিন, হাই); বিলম্ব মাইক্রোসেকেন্ড(10); ডিজিটাল রাইট (ট্রিগপিন, কম); সময়কাল = পালসইন (ইকোপিন, হাই, 30000); যদি (সময়কাল == 0) { Serial.println('পরিসীমার বাইরে'); } অন্য { দূরত্ব সেমি = সময়কাল * ০.০৩৪৩ / ২; Serial.print('দূরত্ব:'); Serial.print(distanceCm); Serial.println('cm'); } বিলম্ব (60); }
আপনি যদি সিরিয়াল মনিটরে দূরত্বের মান দেখতে পান, HC-SR04 অতিস্বনক সেন্সর এবং আরডুইনো তারের সঠিকভাবে কাজ করছে। তারপরে আপনি বাধা সনাক্তকরণ, রোবট চলাচল নিয়ন্ত্রণ, স্বয়ংক্রিয় দরজা, পার্কিং অনুস্মারক বা তরল স্তরের প্রকল্পগুলির জন্য দূরত্বের ডেটা ব্যবহার করতে পারেন।
পরিমাপ করা বস্তুটিকে প্রস্তাবিত দূরত্বের সীমার মধ্যে এবং 2 সেমি অন্ধ অঞ্চলের বাইরে রাখুন।
ভাল অতিস্বনক প্রতিফলনের জন্য একটি সমতল এবং কঠিন লক্ষ্য পৃষ্ঠ ব্যবহার করুন।
নরম, কোণীয়, ছিদ্রযুক্ত বা শব্দ-শোষণকারী উপকরণ পরিমাপ করা এড়িয়ে চলুন।
একটি স্থিতিশীল 5V পাওয়ার সাপ্লাই ব্যবহার করুন এবং তারের সংক্ষিপ্ত ও সুরক্ষিত রাখুন।
কোনো প্রতিধ্বনি ফিরে না এলে দীর্ঘ অবরোধ প্রতিরোধ করতে pulseIn() এ একটি টাইমআউট যোগ করুন।
গোলমাল কমাতে গড় বা মাঝারি-ফিল্টার বেশ কয়েকটি রিডিং।
উচ্চ নির্ভুলতার জন্য, তাপমাত্রার জন্য ক্ষতিপূরণ দিন কারণ শব্দের গতি বাতাসের তাপমাত্রার সাথে পরিবর্তিত হয়।
| আবেদন | কিভাবে HC-SR04 ব্যবহার করা হয় |
| বাধা পরিহার রোবট | কাছাকাছি বস্তু সনাক্ত করে এবং রোবটকে দিক পরিবর্তন করতে সহায়তা করে। |
| পার্কিং দূরত্ব সেন্সর | যানবাহন এবং একটি বাধার মধ্যে দূরত্ব পরিমাপ করে। |
| তরল স্তর সনাক্তকরণ | যোগাযোগ ছাড়াই সেন্সর থেকে তরল পৃষ্ঠের দূরত্ব পরিমাপ করে। |
| স্মার্ট ট্র্যাশ বিন | কাছাকাছি একটি হাত বা বস্তু সনাক্ত করে এবং স্বয়ংক্রিয় ঢাকনা খোলার ট্রিগার করে। |
Arduino-এর সাথে একটি HC-SR04 অতিস্বনক সেন্সর ব্যবহার করতে, VCC-কে 5V, GND থেকে GND, TRIG-কে একটি ডিজিটাল আউটপুট পিনে এবং ECHO-কে একটি ডিজিটাল ইনপুট পিনে সংযুক্ত করুন। একটি 10us ট্রিগার পালস পাঠান, pulseIn() দিয়ে ইকো সময়কাল পড়ুন এবং ফ্লাইটের সময় সূত্র দিয়ে দূরত্ব গণনা করুন।
HC-SR04 সস্তা, ব্যবহার করা সহজ এবং অনেক Arduino দূরত্ব পরিমাপ প্রকল্পের জন্য উপযুক্ত। সেরা ফলাফলের জন্য, লক্ষ্য পৃষ্ঠ, পরিমাপ কোণ, অন্ধ অঞ্চল, স্থিতিশীল শক্তি, টাইমআউট হ্যান্ডলিং এবং তাপমাত্রার প্রভাবগুলিতে মনোযোগ দিন।
Arduino TRIG পিনে একটি 10us পালস পাঠায়। HC-SR04 আটটি 40kHz অতিস্বনক ডাল নির্গত করে এবং প্রতিফলিত শব্দ ফিরে না আসা পর্যন্ত ECHO পিনকে উঁচু করে রাখে। Arduino এই পালস সময় পরিমাপ করে এবং দূরত্ব গণনা করে।
সূত্রটি হল দূরত্ব = সময়কাল × শব্দের গতি / 2। সেন্টিমিটারে, একটি সাধারণ Arduino সূত্র হল দূরত্বCm = সময়কাল × 0.0343 / 2, যেখানে সময়কাল মাইক্রোসেকেন্ডে পরিমাপ করা হয়।
পরিমাপ করা ইকো সময় হল সেন্সর থেকে বস্তুতে এবং সেন্সরে ফিরে যাওয়ার রাউন্ড-ট্রিপ সময়। 2 দ্বারা ভাগ করলে সেন্সর এবং বস্তুর মধ্যে একমুখী দূরত্ব পাওয়া যায়।
আপনি বেশিরভাগ Arduino ডিজিটাল পিন ব্যবহার করতে পারেন। অনেক উদাহরণে, TRIG ডিজিটাল পিন 9 এর সাথে সংযুক্ত এবং ECHO ডিজিটাল পিন 10 এর সাথে সংযুক্ত। কোডটি অবশ্যই আপনার ওয়্যারিং-এ ব্যবহৃত পিনের সাথে মেলে।
সাধারণ কারণগুলির মধ্যে রয়েছে আলগা ওয়্যারিং, অস্থির 5V শক্তি, ভুল TRIG বা ECHO পিন নম্বর, পরিসরে কোনও বস্তু নেই, কোণীয় লক্ষ্য পৃষ্ঠতল, নরম উপকরণ, অবরুদ্ধ সেন্সর হেড, বা pulseIn() ফাংশনে টাইমআউট না হওয়া।
অন্ধ অঞ্চল হল সর্বনিম্ন দূরত্ব যেখানে মডিউল নির্ভরযোগ্যভাবে পরিমাপ করতে পারে না। HC-SR04 এর জন্য, অন্ধ অঞ্চলটি সাধারণত 2 সেমি হয়। এর চেয়ে কাছাকাছি বস্তু অস্থির রিডিং তৈরি করতে পারে।
হ্যাঁ, যদি সেন্সরটি আর্দ্রতা থেকে সুরক্ষিত থাকে এবং তরল পৃষ্ঠের উপরে মাউন্ট করা হয় তবে HC-SR04 সাধারণ অ-যোগাযোগ জল স্তরের প্রকল্পগুলির জন্য ব্যবহার করা যেতে পারে। আর্দ্র, বহিরঙ্গন বা শিল্প ট্যাঙ্কের জন্য, একটি জলরোধী অতিস্বনক সেন্সর সুপারিশ করা হয়।
একটি স্থিতিশীল পাওয়ার সাপ্লাই ব্যবহার করুন, সেন্সরটিকে লক্ষ্যের সাথে লম্ব রাখুন, নরম বা কোণীয় পৃষ্ঠগুলি এড়িয়ে চলুন, পালসইন টাইমআউট যোগ করুন, একাধিক রিডিং নিন, মিডিয়ান ফিল্টারিং ব্যবহার করুন এবং পরিমাপের মধ্যে প্রায় 60ms অনুমতি দিন।