חיבור LCD 1602 ל-Arduino: תיאור, פונקציות, הוראות, תכונות, בעיות ופתרונות

תוכן עניינים:

חיבור LCD 1602 ל-Arduino: תיאור, פונקציות, הוראות, תכונות, בעיות ופתרונות
חיבור LCD 1602 ל-Arduino: תיאור, פונקציות, הוראות, תכונות, בעיות ופתרונות
Anonim

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

צג LCD 1602 לחיבור לארדואינו
צג LCD 1602 לחיבור לארדואינו

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 עבור התאורה האחורית.

LCD 1602 pinout לתצוגה
LCD 1602 pinout לתצוגה

איפה משתמשים בו?

לתצוגה הזו יש את הפופולריות שלה לא רק בקרב חובבי רדיו, אלא גם בקרב יצרנים גדולים. לדוגמה, מדפסות, מכונות קפה משתמשות גם ב-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
מודול I2C לתצוגת LCD 1602

חיבור עם מודול I2C

חיבור LCD 1602 ל-Arduino Nano עם I2C תופס מעט מקום, רק 4 פינים: הארקה, מתח ו-2 יציאות נתונים. אנו מחברים מתח והארקה ל-5V ו-GND ב-Arduino, בהתאמה. שני המגעים הנותרים: SCL ו-SDA מחוברים לכל פינים אנלוגיים. בתמונה ניתן לראות דוגמה לחיבור lcd 1602 ל-arduino עם מודול I2C:

חיבורי תצוגה באמצעות מודול I2C
חיבורי תצוגה באמצעות מודול 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 1602
הוספת תווים מותאמים אישית ל-LCD 1602

בעיות שבהן ייתכן שהתצוגה לא תעבוד

יש מקרים שבהם התצוגה לא עובדת. לדוגמה, הוא נדלק, אך אינו מציג תווים. או שהוא לא נדלק בכלל. ראשית, בדוק אם חיברת את המגעים בצורה נכונה. אם נהגת לחבר את 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, וכן הציג תוכניות לדוגמה לעבודה עם צג זה. זה באמת אחד הטובים בקטגוריה שלו, זה לא רק שאלפי חובבי רדיו בוחרים בו עבור הפרויקטים שלהם!

מוּמלָץ: