تحويل زمن الصدى إلى سنتيمترات
جزء من قسم الشاشات والمستشعرات في رحلة Arduino على Coddy. الدرس 19 من 24.
ينتقل الصوت نحو 0.034 سنتيمترًا كل ميكروثانية. اضرب زمن الصدى في هذه القيمة لتحصل على المسافة التي قطعها الصوت.
لكن الصوت انتقل إلى الجسم وعاد، لذا فالجسم يبعد نصف تلك المسافة:
float cm = duration * 0.034 / 2;على بُعد متر واحد، يستغرق الصدى نحو 5800 ميكروثانية: حاصل ضرب 5800 في 0.034 هو 197 سم ذهابًا وإيابًا، لذا يبعد الجسم 98.6 سم. اكتب 0.034 مع الفاصلة العشرية: عندها يحتفظ الناتج بأرقامه العشرية.
توقّع وجود خطأ بمقدار سنتيمتر أو اثنين: فتغيّر درجة حرارة الهواء سرعة الصوت، كما أن قراءة هذا المستشعر أقل قليلًا من المسافة الفعلية.
التحدي
سهليطبع المخطط زمن الصدى. اطبع المسافة بدلًا من ذلك:
- حوّل الزمن إلى سنتيمترات: اضرب في 0.034، ثم اقسم على 2
- اطبع السنتيمترات بدلًا من الزمن
اضغط على تشغيل، وحرّك الجسم، ثم تحقّق.
جرّب بنفسك
const int trigPin = 9;
const int echoPin = 10;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
// حوّل زمن الصدى إلى سنتيمترات واطبع النتيجة
Serial.println(duration);
delay(200);
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الشاشات والمستشعرات
1شاشات العرض ذات الأجزاء السبعة
شاشة العرض ذات الأجزاء السبعةأنماط الأرقام في البايتاتالعدّ على الشاشةالعدّ التنازلي حتى الصفرمحاكي رمي النرد4المستشعرات
زمن صدى الموجات فوق الصوتيةتحويل زمن الصدى إلى سنتيمتراتدرجة حرارة الثرمستورالتحويل من سلسيوس إلى فهرنهايتشريط مستوى الضوءالمسافة على شاشة LCDمقياس حرارة LCDتدرّب بنفسك: Playground لـ Arduino