מה נלמד כאן
- לשלב שלט עם בקרת מנוע
- לקשור קוד כפתור לפעולה
עצלנות מועילה

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

1. המשדר — לחיצה מהבהבת את הדיודה ב-38kHz ומשדרת קוד ייחודי. 2. המקלט — קולט, ממיר לשינויי מתח, מעביר לבקר. 3. הבקר — מפענח, מזהה כפתור, מבצע.
כל שלושתם כבר מוכרים משיעור 16. החידוש: במקום להדפיס את הקוד — מבצעים איתו פעולה.
⚠️ אל תסמכו על טבלת קודים מוכנה. הריצו קודם את תוכנית שיעור 16, לחצו על הכפתורים שלכם, ורשמו את הקודים האמיתיים.
הניסוי
המטרה: כפתורי השלט שולטים במאוורר.
רשימת רכיבים
| הרכיב | כמות |
|---|---|
| לוח ESP32 | 1 |
| לוח ניסוי 400 נקודות | 1 |
| מקלט אינפרה-אדום + שלט | 1 |
| דרייבר מנועים | 1 |
| מנוע DC + מאוורר | 1 |
התרשים החשמלי

החיבור

הקוד
from libs.ACB_IR import IR
from machine import Pin, PWM
import time
irm = IR(18)
pwmA1 = PWM(Pin(5)); pwmA2 = PWM(Pin(16))
pwmA1.freq(1000); pwmA2.freq(1000)
pwmA2.duty(0)
# מילון: קוד כפתור -> מהירות
commands = {
0xAD52FF00: 0, # כיבוי
0xE916FF00: 700, # 70%
0xE619FF00: 1023, # מלא
}
while True:
key = irm.read_raw()
if key in commands:
speed = commands[key]
pwmA1.duty(speed)
print("Speed:", speed)
time.sleep(0.1)
וכאן מבנה נתונים חדש: מילון (dictionary).
commands = {מפתח: ערך, מפתח: ערך}
מילון ממפה מפתח לערך. במקום שרשרת if/elif ארוכה, טבלה אחת ושתי שורות.
if key in commandsבודקת אם המפתח קיים — ומונעת שגיאה כשמגיע קוד לא מוכר.ב-Arduino זו הייתה שרשרת
ifשל 12 שורות. כאן טבלה. וכשתרצו להוסיף כפתור — מוסיפים שורה אחת למילון.
מה אמור לקרות

נסו בעצמכם
- רשמו את הקודים של השלט שלכם והתאימו את המילון.
- הוסיפו כפתורי
+ו--שמשנים מהירות בהדרגה. - הוסיפו נורית חיווי לכל דרגה.
- שלבו עם שיעור 28: כפתור שמחליף בין שלט לאוטומטי.
- מה קורה אם תחזיקו כפתור? למה?


