قياس المسافة باستخدام حساس الموجات فوق الصوتية 📏

في كثير من الحالات، نتحتاج إلى قياس مدى بُعد جسم ما عنك، ولكن ماذا لو كان هذا الجسم يغير موضعه باستمرار؟


قد يكون استخدام حساس الاستشعار بالموجات فوق الصوتية لقياس هذه المسافة حلاً مثاليًا.


في هذا الدرس سوف نتعلم معًا كيفية استخدام المستشعر بالموجات فوق الصوتية لقياس المسافة وعرض القيم على جهاز الكمبيوتر الخاص بك!


مقدمة


حساس الاستشعار بالموجات فوق الصوتية هو مستشعر يمكنه قياس المسافة عن طريق إرسال موجات صوتية وحساب المدة التي يستغرقها ارتدادها.


يمكن استخدامه لقياس المسافة بين جسمين أو لاكتشاف ما إذا كان هناك عائق في الطريق.


لهذا السبب يستخدم المستشعر بالموجات فوق الصوتية غالبًا في الروبوتات، حيث يمكن أن يساعد الروبوت في تجنب العقبات.


لنكتشف المزيد معا!


الحصول على القطع


ستحتاج إلى المكونات التالية لهذا المشروع، يمكنك شراؤها من متجر ڤولتات.

Sale Off
Voltaat Arduino Uno R3 (Voltaat Version)
45 QAR
Sale Off
Voltaat Ultrasonic Sensor (HC-SR04)
17 QAR
Sale Off
Voltaat Jumper Wires - Male to Female (40 Pack)
10 QAR

التوصيل


توضح الصورة التالية كيفية توصيل الأسلاك بين حساس استشعار الموجات فوق الصوتية والاردوينو. بمجرد توصيل مستشعر الموجات فوق الصوتية والاردوينو ببعضهما البعض، قم بتوصيل الاردوينو بجهاز الكمبيوتر الخاص بك باستخدام وصلة USB.




التوصيلات من الاردوينو بحساس الاستشعار بالموجات فوق الصوتية:

• ultrasonic sensor VCC pin (+ pin) ← Arduino 5V pin

• ultrasonic sensor Trig pin ← Arduino pin 11

• ultrasonic sensor Echo pin ← Arduino pin 12

• ultrasonic sensor GND pin (- pin)  ←  Arduino GND pin 


برمجة الاردوينو


وظيفة نص البرمجة هذا هي حساب المسافة باستخدام حساس الموجات فوق الصوتية. حيث يرسل موجة وينتظر حتي ترتد. إذا كان هناك جسم أمام المستشعر، فسوف يعكس الموجة، ويمكننا قياس الوقت المستغرق حتى ترتد الموجة مرة أخري. باستخدام هذه المعلومات، يمكننا حساب المسافة باستخدام معادلة تعتمد على سرعة الصوت في الهواء.


نص البرمجة سهل، سيعلمك عن المستشعر وكيف يعمل، مما يسمح لك بالعمل في مشاريع أكثر تعقيدًا.


/*
Voltaat learn (http://learn.voltaat.com)
Link for full tutorial: https://bit.ly/3ib93zT

Tutorial: Measuring distance using the ultrasonic sensor

This is an Arduino sketch that uses an ultrasonic sensor to compute the distance from an object

Connections from the Arduino to the ultrasonic sensor:
• Arduino 5V pin → ultrasonic sensor VCC pin (+ pin)
• Arduino pin 11 → ultrasonic sensor Trig pin
• Arduino pin 12 → ultrasonic sensor Echo pin
• Arduino GND pin → ultrasonic sensor GND pin (- pin)
*/

//Define pin numbers
#define trig 11
#define echo 12
//Defines variables and initialize their values
int distance = 0, t = 0;

//Commands inside void setup run once
void setup(){
  //Start the serial monitor at 9600 baud rate (9600 bits per second)
  Serial.begin(9600);
  //Sets the trig Pin as an output
  pinMode(trig, OUTPUT);
  //Sets the echo Pin as an intput
  pinMode(echo, INPUT);

}

//Commands inside void loop run forever
void loop(){
  //Clears the trig pin
  digitalWrite(trig, LOW);
  //delay for 5 micro seconds
  delayMicroseconds(5);
  //Sets the trig Pin HIGH for 10 micro seconds
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  //Reads the echoPin, returns the sound wave travel time in microseconds
  t = pulseIn(echo, HIGH);
  //Calculating the distance
  distance = (t / 57);
  //Print to serial monitor
  Serial.print("Distance=  ");
  Serial.print(distance);
  Serial.println(" Cm");
  delay(1000);
}

قم باختباره



بعد ان قمت بتوصيل المستشعر بالموجات فوق الصوتية بشكل صحيح إلى الاردوينو كما أوضحنا في قسم التوصيل، بالإضافة إلى تحميل نص البرمجة على لوحة الاردوينو الخاصة بك.


يمكنك الآن الوصول إلى شاشة التواصل وعرض البيانات في Arduino IDE عن طريق النقر فوق رمز العدسة المكبرة في الزاوية اليمنى العليا.





نافذة التواصل وعرض البيانات هي أداه رائعة في Arduino IDE تمكنك من إجراء اتصال بين جهاز الكمبيوتر الخاص بك والاردوينو. تسمح بإرسال أوامر واستقبال البينات المختلفة وتكون مفيدة في عرض البيانات مثل القراءات من الحساسات المختلفة.


كما نرى في الصورة التالية، تعرض شاشة التواصل المسافة بين المستشعر والجسم. يتم تحديث القيمة وطباعتها كل ثانية واحدة بسبب التأخير الذي حددناه في نص البرمجة  الخاص بنا.


يجب عليك أيضًا التأكد من اختيارك لمعدل baud الصحيح (9600) كما هو محدد في البرنامج.


يمكنك التأكد من أن المستشعر تمت معايرته وأن القيمة التي يقدمها صحيحة تمامًا عن طريق مقارنة النتيجة بأحد أدوات القياس، مثل المسطرة. قد تختلف سرعة الصوت قليلاً حسب درجة الحرارة والضغط، لذلك قد تختلف دقة المستشعر عن القيمة الموجودة في المعادلة التي استخدمناها.


المصادر


Arduino Code

Fritzing Wiring file

دروس أخري


In this tutorial, we will use the PIR sensor to send a message to your computer when someone enters your house.



A servo motor is just a simple DC motor with certain modifications. When you look at it, you'll notice that it has several gears and an electronic circuit.


LCDs are used in a range of everyday applications, including the automobile radio and the house air conditioning remote. They display data and let you control it through menus.