أجهزة الاستشعار بالموجات فوق الصوتية هي عنصر أساسي في مجالات الروبوتات، الأتمتة، ومختلف مشاريع الإلكترونيات نظرًا لقدرتها على قياس المسافات دون تلامس. سيشرح هذا المقال كيفية عمل أجهزة الاستشعار بالموجات فوق الصوتية وسيوجهك خلال إعداد واحدة باستخدام الأردوينو لإنشاء نظام أساسي لقياس المسافة.
فهم المستشعرات فوق الصوتية
يعمل جهاز الاستشعار بالموجات فوق الصوتية عن طريق إرسال موجة صوتية فوق صوتية (بتردد أعلى مما يمكن للإنسان سماعه) إلى جسم ما ثم الاستماع لصدى تلك الموجة. من خلال حساب الوقت بين إرسال الإشارة واستقبال الصدى، يمكن للمستشعر تحديد المسافة إلى الجسم. هذه الطريقة مشابهة لكيفية تنقل الخفافيش في الظلام.
مبدأ الاستشعار بالموجات فوق الصوتية
عادةً ما يتكون جهاز الاستشعار بالموجات فوق الصوتية من مكونين رئيسيين: مرسل ومستقبل. يصدر المرسل موجات صوتية عالية التردد، التي تنتشر عبر الهواء حتى تصطدم بجسم ما. عندما تصل هذه الموجات الصوتية إلى الجسم، تنعكس مرة أخرى نحو الجهاز، حيث يستشعرها المستقبل على شكل صدى.
- انتقال الموجات الصوتية: يصدر الجانب المرسل من الجهاز نبضة صوتية، وهي موجة صوتية بتردد يكون عمومًا فوق نطاق السمع البشري، عادةً حوالي 40 كيلوهرتز.
- انعكاس الموجات الصوتية: عندما تصطدم الموجة الصوتية المُصدرة بجسم، ترتد مرة أخرى نحو الجهاز. يُشار غالبًا إلى هذه الإشارة المُعادة بالصدى. يمكن أن تتأثر طبيعة الموجة الصوتية المنعكسة بشكل وحجم ومادة الجسم الذي تصطدم به.
- استقبال الصدى: يقوم جزء المستقبل في الجهاز بكشف هذا الصدى. من خلال تحديد الوقت بدقة الذي يستغرقه الصدى للعودة، يمكن للجهاز حساب المسافة إلى الجسم. يعتمد هذا الحساب على سرعة الصوت في الهواء، والتي تبلغ تقريبًا 340 مترًا في الثانية في الظروف القياسية.
- حساب المسافة: تُحسب المسافة إلى الجسم عادةً بقياس الفترة الزمنية بين لحظة إصدار الموجة الصوتية ولحظة استقبال الصدى. باستخدام الصيغة
المسافة = 1/2 × الزمن × سرعة الصوت، يحسب الجهاز المسافة. يُستخدم معامل 1/2 لأن الموجة الصوتية تسافر إلى الجسم ثم تعود إلى الجهاز، وبالتالي تغطي المسافة مرتين.
أكثر أجهزة الاستشعار بالموجات فوق الصوتية شيوعًا المستخدمة في مشاريع الـ DIY هو HC-SR04. يقدم هذا الجهاز استشعار ممتاز للمسافات، بتكلفة منخفضة ومتوفر بشكل واسع. يمكن لجهاز HC-SR04 قياس المسافات من 2 سم إلى 400 سم بدقة تصل إلى 3 مم، مما يجعله مناسبًا لمجموعة واسعة من التطبيقات.
المكونات المطلوبة
أردوينو أونو: لوحة المتحكم الدقيق التي تعالج البيانات من المستشعر فوق الصوتي.
مستشعر الموجات فوق الصوتية HC-SR04: سيكتشف هذا المستشعر المسافة.
أسلاك توصيل: تستخدم لتوصيل المستشعر بـ Arduino.
اللوحة (Breadboard): لجعل التوصيلات أسهل وأكثر تنظيماً.
التكوين الإلكتروني والتوصيلات الكهربائية
وصِّل HC-SR04 بـ Arduino
وصِّل دبوس VCC الخاص ب HC-SR04 مع خرج 5 فولت من Arduino.
وصِّل دبوس GND إلى أحد دبابيس GND في Arduino.
يجب توصيل دبوس Trig بدبوس إدخال/إخراج رقمي على Arduino، مثل D2.
يجب توصيل دبوس الصدى Echo بدبوس إدخال/إخراج رقمي آخر، على سبيل المثال D3
برمجة الأردوينو
بمجرد توصيل كل شيء، ستحتاج إلى برمجة الأردوينو لقراءة الإشارات من جهاز الاستشعار بالموجات فوق الصوتية:
/** * Author: Omar Draidrya * Date: 2024/05/07 * This code measures distance using an ultrasonic sensor and outputs the result via serial communication. */ #define TRIG_PIN 9 // Trigger pin of the ultrasonic sensor #define ECHO_PIN 10 // Echo pin of the ultrasonic sensor void setup() { pinMode(TRIG_PIN, OUTPUT); // Set the TRIG_PIN as an Output pinMode(ECHO_PIN, INPUT); // Set the ECHO_PIN as an Input Serial.begin(9600); // Start the serial communication } void loop() { long duration, distance; digitalWrite(TRIG_PIN, LOW); // Clear the TRIG_PIN delayMicroseconds(2); // Wait for 2 microseconds digitalWrite(TRIG_PIN, HIGH); // Set the TRIG_PIN high delayMicroseconds(10); // Wait for 10 microseconds digitalWrite(TRIG_PIN, LOW); // Set the TRIG_PIN low duration = pulseIn(ECHO_PIN, HIGH); // Read the ECHO_PIN and return the duration of the pulse distance = duration * 0.034 / 2; // Calculate the distance in cm Serial.print("Distance (cm): "); // Print "Distance (cm): " to the serial monitor Serial.println(distance); // Print the distance to the serial monitor delay(1000); // Wait for 1 second before next measurement }
يقوم هذا البرنامج النصي بإعداد الأردوينو لتفعيل جهاز الاستشعار بالموجات فوق الصوتية ثم الاستماع للصدى. تقيس الدالة pulseIn() طول النبضة الواردة، والتي يتم تحويلها بعد ذلك إلى مسافة باستخدام سرعة الصوت.
توصيل شاشة عرض LCD من نوع HD44780 بحجم 16x2 مع محول تسلسلي I2C إلى أردوينو لقياس المسافة بالموجات فوق الصوتية
عرض قياسات المسافة من جهاز استشعار بالموجات فوق الصوتية على شاشة LCD يعزز سهولة الاستخدام في مشروع الأردوينو الخاص بك. في هذا الدليل، سنقوم بتوصيل شاشة عرض LCD من نوع HD44780 بحجم 16×2 مزودة بمحول تسلسلي I2C إلى أردوينو، بالإضافة إلى جهاز استشعار بالموجات فوق الصوتية HC-SR04. يبسط هذا الإعداد عملية الأسلاك والبرمجة، مما يتيح عرض قياسات المسافة في الوقت الفعلي.
إعداد الأجهزة
لتوصيل شاشة LCD الخاصة بك مع محول I2C وجهاز استشعار HC-SR04 بالموجات فوق الصوتية إلى الأردوينو، اتبع هذه الاتصالات:
- شاشة LCD مع محول I2C:
VCC إلى Arduino 5V: لتزويد الشاشة بالطاقة.
GND إلى Arduino GND: أرضي مشترك.
SDA إلى Arduino A4 (SDA): خط البيانات للتواصل عبر I2C.
SCL إلى Arduino A5 (SCL): خط الساعة للتواصل عبر I2C. - جهاز استشعار HC-SR04 بالموجات فوق الصوتية:
VCC إلى Arduino 5V: لتزويد الجهاز بالطاقة.
GND إلى Arduino GND: أرضي مشترك.
TRIG إلى Arduino الدبوس 9: دبوس التفعيل لإرسال النبضة.
ECHO إلى Arduino الدبوس 10: دبوس الصدى لاستقبال النبضة.
تأكد من أن جميع الاتصالات آمنة على لوحة التجارب أو من خلال الأسلاك المباشرة قبل المتابعة.
كود الأردوينو
البرنامج النصي التالي لأردوينو يقوم بتهيئة كل من جهاز الاستشعار بالموجات فوق الصوتية وشاشة العرض LCD، ثم يقيس المسافة بشكل مستمر ويعرضها على الشاشة. يستخدم البرنامج مكتبة NewPing لجهاز الاستشعار بالموجات فوق الصوتية ومكتبة LiquidCrystal_I2C لشاشة LCD، وكلاهما يحتاج إلى التثبيت عبر مدير مكتبات أردوينو قبل تحميل البرنامج النصي.
/** * Author: Omar Draidrya * Date: 2024/05/07 * This code measures distance using an ultrasonic sensor and displays the result on an LCD. */ #include <LiquidCrystal_I2C.h> #include <NewPing.h> #define TRIGGER_PIN 9 // Trigger pin of the ultrasonic sensor #define ECHO_PIN 10 // Echo pin of the ultrasonic sensor #define MAX_DISTANCE 200 // Maximum distance for ping (in centimeters) LiquidCrystal_I2C lcd(0x27, 16, 2); // Set the LCD address to 0x27 for a 16x2 display NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Initialize the ultrasonic sensor void setup() { lcd.init(); // Initialize the LCD lcd.backlight(); // Turn on the backlight lcd.clear(); // Clear the display lcd.setCursor(0, 0); // Set the cursor to the first column, first row lcd.print("Distance:"); // Print static text } void loop() { delay(50); // Delay between measurements int distance = sonar.ping_cm();// Get distance in cm lcd.setCursor(0, 1); // Move cursor to the second row if (distance > 0) { // Check if the distance is greater than zero lcd.print(distance); // Display the distance lcd.print(" cm "); // Print units and clear extra characters } else { lcd.print("Out of range "); // Display out of range } }
يعرض هذا الإعداد قياسات المسافة بكفاءة على شاشة LCD، مما يوفر ناتجًا واضحًا وسهل الاستخدام لمشروع قياس المسافة بالموجات فوق الصوتية. يقلل دمج محول I2C مع الشاشة من تعقيدات الأسلاك ويوفر أطراف الإدخال/الإخراج الثمينة على الأردوينو، مما يجعله مثاليًا للمشاريع التي تحتوي على عدة أجهزة استشعار أو مدخلات. هذا يجعله مثاليًا للأغراض التعليمية، مشاريع الـ DIY، أو أي تطبيق يحتاج إلى تغذية راجعة للمسافة.
التطبيقات والمزيد من الأبحاث
باستخدام هذا الإعداد، يمكنك دمج المستشعر فوق الصوتي في مجموعة متنوعة من المشاريع، مثل
الروبوتات: تجنب العقبات أو التنقل في المسارات.
الأنظمة الأمنية: الكشف عن الحركة أو الاختراقات في منطقة محددة.
أدوات القياس الآلي: للصناعات التي تتطلب قياسات مكانية دقيقة.
الخاتمة
دمج جهاز استشعار بالموجات فوق الصوتية مع الأردوينو يفتح آفاقًا واسعة لإنشاء مشاريع تفاعلية واستجابية. سواء كنت تبني روبوتًا ذكيًا، تصمم حساسًا للمواقف، أو تجرب تقنيات استشعار جديدة، يوفر HC-SR04 خيارًا موثوقًا وبسيطًا لقياس المسافة والاستشعار البيئي. استمتع باستكشاف إمكانيات التكنولوجيا فوق الصوتية في مشاريعك!