Menu
CoddyTech

חיישן חניה: מרחק

חלק מהיחידה פרויקטים במסלול ה-Arduino של Coddy. שיעור 9 מתוך 24.

במכוניות יש חיישני חניה שמצפצפים מהר יותר ככל שנוסעים לאחור ומתקרבים לקיר. בפרויקט הזה נבנה אחד כזה: חיישן מרחק, שלוש נורות אזהרה, זמזם ומסך, כולם כבר מחוברים. השלב הראשון הוא המדידה.

כמו ביחידה Displays and Sensors, פולס של 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בחנו את עצמכם

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

כל השיעורים ביחידה פרויקטים

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