مستشعر ركن السيارة: المسافة
جزء من قسم المشاريع في رحلة 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;
}قِس نحو عشر مرات في الثانية: يحتاج المستشعر إلى استراحة قصيرة بين الإشارات، وإلا فقد يُحسب صدى متأخر من الإشارة السابقة على أنه صدى الإشارة الجديدة.
التحدي
سهليعمل 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
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المشاريع
3مستشعر ركن السيارة
مستشعر ركن السيارة: المسافةمستشعر ركن السيارة: الأضواءمستشعر ركن السيارة: التنبيهات الصوتيةمستشعر ركن السيارة: الشاشةتدرّب بنفسك: Playground لـ Arduino