כל חובב רדיו, לאחר עבודת עשה זאת בעצמך פשוטה, מגיע למטרה לבנות משהו מפואר באמצעות חיישנים וכפתורים. אחרי הכל, הרבה יותר מעניין להציג נתונים על הצג מאשר על צג היציאה. אבל אז נשאלת השאלה: באיזו תצוגה לבחור? ובכלל איך מחברים את זה, מה צריך בשביל להתחבר? התשובות לשאלות אלו יידונו במאמר זה.
LCD 1602
בין האפשרויות הרבות בין המסכים, ברצוני לייחד את צג ה-LCD1602 המבוסס על בקר ה-HD4478. יש את התצוגה הזו בשני צבעים: אותיות לבנות על רקע כחול, אותיות שחורות על רקע צהוב. גם חיבור ה-LCD 1602 לארדואינו לא יגרום לבעיות, מכיוון שיש ספרייה מובנית, ואין צורך להוריד שום דבר נוסף. תצוגות שונות לא רק במחיר, אלא גם בגודל. לעתים קרובות חובבי רדיו משתמשים ב-16x 2, כלומר 2 שורות של 16 תווים. אבל יש גם 20 x 4, שבו יש 4 שורות של 20 תווים. מידות וצבע אינם משחקים כל תפקיד בחיבור מסך lcd 1602 לארדונו, הם מחוברים באותו אופן. זווית הצפייה היא 35 מעלות, זמן התגובה של התצוגה הוא 250 אלפיות השנייה. יכול לעבוד בטמפרטורות של -20 עד 70 מעלות צלזיוס. בזמן העבודה, הוא משתמש ב-4 mA עבור המסך ו-120 mA עבור התאורה האחורית.
איפה משתמשים בו?
לתצוגה הזו יש את הפופולריות שלה לא רק בקרב חובבי רדיו, אלא גם בקרב יצרנים גדולים. לדוגמה, מדפסות, מכונות קפה משתמשות גם ב-LCD1602. זה נובע מהמחיר הנמוך שלה, תצוגה זו עולה 200-300 רובל באתרים סיניים. כדאי לקנות שם, שכן בחנויות שלנו השוליים לתצוגה זו גבוהים מאוד.
התחבר ל-Arduino
חיבור LCD 1602 ל-Arduino Nano ו-Uno אינו שונה. ניתן לעבוד עם התצוגה בשני מצבים: 4 סיביות ו-8. בעבודה עם צג 8 סיביות משתמשים גם בביטים הנמוכים והגבוהים יותר ועם 4 סיביות רק התחתונים. אין טעם מיוחד לעבוד עם 8 ביט, מאחר ויתווספו עוד 4 אנשי קשר לחיבור, מה שלא מומלץ, מכיוון שהמהירות לא תהיה גבוהה יותר, מגבלת עדכון התצוגה היא 10 פעמים בשנייה. באופן כללי משתמשים בהרבה חוטים לחיבור ה-LCD 1602 לארדואינו, מה שגורם לאי נוחות מסוימת, אבל יש מגנים מיוחדים, אבל על כך בהמשך. התמונה מציגה את החיבור של הצג ל-Arduino Uno:
דוגמה לקוד:
include //הוסף את הספרייה הנדרשת LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // הגדר מימד מסך lcd.setCursor(0, 0); // הגדר את הסמן לתחילת שורה 1 lcd.print("שלום, עולם!"); // הצג טקסט LCD. setCursor(0, 1); // הגדר את הסמן לתחילת שורה 2 lcd.print("fb.ru"); // פלט טקסט } void loop(){ }
מה עושה הקוד? קודם כל, הספרייה לעבודה עם התצוגה מחוברת. כפי שצוין לעיל, ספרייה זו כבר כלולה ב- Arduino IDE ואין צורך להוריד ולהתקין אותה בנוסף. לאחר מכן, המגעים המחוברים לפינים מוגדרים: RS, E, DB4, DB5, DB6, DB7, בהתאמה. לאחר מכן נקבע גודל המסך. מכיוון שאנו עובדים עם גרסה עם 16 תווים ו-2 שורות, אנו כותבים ערכים כאלה. אנו מציבים את הסמן לתחילת השורה הראשונה ומציגים את הטקסט הראשון שלנו Hello World. לאחר מכן, הצב את הסמן על השורה השנייה והצג את שם האתר. זה הכל! חיבור LCD 1602 ל-Arduino Uno נשקל.
מה זה I2C ולמה הוא נחוץ?
כפי שהוזכר לעיל, חיבור הצג דורש הרבה סיכות. לדוגמה, כאשר עובדים עם חיישנים מרובים ותצוגת LCD, ייתכן ש-1602 אנשי קשר פשוט לא יספיקו. לעתים קרובות, חובבי רדיו משתמשים בגרסאות Uno או Nano, שבהן אין הרבה אנשי קשר. ואז אנשים הגיעו עם מגנים מיוחדים. לדוגמה, I2C. זה מאפשר לך לחבר את הצג עם 4 פינים בלבד. זה פי שניים פחות. מודול I2C נמכר גם בנפרד, שם אתה צריך להלחים אותו בעצמך, וכבר מולחם אליותצוגת LCD 1602.
חיבור עם מודול I2C
חיבור LCD 1602 ל-Arduino Nano עם I2C תופס מעט מקום, רק 4 פינים: הארקה, מתח ו-2 יציאות נתונים. אנו מחברים מתח והארקה ל-5V ו-GND ב-Arduino, בהתאמה. שני המגעים הנותרים: SCL ו-SDA מחוברים לכל פינים אנלוגיים. בתמונה ניתן לראות דוגמה לחיבור lcd 1602 ל-arduino עם מודול I2C:
קוד תוכנית
אם היה צורך להשתמש רק בספרייה אחת כדי לעבוד עם תצוגה ללא מודול, אז יש צורך בשתי ספריות כדי לעבוד עם מודול. אחד מהם כבר נמצא ב-Arduino IDE - Wire. ספרייה נוספת, LiquidCrystal I2C, יש להוריד ולהתקין בנפרד. כדי להתקין את הספרייה ב-Arduino, יש להעלות את תוכן הארכיון שהורד לתיקיית השורש של Libraries. דוגמה לקוד באמצעות I2C:
include include LiquidCrystal_I2C lcd(0x27, 16, 2); // הגדר את התצוגה void setup() { lcd.init(); lcd.backlight();// הפעל את התאורה האחורית של התצוגה lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // הגדר את הסמן לשורה השנייה ותו ריק. lcd.setCursor(0, 1); // הדפס את מספר השניות מאז התחיל ה-arduino lcd.print(millis()/1000); }
כפי שאתה יכול לראות, הקוד כמעט זהה.
איך אוכל להוסיף סמל משלי?
הבעיה עם התצוגות האלה היא שאיןתמיכה בקירילי ובסמלים. לדוגמה, עליך לטעון דמות כלשהי לתצוגה כדי שהיא תוכל לשקף אותה. לשם כך, התצוגה מאפשרת לך ליצור עד 7 מהדמויות שלך. הצג את הטבלה:
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 |
אם 0 - אין שם כלום, אם 1 - זה אזור מוצל. בדוגמה למעלה, ניתן לראות את יצירת הדמות "סמיילי מחייך". באמצעות תוכנית לדוגמה ב- Arduino, זה ייראה כך:
include include // כלול את הספרייה הנדרשת // Smile symbol bitmask byte smile[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // הגדר ממד מסך lcd.createChar(1, smile); // צור תו מספר 1 lcd.setCursor(0, 0); // הגדר את הסמן לתחילת שורה 1 lcd.print("\1"); // הצג את הסמיילי (תו מספר 1) - "\1" } void loop(){ }
כפי שאתה יכול לראות, נוצרה-bitmask זהה לטבלה. לאחר יצירתו, ניתן לפלט אותו כמשתנה לתצוגה. זכור שניתן לאחסן רק 7 תווים בזיכרון. באופן עקרוני זה מספיק. לדוגמה, אם ברצונך להציג את סמל התואר.
בעיות שבהן ייתכן שהתצוגה לא תעבוד
יש מקרים שבהם התצוגה לא עובדת. לדוגמה, הוא נדלק, אך אינו מציג תווים. או שהוא לא נדלק בכלל. ראשית, בדוק אם חיברת את המגעים בצורה נכונה. אם נהגת לחבר את lcd 1202 ל-Arduino ללא I2C, אז קל מאוד להסתבך בחוטים, מה שעלול לגרום לתצוגה לפעול בצורה לא נכונה. כדאי גם לוודא שניגודיות התצוגה מוגברת, מכיוון שבמינימום ניגודיות זה אפילו לא נראה אם ה-LCD 1602 פועל או לא. אם זה לא עוזר, אז אולי הבעיה נעוצה בהלחמת המגעים, זה בעת שימוש במודול I2C. כמו כן, סיבה נפוצה לכך שהתצוגה לא תעבוד היא ההגדרה השגויה של כתובת ה-I2C. העובדה היא שיש הרבה יצרנים, והם יכולים להגדיר כתובת אחרת, אתה צריך לתקן את זה כאן:
LiquidCrystal_I2C lcd(0x27, 16, 2);
בסוגריים ניתן לראות שני ערכים, 0x27 ו-16, 2 (16, 2 הוא גודל התצוגה, ו-0x27 הוא רק כתובת I2C). במקום ערכים אלה, אתה יכול לנסות לשים 0x37 או 0x3F. ובכן, סיבה נוספת היא פשוט LCD 1602 פגום. בהתחשב בכך שכמעט הכל עבור Arduino מיוצר בסין, אתה לא יכול להיות בטוח ב-100% שהמוצר שנרכשהמוצר אינו פגום.
LCD 1602 יתרונות וחסרונות
בוא נסתכל על היתרונות והחסרונות של ה-LCD 1602.
יתרונות
- מחיר. ניתן לרכוש מודול זה במחיר נוח מאוד בחנויות סיניות. המחיר הוא 200-300 רובל. לפעמים אפילו נמכר עם מודול I2C.
- קל להתחבר. כנראה שאף אחד לא מחבר LCD 1602 בלי I2C בימינו. ועם המודול הזה, החיבור לוקח רק 4 פינים, לא יהיו "קורים" של חוטים.
- תכנות. הודות לספריות מוכנות, העבודה עם מודול זה קלה, כל הפונקציות כבר רשומות. ואם אתה צריך להוסיף את הדמות שלך, זה לוקח רק כמה דקות.
חסרונות
בזמן השימוש על ידי אלפי חובבי רדיו, לא זוהו חסרונות גדולים, רק שיש מקרים של רכישת נישואין, שכן נעשה שימוש בעיקר באפשרויות תצוגה סיניות
מאמר זה דן כיצד לחבר את צג ה-LCD 1602 ל-Arduino, וכן הציג תוכניות לדוגמה לעבודה עם צג זה. זה באמת אחד הטובים בקטגוריה שלו, זה לא רק שאלפי חובבי רדיו בוחרים בו עבור הפרויקטים שלהם!