מה נלמד כאן
- איך עובד חיישן אולטרסוני
- לחשב מרחק מזמן מעוף
- פקודות
pulseInו-delayMicroseconds - למדוד מרחק בזמן אמת
איך עטלף רואה בחושך
עטלף עף בחשכה מוחלטת ותופס טרף במדויק. איך? הוא צועק בתדר גבוה ומקשיב להד. מהפרש הזמן הוא מחשב מרחק וכיוון.

החיישן האולטרסוני מחקה בדיוק את זה.
הידע שצריך
1. גלים אולטרסוניים
אולטרסאונד הם גלי קול בתדר שמעל גבול השמיעה האנושית — מעל 20,000Hz. האוזן לא קולטת אותם, אבל הם מתפשטים באוויר, במים ובמוצקים בדיוק כמו כל קול.
שלוש התכונות שהופכות אותם לשימושיים: אורך גל קצר, חדירות טובה וכיווניות מצוינת. לכן משתמשים בהם באבחון רפואי, בבדיקות תעשייתיות, במדידת מרחק ובניקוי.
2. המודול

בתוך המודול שני משדרי קרמיקה פיאזואלקטרית: אחד משדר, השני מקבל. זה מה ששתי ה"עיניים" הן.
המפרט:
| פרמטר | ערך |
|---|---|
| מתח עבודה | 5V |
| זרם | 15mA |
| תדר עבודה | 40kHz |
| זווית זיהוי | 15° |
| טווח | 2 ס"מ עד 450 ס"מ |
⚠️ שימו לב לזווית הצרה — 15 מעלות. החיישן "רואה" קונוס צר מאוד מולו. עצם שנמצא בצד פשוט לא קיים מבחינתו.
3. ארבעת הפינים
| הפין | התפקיד |
|---|---|
| VCC | חשמל — ל-5V (לא 3.3V!) |
| Trig | הדק — אומר למודול לשדר |
| Echo | הד — מוציא פולס שאורכו = זמן המעוף |
| GND | אדמה |
4. הפרוטוקול — שלושה שלבים

1. הדק: שולחים ל-Trig פולס גבוה של לפחות 10 מיקרו-שניות.
2. שידור: המודול משדר שמונה פולסים בתדר 40kHz ומתחיל להאזין.
3. הד: כשההד חוזר, המודול מרים את Echo לגבוה — ואורך הפולס הזה שווה בדיוק לזמן המעוף הלוך ושוב.
5. החישוב
מרחק = (זמן × מהירות הקול) ÷ 2
מהירות הקול באוויר: כ-343 מטר לשנייה = 0.0343 ס"מ למיקרו-שנייה.
ולמה מחלקים בשתיים? כי הקול עשה את הדרך פעמיים — הלוך אל המכשול וחזור.
distance = (duration * 0.0343) / 2;
הניסוי
המטרה: להציג מרחק ב-Serial Monitor בזמן אמת.
רשימת רכיבים
| הרכיב | כמות |
|---|---|
| לוח ESP32 | 1 |
| לוח ניסוי 400 נקודות | 1 |
| חיישן אולטרסוני | 1 |
התרשים החשמלי

החיבור

הקוד
const int trigPin = 5;
const int echoPin = 16;
void setup() {
Serial.begin(115200);
pinMode(trigPin, OUTPUT); // ההדק — פלט
pinMode(echoPin, INPUT); // ההד — קלט
}
void loop() {
long duration;
float distance;
// שולחים פולס הדק
digitalWrite(trigPin, LOW);
delayMicroseconds(2); // מנקים את הקו
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // הפולס — 10 מיקרו-שניות
digitalWrite(trigPin, LOW);
// מודדים כמה זמן Echo היה גבוה
duration = pulseIn(echoPin, HIGH);
// ממירים זמן למרחק
distance = (duration * 0.0343) / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
שימו לב לפין אחד פלט ופין אחד קלט — זה החיישן הראשון שדורש את שניהם. אנחנו מדברים אליו דרך Trig ומקשיבים לו דרך Echo.
מה אמור לקרות

הזיזו את היד מול החיישן וצפו במספר משתנה.
הפקודות שלמדנו
pulseIn(pin, value)
מודדת כמה זמן פולס נמשך על פין, במיקרו-שניות. הפרמטר value קובע אם מודדים פולס גבוה או נמוך.
זו פקודה שונה מכל מה שהכרנו: היא לא קוראת ערך רגעי — היא מחכה ומודדת זמן.
delayMicroseconds(time)
השהיה במיקרו-שניות. delay הרגילה עובדת במילי-שניות — כאן צריך דיוק פי 1000.
נסו בעצמכם
- מדדו עצם שטוח (ספר) ועצם רך (כרית). איזו מדידה יציבה יותר, ולמה?
- הזיזו את הספר לצדדים. מאיזו זווית החיישן מפסיק לראות אותו? (זכרו: 15°)
- קרבו את היד עד 1 ס"מ. מה המספר מראה? למה הוא לא אמין?
- שלבו עם שיעור 8: זמזם שמצפצף מהר יותר ככל שמתקרבים — חיישן חניה.
- מדדו את החדר שלכם ובדקו מול סרט מדידה. כמה מדויק החיישן?


