Menu
CoddyTech
flag Ar iconالعربيةdown icon

مستشعر ركن السيارة: المسافة

جزء من قسم المشاريع في رحلة Arduino على Coddy. الدرس 9 من 24.

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

كما في الشاشات والمستشعرات، تؤدي نبضة مدتها 10 ميكروثوانٍ على TRIG إلى إرسال إشارة، وتُرجع pulseIn(echoPin, HIGH) المدة التي ظل فيها ECHO عند HIGH، بالميكروثواني. يستغرق الصوت نحو 58 ميكروثانية لقطع سنتيمتر واحد والعودة، لذا تكون المسافة بالسنتيمترات هي ذلك الزمن مقسومًا على 58 (وهو ما يعادل duration * 0.034 / 2). اجمع كل ذلك في دالة واحدة:

long readDistance() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duration = pulseIn(echoPin, HIGH);
  return duration / 58;
}

قِس نحو عشر مرات في الثانية: يحتاج المستشعر إلى استراحة قصيرة بين الإشارات، وإلا فقد يُحسب صدى متأخر من الإشارة السابقة على أنه صدى الإشارة الجديدة.

challenge icon

التحدي

سهل

يعمل TRIG في المستشعر على المنفذ 9 وECHO على المنفذ 10:

  • اكتب readDistance(): نبضة التشغيل وpulseIn() والوقت مقسومًا على 58
  • في loop()، اطبع المسافة باستخدام Serial.println() كل 100 ms

اضغط على Run، واسحب المسافة على المستشعر، ثم اضغط على Check.

جرّب بنفسك

// مستشعر المسافة
const int trigPin = 9;
const int echoPin = 10;

// أرسل نبضة واسترجع المسافة بوحدة cm.
long readDistance() {

}

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  // اطبع المسافة، ثم انتظر 100 ms

}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المشاريع

تدرّب بنفسك: Playground لـ Arduino