מה נלמד כאן
- איך מנוע הופך חשמל לסיבוב
- למה מנוע לא יכול להתחבר ישירות לפין של הלוח
- מה זה מודול נהג מנוע ומה הוא עושה בשבילנו
- הבלוק write analog pin — ואיך שני פינים קובעים כיוון
- איך שולטים במהירות בעזרת מספר ומשתנה
הרכיב שמזיז את העולם
עד עכשיו הלוח שלנו הדליק אור והשמיע קול. היום הוא יתחיל להזיז דברים.

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

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

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

מודול נהג מנוע הוא גשר בין הלוח למנוע. חשבו עליו כמו מאמן וספורטאי: המאמן צועק ״רוץ״ — הוא לא רץ בעצמו, הוא רק נותן הוראה. הספורטאי הוא זה שמשקיע את הכוח.
המודול עושה ארבעה דברים:
- מספק כוח — הוא לוקח חשמל ישירות מ-5V, לא מהפין החלש.
- מאפשר שני כיוונים — הוא יודע להפוך את הזרם בפקודה, בלי שתנתקו חוטים.
- מאפשר ויסות מהירות — הוא מקבל אות משתנה ומתרגם אותו למהירות.
- מגן — יש בתוכו הגנות מפני זרם גדול מדי ומפני חום.
שני פינים, ארבעה מצבים
הטריק כאן חמוד: המודול מקבל שני אותות מהלוח, לא אחד. בערכה שלנו אלה פין 5 ופין 16. ומה שקובע את התנהגות המנוע הוא ההפרש ביניהם:
| פין 5 | פין 16 | מה קורה |
|---|---|---|
| 255 | 0 | מסתובב קדימה במלוא הכוח |
| 0 | 255 | מסתובב אחורה במלוא הכוח |
| 0 | 0 | עומד |
| 128 | 0 | מסתובב קדימה בחצי מהירות |
תחשבו על זה כמו נדנדה: אם צד אחד למעלה והשני למטה — יש הטיה לכיוון אחד. אם שניהם באותו גובה — אין תנועה בכלל.
החיבור
צריך: לוח ESP32, מודול נהג מנוע, מנוע זרם ישר וחוטים.


- שני חוטי המנוע → לשני הברגים של המהדק הירוק המסומן MOTOR A. הדקו עם מברג קטן, ותוודאו שהחוט באמת תפוס.
- A-1A במודול → פין 5 בלוח.
- A-1B במודול → פין 16 בלוח.
- VCC במודול → 5V בלוח.
- GND במודול → GND בלוח.
⚠️ שימו לב: אין כאן לוח ניסוי ואין נגד. המנוע מתחבר ישירות למודול, והמודול מתחבר ישירות ללוח.
אין משמעות לכיוון של שני חוטי המנוע — אם הוא יסתובב הפוך ממה שציפיתם, פשוט תחליפו ביניהם. וטיפ מנוסה: תחזיקו את המנוע ביד או תדביקו אותו לשולחן, אחרת הוא יקפוץ כשהוא מתחיל להסתובב.
הבלוקים
הבלוק החדש

write analog pin [0] to (0) — הבלוק נמצא בקטגוריה Robots, ויש בו שני חלקים שונים לגמרי:
- התפריט הנפתח [0] — בוחרים בו את מספר הפין. אצלנו 5 או 16.
- התיבה הלבנה (0) — כאן מקלידים מספר בין 0 ל-255. זו העוצמה.
ולמה 255 ולא 4095 כמו בחיישן האור? כי אלה שני דברים הפוכים. בשיעור 6 הלוח קרא מתח והמיר אותו למספר בין 0 ל-4095. כאן הלוח כותב — הוא שולח מתח החוצה, והסולם של הכתיבה הוא 0 עד 255. קלט וכתיבה הם שני עולמות, וחשוב לא להתבלבל.
מה שהלוח באמת עושה עם המספר הזה הוא טריק חכם: הוא מדליק ומכבה את הפין מהר מאוד, הרבה פעמים בשנייה. 255 אומר ״דלוק כל הזמן״, 128 אומר ״דלוק חצי מהזמן״, 0 אומר ״כבוי כל הזמן״. המנוע מרגיש את הממוצע — ולכן מסתובב חזק או חלש.
קדימה ואחורה
תמיד שני בלוקים ביחד, אחד לכל פין:

זה קדימה: פין 5 מקבל 255, פין 16 מקבל 0.

וזה אחורה: בדיוק להפך. אותם שני בלוקים, המספרים התחלפו מקומות.
הכלל לזכור: לעולם אל תשאירו את שני הפינים על 255. זה מבלבל את המודול ועלול לחמם אותו.
מריצים
בשיעור הזה יש שני קבצים, ולכל אחד תפקיד אחר. כדאי לנסות את שניהם, לפי הסדר.
ניסוי 1: כיוון
⬇ להורדת הקובץ Motor_Direction_Control.sb3 — גוררים אותו לתוך ACECode ולוחצים Upload.
ההסבר המלא על צריבה נמצא בשיעור ההתקנה.

בתוך ה-forever יש שלוש קבוצות, כל אחת בנויה משני בלוקי write analog pin ובלוק wait [2] seconds:
- 5 → 255, 16 → 0 ואז המתנה — שתי שניות קדימה
- 5 → 0, 16 → 255 ואז המתנה — שתי שניות אחורה
- 5 → 0, 16 → 0 ואז המתנה — שתי שניות עצירה

תדביקו פיסת נייר קטנה על הציר כדי לראות את הכיוון בבירור.
ניסוי 2: מהירות
⬇ להורדת הקובץ Motor_Speed_Control.sb3 — גוררים אותו לתוך ACECode ולוחצים Upload.
מה ההבדל בין שני הקבצים? הראשון עוסק בכיוון — הוא תמיד רץ במלוא הכוח (255 או 0), ורק מחליף בין קדימה, אחורה ועצירה. השני עוסק במהירות — הוא תמיד באותו כיוון, אבל המספר משתנה בהדרגה מ-0 עד 255 וחזרה.

כאן מופיע רעיון חדש: משתנה. משתנה הוא כמו קופסה עם שם שאפשר לשים בה מספר ולהחליף אותו. הקופסה שלנו נקראת Speed, והבלוקים שלה כתומים.
- set [Speed] to (0) — שם 0 בקופסה. פעם אחת, בהתחלה.
- repeat until (Speed = 255) — לולאה ירוקה-כתומה שחוזרת עד שהתנאי מתקיים. שימו לב לצורה: התנאי יושב בחריץ משושה בראש הבלוק.
- write analog pin [5] to (Speed) — וכאן הקסם: במקום מספר קבוע, גררנו את הקופסה עצמה לתוך התיבה. בכל סיבוב המנוע מקבל את מה שיש בקופסה עכשיו.
- change [Speed] by (1) — מוסיף 1 לקופסה.
- wait [0.05] seconds — המתנה זעירה, שבלעדיה הכול היה קורה מהר מדי מכדי לשמוע.
ואז בא בלוק repeat until שני, בדיוק הפוך: הוא רץ עד ש-Speed מגיע ל-0, ובמקום להוסיף 1 הוא מוסיף 1-, כלומר מוריד.

תקשיבו לצליל: המנוע מתחיל מזמזום כמעט לא נשמע, עולה בהדרגה לשריקה מהירה, ואז יורד לאט חזרה לשקט. שוב ושוב.
מה קרה כאן
הלוח לא מזיז את המנוע. הוא רק נותן הוראות לשני פינים, והמודול הוא זה שמזרים את הכוח האמיתי. ההפרש בין שני הפינים קובע את הכיוון, וגודל המספר קובע את העוצמה.
בקובץ הראשון המספרים היו קבועים (255 ו-0) והכיוון התחלף. בקובץ השני הכיוון היה קבוע והמספר זחל בקפיצות של 1, בעזרת קופסה בשם Speed.
וזה בדיוק המנגנון שבמאוורר עם ויסות מהירות, ברכבת צעצוע עם שלט, וברובוט שמאט לפני מכשול. בשיעורים הבאים נחליף את הקופסה הזאת בפוטנציומטר — ואז אתם תשלטו במהירות ביד — ואחר כך בחיישן טמפרטורה, ואז המאוורר יחליט לבד.
תרגילים
1. חצי כוח. בקובץ הכיוון, שנו את כל ה-255 ל-128. המנוע יסתובב לאט יותר וישמע שקט יותר. נסו גם 60 — ייתכן שהוא בכלל לא יזוז, כי אין מספיק כוח להתגבר על החיכוך. זה בסדר גמור, וזה נקרא ״סף ההתנעה״.
2. רק קדימה. מחקו מהתוכנית את הקבוצה של האחורה, והשאירו רק קדימה ועצירה. עכשיו זה מאוורר שנדלק ונכבה.
3. האצה איטית. בקובץ המהירות, שנו את wait [0.05] seconds ל-0.02. ההאצה תהיה מהירה בהרבה. נסו גם 0.1 להאצה איטית ודרמטית.
4. תעצרו למעלה. בקובץ המהירות, שנו בבלוק repeat until את התנאי מ-Speed = 255 ל-Speed = 150. עכשיו המנוע לא מגיע למלוא המהירות אף פעם. תסתכלו על התנאי בחריץ המשושה — זה שם מחליטים מתי הלולאה נגמרת.


