דלגו לתוכן המרכזי
KitLab
שיעור קודם
מערכת אזעקת קרבה — חיישן חניה· 34 / 41
מערכת אזעקת קרבה — חיישן חניה
🎬

הסרטון בדרך אלינו

בינתיים — התמלול המלא של השיעור מחכה לכם למטה

מערכת אזעקת קרבה — חיישן חניה

מה בשיעור?

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

מה נלמד כאן

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

אזעקת קרבה

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

מערכת ראדאר

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


הידע שצריך

איך זה עובד

מערכת אזעקת קרבה משדרת ומקבלת אותות אולטרסוניים, מודדת את זמן המעוף, ומחשבת מרחק — בדיוק כמו בשיעור 13.

החידוש הוא מה שקורה אחרי המדידה:

מודדים  →  מציגים על המסך  →  משווים לסף  →  מתריעים אם צריך

כשהמרחק יורד מתחת לסף (15 ס"מ אצלנו), המערכת:

  1. מדליקה נורית
  2. מפעילה זמזם
  3. מציגה WARNING על המסך

עקרון הפעולה

למה זה שיעור מסכם טוב

תסתכלו מה נדרש כאן: חיישן אולטרסוני (13), מסך LCD (17), זמזם (8), נורית (1), תנאים (19). חמישה שיעורים בפרויקט אחד — וזו בדיוק מערכת שנמכרת בחנויות.


הניסוי

המטרה: המרחק מוצג על המסך; מתחת ל-15 ס"מ — אזעקה מלאה.

רשימת רכיבים

הרכיב כמות
לוח ESP32 1
לוח ניסוי 400 נקודות 1
מסך LCD1602 1
חיישן אולטרסוני 1
זמזם אקטיבי 1
נורית LED 1
נגד 220Ω 1

התרשים החשמלי

התרשים החשמלי

החיבור

חיבור הרכיבים


מבנה התוכנית

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define TRIG 5
#define ECHO 16
#define BUZZER 17
#define LED 18

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  lcd.init();
  lcd.backlight();
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
  pinMode(BUZZER, OUTPUT);
  pinMode(LED, OUTPUT);
}

void loop() {
  // מדידה — כמו בשיעור 13
  digitalWrite(TRIG, LOW);  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH); delayMicroseconds(10);
  digitalWrite(TRIG, LOW);

  long duration = pulseIn(ECHO, HIGH);
  float distance = (duration * 0.0343) / 2;

  // תצוגה
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Dist: ");
  lcd.print(distance);
  lcd.print(" cm");

  // החלטה
  if (distance < 15 && distance > 0) {
    digitalWrite(LED, HIGH);
    digitalWrite(BUZZER, HIGH);
    lcd.setCursor(0, 1);
    lcd.print("** WARNING **");
  } else {
    digitalWrite(LED, LOW);
    digitalWrite(BUZZER, LOW);
  }

  delay(200);
}

שימו לב לתנאי distance > 0. אם החיישן לא מקבל הד — למשל כשאין שום דבר בטווח — הוא עלול להחזיר 0, וזה קטן מ-15. בלי התנאי הנוסף, המערכת הייתה מצפצפת דווקא כשאין אף אחד.

זו בדיוק סוג הבדיקה שמבדילה בין קוד שעובד להדגמה לקוד שעובד במציאות.

מה אמור לקרות

המערכת מתריעה

הביאו את היד לאט לעבר החיישן. המספר יורד, וב-15 ס"מ — אזעקה.


נסו בעצמכם

  • הפכו את הזמזם למצפצף מהר יותר ככל שקרובים — כמו חיישן חניה אמיתי.
  • הוסיפו שלוש רמות: ירוק רחוק, צהוב בינוני, אדום קרוב (עם נורית RGB).
  • הוסיפו מונה של כמה פעמים הופעלה האזעקה.
  • הסירו את distance > 0 ונסו לכוון את החיישן לחלל ריק. מה קורה?
  • שלבו עם שיעור 11: סרוו שמסובב את החיישן — וקיבלתם סריקת ראדאר אמיתית.

🧰 הרכיבים לשיעור הזה

רוצים את חומרי הקורס והעדכונים?

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