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

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

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

שלט אינפרה-אדום — פענוח קודים

מה בשיעור?

  • ארבעת שלבי השידור והקליטה
  • תדר נשא 38kHz — איך מסננים רעש אינפרה-אדום
  • למה מכשול חוסם את השלט
  • טבלת קודי הכפתורים
  • למה IrReceiver.resume חובה

מה נלמד כאן

  • איך עובד שלט אינפרה-אדום
  • מה זה תדר נשא 38kHz ולמה הוא קיים
  • לפענח קודי כפתורים בתוכנית

השלט

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

שלט ומקלט


הידע שצריך

1. הבסיס

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

השלט משדר דרך דיודת LED אינפרה-אדומה, והמקלט קולט ומפענח.

2. ארבעת שלבי התהליך

עקרון הפעולה

1. קידוד ושידור — לכל כפתור יש קוד משלו (בדרך כלל מספר הקסדצימלי). בלחיצה, השלט הופך את הקוד לסדרת פולסים.

2. שידור — האור המאופנן נע באוויר אל המכשיר.

3. קליטה ופענוח — המקלט הופך את הפולסים לשינויי מתח, והתוכנית מפענחת אותם חזרה לפקודה.

4. ביצוע — הלוח מזהה איזה כפתור נלחץ ומבצע.

3. תדר הנשא 38kHz — הפרט שהופך את זה לעובד

וכאן הנקודה היפה באמת.

הבעיה: אינפרה-אדום נמצא בכל מקום — השמש פולטת אותו, נורות פולטות אותו, גוף אדם פולט אותו. איך המקלט מבדיל בין השלט לבין כל הרעש הזה?

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

זה נקרא תדר נשא, וזה אותו עיקרון שמאפשר לרדיו לקלוט תחנה אחת מתוך עשרות.

וזו גם הסיבה שהשלט לא עובד דרך מכשולים — האור פשוט נחסם. נזכור את זה בשיעור הבלוטות'.

4. טבלת קודי הכפתורים

השלט של הערכה

לכל כפתור בשלט של הערכה יש קוד קבוע:

קוד קוד
0xB946FF00 0xE718FF00
0xBB44FF00 0xA15EFF00
0xBC43FF00 0xF708FF00
0xEA15FF00 0xE31CFF00
0xBF40FF00 0xA55AFF00
0xE916FF00 0xBD42FF00
0xE619FF00 0xAD52FF00
0xF20DFF00 0xB54AFF00
0xF30CFF00

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

⚠️ דרוש ספריית IRremote בגרסה 3.0 ומעלה. התקנתם אותה בשיעור ההתקנה של פרק 1.


הניסוי

המטרה: ללחוץ על כפתור ולראות את הקוד שלו ב-Serial Monitor.

רשימת רכיבים

הרכיב כמות
לוח ESP32 1
לוח ניסוי 400 נקודות 1
מקלט אינפרה-אדום 1
שלט רחוק 1

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

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

החיבור

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


הקוד

#include <IRremote.h>

#define IR_RECEIVE_PIN 5

void setup() {
  Serial.begin(115200);
  IrReceiver.begin(IR_RECEIVE_PIN);
  Serial.println("IR Receiver ready. Please press a button on the remote.");
}

void loop() {
  if (IrReceiver.decode()) {
    Serial.print("Received IR Code: 0x");
    Serial.println(IrReceiver.decodedIRData.command, HEX);
    IrReceiver.resume();     // מתכוננים לאות הבא
  }
}

IrReceiver.resume() הוא לא אופציונלי. בלעדיו המקלט נשאר "תקוע" על האות הראשון ולא יקלוט שום דבר נוסף. זו התקלה הנפוצה ביותר בשיעור הזה.

שימו לב ל-HEX בסוף ה-println — הוא אומר להדפיס את המספר בבסיס 16 במקום בעשרוני.

מה אמור לקרות

הקודים ב-Serial Monitor

לחצו על כל כפתור בשלט ורשמו את הקוד שלו. זו הטבלה שתשתמשו בה בכל פרויקט עם שלט.


הפקודות שלמדנו

הפקודה מה היא עושה
IrReceiver.begin(pin) מאתחלת את המקלט
IrReceiver.decode() מחזירה true אם התקבל אות שלם
IrReceiver.decodedIRData.command הקוד של הכפתור
IrReceiver.resume() מתכוננת לאות הבא

נסו בעצמכם

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

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

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

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