مضى على الشبكة و يوم من العطاء.

[ Sensors ] شرح حساس Ultrasonic

أبو المعاليأبو المعالي is verified member.

{| مشرف ركن الهندسة |}
.:: الإدارة العامة ::.
.:: طاقم المشرفين ::.

السمعة:

بسم_الله_الرحمن_الرحيم.gif

السلام عليكم جميعًا
بعد أن تحدثنا عن حساس RSWL-0516 الي يقوم بإرسال موجات ماكيرويف ب 3.18GHz بكل الإتجاهات (360 درجة), الآن موعدنا مع حساس آخر ألا و هو Ultrasonic (حساس الموجات فوق الصوتية)

1733846690477.webp

و هو قائم على مبدأ شبيه بالحساس السابق و هو إرسال الموجات خلافًا لحساس RSWL-0516 الذي يرسل موجات مايكرويف فإن حساس ال Ultrasonic يرسل موجات فوق صوتية و يستقبلها

ترى في الصورة أن للحساس جزئين خارجين يمكنك تشبيههما للعينيين
أحدهما لإرسال الموجات و الآخر لإستقبالها (في حال وجود جسم يعكس الإشارة)
1733846614240.webp

و ترى أيضًا 4 أطراف للحساس:

1733846889432.webp


VCC : و هو مصدر الجهد الذي يتم توصيله للحساس (5v و يوجد إصدارات تعمل على 3.3v)
GND : و هو الأرضي (0v)
Trig : هو الجزء الذي يرسل نبضة كهربائية مدتها 10us تخبر الحساس أن يبدأ العمل و إرسال الموجات
Echo : هو الجزء الذي يرسل إشارة إلكترونية بعد أن يستقبل الحساس الإشارة المنعكسة
🔰 فما العملية التي تحدث ؟

بداية يتم توصيل الحساس بالطاقة من خلال 5v مع VCC و 0v مع GND . ثم عندما أعطي إشارة كهربائية على طرف ال Trig مدتها 10 مايكرو ثانية يجعل عملية إرسال الموجات تعمل, فيقوم الحساس من خلال الجزء المرسل (Transmitter) بإرسال 8 موجات فوق صوتية بتردد 40KHz و سرعة الصوت (حوالي 340m/s)
إن اصدمت الموجة بعائق فإنها تنعكس و تعود للحساس و فور عودتها للحساس واستقبالها من المستقبل (Receiver), فإن الطرف Echo يقوم بإخراج إشارة كهربائية تعتمد مدتها على الزمن المستغرق بين عملية الإرسال و الإستقبال. فيقوم الحساس بحساب الزمن الكلي من لحظة الإرسال و بما أن السرعة ثابتة ومعلومة فسنجد المسافة.

و يمكننا باستخدام الأردوينو أو أي وحدة معالجة أخرى أن نحلل تلك الإشارة الخارجة من الطرف Echo لنعرض المسافة أو أن نقوم بأي شيء آخر بناء على الكود البرمجي أو السيركت التي صممناها

ملاحظة :
  • المرسل (Transmitter) : هو مكبر صوت موجات فوق صوتية, هدفه تكبير الموجات الخارجة من السيركت داخل الحساس​
  • المستقبل (Receiver) : و هو مايكروفون موجات فوق صوتية, هدفه إستقبال الموجات المنعكسة من على الأجسام​
🔰 خصائص ال Ultrasonic
  1. جهد التشغيل (الجهد الذي يحتاجه الحساس ليعمل) : 5v DC
  2. تيار التشغيل (التيار الذي يحتاجه الحساس ليعمل) : 15mA
  3. تردد الموجات : 40kHz
  4. مسافة العمل (المسافة التي يمكن للحساس العمل بها) : من 400cm - 2cm
  5. الزاوية التي يعمل بها : 15 درجة
نرى الفرق بينه و بين RSWL-0516 خصوصًا في الزاوية التي يعمل بها

كملاحظة بسيطة لتتمكن مستقبلًا من التمييز بين الحساسات, فإن حساس ال Ultrasonic يرسل إشارة في حالة مشاهدة عائق أمامه أكان متحرك أم ثابت أكان حي و يخرج أشعة تحت الحمراء أم لا. أما حساس ال RSWL-0516 يخرج إشارة في حالة مشاهدة جسم يتحرك أكان حي أو غير حي
🔰 تطبيق نظري

سنتحدث عن تطبيق بسيط للحساس:
C++:
/*
   Ultrasonic Sensor HC-SR04 and Arduino Tutorial with LED output
 
   Modified to blink a red LED on pin 12 when the distance is less than 10 cm
 */
 
 // defines pins numbers
 const int trigPin = 9;
 const int echoPin = 10;
 const int ledPin = 12; // منفذ الليد الأحمر
 
 // defines variables
 long duration;
 int distance;
 bool ledState = false; // حالة الليد
 
 void setup() {
   pinMode(trigPin, OUTPUT); // ضبط منفذ Trig كإخراج
   pinMode(echoPin, INPUT);  // ضبط منفذ Echo كإدخال
   pinMode(ledPin, OUTPUT);  // ضبط منفذ الليد الأحمر كإخراج
   Serial.begin(9600);       // بدء الاتصال التسلسلي بسرعة 9600
 }
 
 void loop() {
   // Clears the trigPin
   digitalWrite(trigPin, LOW);
   delayMicroseconds(2);
 
   // Sends a 10-microsecond pulse to trigPin
   digitalWrite(trigPin, HIGH);
   delayMicroseconds(10);
   digitalWrite(trigPin, LOW);
 
   // Reads the echoPin, returns the sound wave travel time in microseconds
   duration = pulseIn(echoPin, HIGH);
 
   // Calculate the distance
   distance = duration * 0.034 / 2;
 
   // Prints the distance to the Serial Monitor
   Serial.print("Distance: ");
   Serial.println(distance);
 
   // Check if the distance is valid and less than 10 cm
   if (distance > 0 && distance < 10 && !ledState) {
     // Turn on the LED blinking for 3 seconds
     ledState = true; // Change state to prevent repeating
     unsigned long startTime = millis(); // Store the starting time
     while (millis() - startTime < 3000) { // Run for 3 seconds
       digitalWrite(ledPin, HIGH); // Turn LED on
       delay(250);                 // Wait for 250 ms
       digitalWrite(ledPin, LOW);  // Turn LED off
       delay(250);                 // Wait for 250 ms
     }
     ledState = false; // Reset state after blinking
   }
 }
1733851417525.webp

المشروع على Thinkercad :

ففكرة المشروع تتحدث عن عند رصد الحساس إشارة وجود جسم في نطاق 10cm أما الحساس سيجعل الأردوينو يرسل إشارة مترددة لل led الأحمر
تطبيق على المشروع



استنتاج : فترى في الفيديو أن الحساس ليس ذا حساسية عالية للأجسام التي تتحرك بسرعة


و إلى هنا أتمنى أنني قد شرحت لك حساس الموجات فوق الصوتية

إن أصبت فهو من الله و إن اخطأت فهو من نفسي و الشيطان
و السلام عليكم و رحمة الله و بركاته
 
التعديل الأخير بواسطة المشرف:

آخر المشاركات

فانوس

رمضان
عودة
أعلى