חיישן מרחק אולטרסוני – HC-SR04

 חיישן מרחק אולטרסוני – HC-SR04

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

נכסה את הנושאים הבאים:

1. מבוא לחיישן HC-SR04 ועקרונות הפעולה שלו
2. מבנה פיזי של החיישן
3. מיקום וכיוון החיישן
4. מפרט טכני ומאפיינים עיקריים
5. הוראות חיווט וחיבור לארדואינו
6. קוד לדוגמה לקריאת מרחק
7. רעיונות לפרויקטים מעניינים
8. טיפים וזהירות

מבוא לחיישן מרחק HC-SR04

חיישן HC-SR04 הוא חיישן מרחק אולטרסוני פופולרי, זול וקל לשימוש. החיישן מסוגל למדוד מרחקים בטווח של 2 עד 400 ס”מ ללא מגע, מה שהופך אותו לפתרון אידיאלי למגוון רחב של יישומים כגון רובוטיקה, מערכות חניה, מכשירי מדידה ועוד.

מפרט טכני

מתח עבודה: 5V DC
צריכת זרם: 15mA
תדר עבודה: 40kHz
טווח מדידה: 2cm עד 400cm 
רזולוציית מדידה: 0.3cm
זווית מדידה אפקטיבית: 15 מעלות
ממדים: 45mm × 20mm × 15mm

עקרון הפעולה – הסבר מעמיק

החיישן פועל על עיקרון הסונר, בדומה למערכות ניווט של דולפינים או לוויתנים. הוא משדר פולסים של גלי קול בתדר גבוה מאוד (40kHz), הרבה מעל לטווח השמיעה האנושי (20Hz-20kHz), ומחכה שהפולסים יוחזרו כהד לאחר פגיעה במכשול.

כאשר אנו שולחים אות HIGH קצר (10 מיקרו-שניות) לפין ה-TRIG של החיישן, המתמר המשדר יוצר סדרה של 8 פולסים אולטרסוניים בתדר 40kHz.

גלי הקול האלה נעים דרך האוויר במהירות של כ-343 מטר לשנייה (במהירות הקול הסטנדרטית בטמפרטורת החדר).

כאשר הגלים האולטרסוניים פוגעים במכשול, הם מוחזרים כהד חזרה לחיישן. המתמר המקלט של HC-SR04 קולט את ההד ומייצר אות HIGH בפין ה-ECHO.

משך הזמן שבו פין ה-ECHO נשאר HIGH תלוי במרחק שעברו הגלים האולטרסוניים.

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

הנוסחה לחישוב המרחק היא:

מרחק = (משך זמן ההד / 2) × מהירות הקול

אנו מחלקים את משך הזמן ב-2 מכיוון שהגלים עוברים את המרחק פעמיים – פעם אחת מהחיישן למכשול, ופעם נוספת חזרה מהמכשול לחיישן.

מבנה פיזי של החיישן

החיישן מורכב ממספר רכיבים עיקריים:
1. מתמר משדר (Transmitter): אחראי על יצירת גלי הקול האולטרסוניים. הוא עשוי מחומר פייזואלקטרי, כגון קרמיקה או גביש, אשר מתכווץ ומתרחב בתגובה למתח חשמלי. כאשר אנו מפעילים אות במתח גבוה בתדר 40kHz על המתמר, הוא רוטט ויוצר את הגלים האולטרסוניים.

2. מתמר מקלט (Receiver): עובד בעיקרון ההפוך – הוא מגיב לגלי קול אולטרסוניים על ידי יצירת מתח חשמלי. כאשר ההד של הפולס האולטרסוני פוגע במקלט, הוא גורם למתמר לרטוט, מה שמייצר אות חשמלי קטן.

3. מעגל בקרה: נמצא מאחורי שני המתמרים ומטרתו לתפעל את החיישן ולעבד את האותות. הוא כולל מגברים להגברת האות החשמלי החלש מהמקלט, מחוללי אותות ליצירת האות בתדר 40kHz עבור המשדר, מעגלי תזמון לתזמון פולסי השידור ומדידת משך ההד, וממשק פלט לתקשורת עם הארדואינו דרך פיני ה-TRIG וה-ECHO.

מיקום וכיוון החיישן

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

המתמרים של HC-SR04 מתוכננים לפעול הכי טוב כאשר הגלים האולטרסוניים פוגעים במשטח בזווית של 90 מעלות (כלומר, הגלים מגיעים ישירות אל המשטח וחוזרים ישירות לחיישן). ככל שזווית הפגיעה מתרחקת מ-90 מעלות, פחות אנרגיה קולית מוחזרת לחיישן ודיוק המדידה עלול לרדת. עם זאת, HC-SR04 יכול לסבול סטייה מסוימת מהזווית הא,ידיאלית בטווח של 15 מעלות מהמרכז.

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

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

חיבור לארדואינו אונו 

חיישן HC-SR04 מכיל 4 פינים:

VCC: מתח הזנה 5V
TRIG: פין הדק (input) להפעלת פולס השידור
ECHO: פין פלט (output) המספק פולס בהתאם לזמן הקבלה של ההד
GND: הארקה

HC-SR04

Arduino

VCC

5V

TRIG

3 דיגיטלי

ECHO

2 דיגיטלי 

GND

GND

 

קוד לדוגמה – הסבר מפורט

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

				
					#define TRIG_PIN 3
#define ECHO_PIN 2

void setup()
{
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

void loop()
{
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  long duration = pulseIn(ECHO_PIN, HIGH);
  int distance = duration * 0.034 / 2;

  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

  delay(500);
}
				
			

הסבר הקוד באופן מפורט 

בקטע הקוד הראשון, אנו מגדירים את הפינים שישמשו לתקשורת עם החיישן – פין 12 יהיה פין ה-TRIG (פלט) ופין 11 יהיה פין ה-ECHO (קלט).

בפונקציית setup אנו מאתחלים תקשורת טורית ומגדירים את מצבי הפינים בהתאם.

בפונקציית loop אנו מתחילים על ידי שליחת פולס בן 10 מיקרו-שניות לפין ה-TRIG. כדי לעשות זאת, אנו קודם מוודאים שהפין נמצא במצב LOW למשך 2 מיקרו-שניות, ואז מעבירים אותו למצב HIGH למשך 10 מיקרו-שניות, לפני שמחזירים אותו חזרה ל-LOW.

הפונקציה pulseIn ממתינה עד שהפין שצוין (במקרה שלנו, ECHO_PIN) עובר למצב HIGH, ואז מודדת את משך הזמן עד שהפין חוזר ל-LOW. בעצם, פונקציה זו מודדת את משך ההד – הזמן שלקח לגל האולטרסוני לעבור מהחיישן למכשול וחזרה. הערך המוחזר הוא באחידות מיקרו-שניות.

עכשיו אנחנו רוצים להמיר את משך ההד למרחק.

כפי שראינו, המרחק שווה למשך ההד מחולק ב-2 (כי הגל עובר את המרחק פעמיים), וכפול במהירות הקול. מהירות הקול באוויר היא בערך 343 מטר לשנייה, או 0.0343 סנטימטר למיקרו-שנייה. לכן, כדי לחשב את המרחק בסנטימטרים, אנו מכפילים את duration (המדוד במיקרו-שניות) ב-0.0343, ומחלקים ב-2.

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

רעיונות לפרויקטים

1. חיישן חניה: השתמש בחיישן כדי לזהות מכוניות ולמדוד מרחק בזמן חניה.
2. רובוט הימנעות ממכשולים: בנה רובוט שמסוגל לנווט בסביבה תוך הימנעות ממכשולים.
3. מד גובה בזמן אמת: צור מכשיר למדידת גובה של אובייקטים.
4. מפה תלת-ממדית: סרוק חדר על ידי סיבוב החיישן ובנה מפה תלת-ממדית של הסביבה.
5. מתזמן צילום: בנה מצלמה עם טיימר אוטומטי המופעל כאשר אדם עומד במרחק מסוים.

טיפים וזהירות

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

סיכום

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

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

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

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

אולי יעניין אותך גם...

אנגלית טכנית: תרגול כתיבת פירוש מילה

אנגלית טכנית תרגול מילים: מערכת פשוטה לתרגול מילים באנגלית טכנית. כותבים את התרגום, מקבלים תשובה מיד. מחולק לפי נושאים, מתאים לכולם.

נגישות
error: © תוכן זה שמור באמצעות זכויות יוצרים, אין אפשרות לבצע העתקה. ©