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

تحويل زمن الصدى إلى سنتيمترات

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

ينتقل الصوت نحو 0.034 سنتيمترًا كل ميكروثانية. اضرب زمن الصدى في هذه القيمة لتحصل على المسافة التي قطعها الصوت.

لكن الصوت انتقل إلى الجسم وعاد، لذا فالجسم يبعد نصف تلك المسافة:

float cm = duration * 0.034 / 2;

على بُعد متر واحد، يستغرق الصدى نحو 5800 ميكروثانية: حاصل ضرب 5800 في 0.034 هو 197 سم ذهابًا وإيابًا، لذا يبعد الجسم 98.6 سم. اكتب 0.034 مع الفاصلة العشرية: عندها يحتفظ الناتج بأرقامه العشرية.

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

challenge icon

التحدي

سهل

يطبع المخطط زمن الصدى. اطبع المسافة بدلًا من ذلك:

  • حوّل الزمن إلى سنتيمترات: اضرب في 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);
}
quiz iconاختبر نفسك

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

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

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