מדריך חיבור חיישן תנועה PIR HC-SR501 ל-Arduino ו-ESP32:
במדריך זה נלמד כיצד לחבר חיישן תנועה PIR HC-SR501 לבקר Arduino UNO ולבקר ESP32.
נראה איך החיישן מזהה תנועה, איך לקרוא את יציאת OUT,
ואיך להציג זיהוי תנועה ב-Serial Monitor.
מהו חיישן HC-SR501?
HC-SR501 הוא מודול PIR לזיהוי תנועה. החיישן מזהה שינוי בקרינה אינפרא-אדומה
שמגיעה מגופים חמים, לדוגמה אדם שעובר מול החיישן.
החיישן מתאים לפרויקטים של תאורה אוטומטית, אזעקה בסיסית, בית חכם,
זיהוי תנועה בחדר, רובוטיקה וניסויים עם Arduino ו-ESP32.
חשוב לדעת: החיישן מזהה תנועה ושינוי, ולא נוכחות סטטית מדויקת.
אם אדם עומד ללא תנועה מול החיישן, ייתכן שהחיישן לא ימשיך לזהות אותו.
איך החיישן עובד?
PIR הוא קיצור של Passive Infrared. החיישן אינו שולח גל כמו חיישן אולטרסוניק,
אלא קולט שינוי בקרינה אינפרא-אדומה מהסביבה.
כאשר גוף חם נע מול החיישן, כמות הקרינה שנקלטת משתנה.
המודול מעבד את השינוי הזה בעזרת שבב בקרה, ומוציא אות דיגיטלי בפין OUT.
- OUT במצב LOW — לא זוהתה תנועה.
- OUT במצב HIGH — זוהתה תנועה.
- Sensitivity — כיוון רגישות וטווח גילוי.
- Delay — כיוון משך הזמן שבו OUT נשאר במצב HIGH לאחר זיהוי.
- H / L — בחירת מצב Trigger חוזר או חד-פעמי.
לאחר חיבור מתח, החיישן צריך זמן התייצבות. בזמן הזה ייתכנו קריאות שגויות,
ולכן מומלץ להמתין כחצי דקה עד דקה לפני התחלת מדידה יציבה.
פינים במודול HC-SR501
| פין | תפקיד |
|---|---|
| VCC | מתח הזנה למודול |
| OUT | יציאה דיגיטלית לזיהוי תנועה |
| GND | אדמה |
רכיבים נדרשים
- חיישן תנועה PIR HC-SR501
- Arduino UNO או ESP32
- Breadboard
- חוטי Dupont
- כבל USB
- LED אופציונלי לחיווי תנועה
חיבור HC-SR501 ל-Arduino UNO

| HC-SR501 | Arduino UNO |
| VCC | 5V |
| OUT | D2 |
| GND | GND |
הסבר חיבור
ב-Arduino UNO מחברים את יציאת OUT של החיישן לפין דיגיטלי, לדוגמה D2.
כאשר החיישן מזהה תנועה, הפין עובר למצב HIGH.
את רגישות החיישן ואת זמן ההשהיה ניתן לכוון בעזרת שני הפוטנציומטרים שעל המודול.
לפני בדיקה מומלץ להמתין עד שהחיישן מתייצב לאחר חיבור המתח.
קוד Arduino בסיסי לקריאת החיישן
const int pirPin = 2;
const int ledPin = 13;
void setup() {
Serial.begin(9600);
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.println("PIR sensor warming up...");
delay(30000);
Serial.println("Sensor ready");
}
void loop() {
int motionState = digitalRead(pirPin);
if (motionState == HIGH) {
Serial.println("Motion detected");
digitalWrite(ledPin, HIGH);
} else {
Serial.println("No motion");
digitalWrite(ledPin, LOW);
}
delay(500);
}הסבר הקוד
הקוד קורא את יציאת OUT של החיישן דרך פין D2.
אם מתקבל HIGH, מוצגת הודעה שזוהתה תנועה ונורית ה-LED נדלקת.
אם מתקבל LOW, מוצגת הודעה שלא זוהתה תנועה וה-LED נכבית.
בתחילת התוכנית קיימת השהיה של 30 שניות כדי לתת לחיישן זמן התייצבות.
בזמן הזה לא מומלץ לבדוק את החיישן, כי הקריאות עלולות להיות לא יציבות.
חיבור HC-SR501 ל-ESP32

הערה חשובה לפני החיבור
מודול HC-SR501 מוזן בדרך כלל מ-5V, אך יציאת OUT שלו היא בדרך כלל ברמת HIGH של כ-3.3V.
לכן ברוב המקרים ניתן לקרוא את OUT ישירות בעזרת ESP32.
עם זאת, יש לבדוק את סימון הפינים על המודול עצמו, כי סדר הפינים יכול להשתנות בין גרסאות שונות.
חובה לחבר GND משותף בין החיישן לבין ESP32.
| HC-SR501 | ESP32 |
| VCC | 5V / VIN |
| OUT | GPIO27 |
| GND | GND |
הסבר חיבור
ב-ESP32 מחברים את יציאת OUT לפין דיגיטלי רגיל, לדוגמה GPIO27.
את VCC מחברים ל-5V או VIN, ואת GND מחברים ל-GND של ESP32.
אם מתקבלות קריאות שגויות, מומלץ להרחיק את החיישן ממקורות חום,
מאור שמש ישיר, ממאווררים ומרכיבי תקשורת אלחוטית קרובים.
קוד ESP32 בסיסי לקריאת החיישן
const int pirPin = 27;
const int ledPin = 2;
void setup() {
Serial.begin(115200);
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.println("PIR sensor warming up...");
delay(30000);
Serial.println("Sensor ready");
}
void loop() {
int motionState = digitalRead(pirPin);
if (motionState == HIGH) {
Serial.println("Motion detected");
digitalWrite(ledPin, HIGH);
} else {
Serial.println("No motion");
digitalWrite(ledPin, LOW);
}
delay(500);
}הסבר הקוד
הקוד עבור ESP32 קורא את יציאת OUT של החיישן דרך GPIO27.
כאשר מזוהה תנועה, הקוד מדליק LED ומציג הודעה ב-Serial Monitor.
בדוגמה זו GPIO2 משמש כ-LED מובנה בלוחות ESP32 נפוצים.
אם בלוח מסוים אין LED מובנה בפין זה, ניתן להסיר את שורות ה-LED או לחבר LED חיצוני.
טיפים לעבודה נכונה
- יש להמתין כחצי דקה עד דקה לאחר חיבור המתח לפני בדיקה.
- אין לכוון את החיישן ישירות לשמש, חלון חם או מקור חום משתנה.
- יש לכוון את הפוטנציומטרים לפי טווח הגילוי וזמן ההשהיה הרצויים.
- אם החיישן מזהה יותר מדי, יש להקטין רגישות.
- אם החיישן לא מזהה מספיק טוב, יש לבדוק כיוון עדשה, גובה התקנה וטווח.
- החיישן מתאים לזיהוי תנועה, לא למדידת מרחק ולא לזיהוי נוכחות ללא תנועה.
פרויקט לדוגמה
מערכת זיהוי תנועה עם HC-SR501 ומסך LCD

בפרויקט זה משתמשים בחיישן HC-SR501 יחד עם Arduino UNO ומסך LCD 16×2.
החיישן מזהה תנועה, והמערכת יכולה להציג על המסך הודעה בהתאם למצב הזיהוי.
מעבר לחיישן עצמו, הפרויקט כולל גם מסך LCD, פוטנציומטר, נגד ולוח Breadboard,
ולכן הוא מתאים ללמידה על זיהוי תנועה, חיבור תצוגה ותגובה לאירוע.
סיכום
חיישן HC-SR501 הוא מודול נוח לזיהוי תנועה בפרויקטים עם Arduino ו-ESP32.
בעזרת יציאת OUT דיגיטלית ניתן לזהות תנועה ולהפעיל LED, זמזם, תאורה,
מסך או מערכת התראה בסיסית.
כדי לקבל פעולה יציבה חשוב לתת לחיישן זמן התייצבות, לכוון את הרגישות וההשהיה,
ולהתקין אותו במקום שבו אין שינויים חדים של חום או תנועה לא רצויה.