מה נלמד כאן
- מסך LCD1602
- תקשורת I2C
- להציג טקסט
מסך אמיתי

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

16 תווים ברוחב, 2 שורות. כל תו הוא מטריצת נקודות 5×8.
הבקר שולח נתוני מטריצה, והמסך מדליק פיקסלים. אותו עיקרון של תצוגת המקטעים, ברזולוציה גבוהה יותר.
מה אפשר להציג: אותיות אנגליות, ספרות, סימנים ותווים מותאמים.
⚠️ בגב המסך יש פוטנציומטר קטן. אם המסך נדלק אבל לא רואים טקסט — סובבו אותו. זו הבעיה הראשונה של כל מי שמחבר אותו.
2. I2C — שני חוטים לכל הרכיבים

| הקו | התפקיד |
|---|---|
| SDA | נתונים — דו-כיווני |
| SCL | שעון — נוצר על ידי הבקר |
ואיך כמה מכשירים חיים על אותם שני חוטים? לכל אחד כתובת ייחודית צרובה בשבב.
חמשת שלבי התקשורת: התחלה → כתובת → אישור → נתונים → סיום.
זוכרים מפרק 1? ל-ESP32 שני בקרי I2C, וכל אחד מנהל עד כ-112 מכשירים. עכשיו ברור למה זה שימושי.
הניסוי
המטרה: להציג "ACEBOTT" ו-"Hello World!".
רשימת רכיבים
| הרכיב | כמות |
|---|---|
| לוח ESP32 | 1 |
| לוח ניסוי 400 נקודות | 1 |
| מסך LCD1602 | 1 |
התרשים החשמלי

החיבור

ארבעה חוטים בלבד: VCC, GND, SDA, SCL.
הקוד
from libs.Acebott import i2c
from libs.ACB_LCD1602 import ACB_LCD1602
import time
lcd = ACB_LCD1602(i2c) # אתחול
lcd.set_backlight(True) # תאורה אחורית
lcd.display_text_at_position(0, 0, " ACEBOTT ") # עמודה 0, שורה 0
lcd.display_text_at_position(0, 1, " Hello World! ") # עמודה 0, שורה 1
שימו לב שאין while True בכלל. התוכנית רצה פעם אחת ונגמרת — והמסך זוכר את מה שהוצג בו.
זה הבדל מהותי מתצוגת ארבע הספרות, שדרשה סריקה מתמדת. המסך הזה הוא רכיב "חכם" עם זיכרון משלו.
i2c מיובא מוכן מהספרייה — לא צריך להגדיר פינים, היא כבר יודעת.
מה אמור לקרות

נסו בעצמכם
- אם המסך ריק — סובבו את הפוטנציומטר בגב.
- הדפיסו את השם שלכם. מה קורה אם הטקסט ארוך מ-16 תווים?
- הוסיפו
while Trueעם טקסט מתחלף כל שנייה. - שלבו עם שיעור 12: הציגו טמפרטורה ולחות על המסך. זה כבר מוצר.
- ב-Shell: צרו את האובייקט והקלידו
lcd.display_text_at_position(0,0,"Hi").


