Menu
CoddyTech

זמן ההד של אולטרסוניק

חלק מהיחידה צגים וחיישנים במסלול ה-Arduino של Coddy. שיעור 18 מתוך 24.

ה-HC-SR04 מודד מרחק כמו עטלף: הוא משמיע נקישה בתדר גבוה מכדי שנוכל לשמוע ומודד את זמן ההד. ככל שהעצם רחוק יותר, כך לוקח להד יותר זמן לחזור.

יש לו שני פיני אות. פעימת HIGH קצרה על TRIG מורה לו להשמיע נקישה. לאחר מכן ECHO עובר למצב HIGH ונשאר בו עד שההד חוזר, ולכן משך פעימת ה-HIGH הוא הזמן שלקח לקול לעבור.

delayMicroseconds() ממתינה מיליוניות השנייה, זמן קצר מספיק לפעימת ההפעלה שאורכה 10 מיקרו־שניות. pulseIn(pin, HIGH) ממתינה עד שהפין יעבור למצב HIGH ומחזירה כמה מיקרו־שניות הוא נשאר במצב HIGH. אם לא מגיעה פעימה בתוך שנייה, היא מפסיקה ומחזירה 0.

digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);     // פולס ההפעלה
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);

הד יכול להימשך עד 38000 מיקרו־שניות, יותר ממה ש-int יכול להכיל, לכן שמרו אותו ב-long.

challenge icon

אתגר

בינוני

TRIG נמצא בפין 9 ו-ECHO בפין 10. בתוך loop():

  • שלחו פולס HIGH באורך 10 מיקרו־שניות ב-TRIG
  • מדדו את ההד באמצעות pulseIn(echoPin, HIGH)
  • הדפיסו את הזמן באמצעות Serial.println()

לחצו על Run, הזיזו את העצם קרוב יותר ורחוק יותר על הלוח, ואז לחצו על Check.

נסו בעצמכם

const int trigPin = 9;
const int echoPin = 10;

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

void loop() {
  // שלח פולס של 10 מיקרו־שניות ב-TRIG
  // מדוד את משך ההד באמצעות pulseIn() והדפס אותו
  delay(200);
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה צגים וחיישנים

תרגלו בעצמכם: Arduino אונליין