كود أردوينو وفيديو لمستشعر المسافة بالموجات فوق الصوتية HC-SR04 مع شاشة OLED طراز SSD1306
في هذا الدرس، سنوضح كيفية استخدام حساس المسافة بالموجات فوق الصوتية HC-SR04 بالتزامن مع شاشة OLED من نوع SSD1306 لعرض قياسات المسافة. يتيح لك هذا المشروع قياس المسافات دون الحاجة إلى كمبيوتر، مما يجعله مثالياً لتطبيقات متنوعة، بما في ذلك الروبوتات. بنهاية هذا المشروع، ستحصل على إعداد عملي يعرض قراءات المسافة مباشرةً على شاشة OLED.


مع تقدمنا، سأشرح توصيلات الأسلاك المطلوبة للمكوّنَين وسأقدم شرحًا تفصيليًا لشفرة الأردوينو التي تدمج هذه المكوّنات. سيساعدك ذلك على فهم كيفية قياس المستشعر للمسافة وكيفية إخراج تلك البيانات إلى شاشة OLED. لمزيد من التوضيح، يمكنك الرجوع إلى الفيديو المرتبط بهذا الدرس (في الفيديو عند 00:00).
شرح الأجهزة
المكونات الرئيسية لهذا المشروع هي مستشعر المسافة بالموجات فوق الصوتية HC-SR04 وشاشة OLED من نوع SSD1306. يعمل HC-SR04 باستخدام الموجات فوق الصوتية؛ يصدر نبضة صوتية عبر دبوس الزناد (trigger) ويستمع للصدى عبر دبوس الإيكو (echo). من خلال حساب الزمن الذي تستغرقه الموجة الصوتية للعودة، يمكنه تحديد المسافة إلى الجسم. هذا المستشعر فعال جدًا في القياسات قصيرة المدى، عادةً حتى 400-500 cm.
شاشة OLED SSD1306 هي شاشة ذات واجهة I2C تتيح لك عرض النصوص والرسومات. تتواصل عبر دبوسين: SDA (خط البيانات) وSCL (خط الساعة). في إعدادنا، تتصل هذه الدبابيس بمنافذ محددة على لوحة Arduino، مما يسهل التكامل والتحكم.
تفاصيل ورقة البيانات
| المصنّع | متنوع |
|---|---|
| رقم القطعة | HC-SR04 |
| جهد المنطق/المدخلات والمخرجات | 5 فولت |
| جهد التغذية | 5 فولت |
| تيار الإخراج (لكل قناة) | 15 ميلي أمبير |
| التيار الأقصى (لكل قناة) | 20 mA |
| إرشادات تردد PWM | غير متاح |
| عتبات منطقية للإدخال | من 0.3*Vcc إلى 0.7*Vcc |
| هبوط الجهد / RDS(on)/ تشبع | لا ينطبق |
| الحدود الحرارية | 0-70 °م |
| حزمة | وحدة ذات 4 دبابيس |
| ملاحظات / متغيرات | الوحدة القياسية |
- تأكد من وجود مصدر طاقة مناسب (5 V) لكلا المكوّنين.
- استخدم مقاومات سحب للأعلى (pull-up) إذا لزم الأمر للاتصال عبر I2C.
- اجعل خطوط الزناد والصدى قصيرة لتجنب التداخل.
- تحقق من اتجاه المستشعر فوق الصوتي للحصول على قراءات دقيقة.
- استخدم سطحًا ثابتًا للشاشة لتجنب الاهتزازات الميكانيكية.
تعليمات التوصيل

للاتصال بمستشعر الموجات فوق الصوتية HC-SR04، ابدأ بتوصيل دبوس VCC (عادةً الأحمر) إلى دبوس 5V على لوحة الأردوينو. بعد ذلك، قم بتوصيل دبوس GND (غالبًا الأسود أو الأصفر) إلى أحد دبابيس GND في الأردوينو. يجب توصيل دبوس التريغر (غالبًا الأزرق) بالدبوس الرقمي 12 على الأردوينو، بينما يجب توصيل دبوس الإيكو (عادةً الأخضر) بالدبوس الرقمي 11.
بالنسبة لشاشة OLED من طراز SSD1306، وصل دبوس VCC بدبوس 5V في الأردوينو ودبوس GND بالأرضي (GND). يجب توصيل دبوس SCL بالدبوس A5 ودبوس SDA بالدبوس A4 في الأردوينو. إذا كنت تستخدم طراز أردوينو مختلف يحتوي على دبابيس I2C مخصصة، فوصّل الشاشة مباشرة بتلك الدبابيس بدلاً من ذلك.
أمثلة على الشيفرة وشرح خطوة بخطوة
في دالة الإعداد، نقوم بتهيئة العرض والاتصال التسلسلي. يوضح المقتطف التالي كيفية تهيئة العرض:
void setup() {
Serial.begin(9600);// set serial monitor with 9600 baud
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D
}هنا، تم تهيئة الشاشة باستخدام عنوان I2C، مما يتيح لها التواصل مع الأردوينو. كما تم إعداد المراقب التسلسلي لطباعة قيم المسافة.
في الحلقة الرئيسية، نمسح شاشة العرض، نقيس المسافة، ونطبعها. يوضح مقتطف الشيفرة التالي كيف نتعامل مع قياس المسافة:
void loop() {
display.clearDisplay();
String distance = String(sonar.ping_cm());// get distance and convert it to string for display
robojaxText(distance +"cm", 3, 20, 3, false);
display.display();
delay(50); // Wait 50ms between pings
}تقوم هذه الحلقة بقياس المسافة باستمرار وتُحدّث شاشة العرض بالقراءة الحالية. تُستخدم دالة robojaxText لعرض النص على شاشة OLED.
عرض توضيحي / ما الذي تتوقعه
عند اكتمال الإعداد وتحميل الشيفرة، يجب أن ترى المسافة معروضة على شاشة OLED بالسنتيمترات. عند تحريك جسم أقرب أو أبعد من المستشعر، ينبغي أن تتغير القيمة المعروضة وفقًا لذلك. تأكد من أن المستشعر موجه بشكل صحيح وغير معوّق (في الفيديو عند 02:30).
طوابع زمنية للفيديو
- 00:00- مقدمة عن المشروع
- 01:15- تعليمات الأسلاك
- 02:30- شرح الكود
- 04:00- عرض المستشعر
الموارد والمراجع
-
خارجيمكتبة HC-SR04 فوق الصوتية من الموقع الرسمي لأردوينوplayground.arduino.cc
ملفات📁
لا توجد ملفات متاحة.