كود أردوينو وفيديو لمستشعر المسافة بالموجات فوق الصوتية HC-SR04 مع شاشة OLED طراز SSD1306

كود أردوينو وفيديو لمستشعر المسافة بالموجات فوق الصوتية HC-SR04 مع شاشة OLED طراز SSD1306

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

How HC-SR04 ulrasonic sensor work
SSD1306 OLED display

مع تقدمنا، سأشرح توصيلات الأسلاك المطلوبة للمكوّنَين وسأقدم شرحًا تفصيليًا لشفرة الأردوينو التي تدمج هذه المكوّنات. سيساعدك ذلك على فهم كيفية قياس المستشعر للمسافة وكيفية إخراج تلك البيانات إلى شاشة 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.
  • اجعل خطوط الزناد والصدى قصيرة لتجنب التداخل.
  • تحقق من اتجاه المستشعر فوق الصوتي للحصول على قراءات دقيقة.
  • استخدم سطحًا ثابتًا للشاشة لتجنب الاهتزازات الميكانيكية.

تعليمات التوصيل

Arduino wiring for HC-SR04 ultrasonic SSD1306 128x64 OLED
Arduino wiring for HC-SR04 ultrasonic SSD1306 128x64 OLED

للاتصال بمستشعر الموجات فوق الصوتية 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 ulrasonic sensor
HC-SR04 ulrasonic sensor
How HC-SR04 ulrasonic sensor work
How HC-SR04 ulrasonic sensor work
Arduino wiring for HC-SR04 ultrasonic SSD1306 128x64 OLED
Arduino wiring for HC-SR04 ultrasonic SSD1306 128x64 OLED
SSD1306 OLED display
SSD1306 OLED display
SSD1306 OLED display-dimensions
SSD1306 OLED display-dimensions
SSD1306_128x64_OLDE-4
SSD1306_128x64_OLDE-4
SSD1306 OLED display-back
SSD1306 OLED display-back
44-This is the Arduino code for an HC-SR04 ultrasonic distance sensor with an SSD1306 display.
اللغة: C++
تم النسخ!

الموارد والمراجع

ملفات📁

لا توجد ملفات متاحة.