א מסך LCD יכול להיות פיתרון עבור אותם פרויקטים בהם עליך להציג מידע מבלי שתצטרך להיות תלוי במחשב המחובר כל הזמן. כלומר, בפרויקט Arduino / Raspberry Pi, אתה יכול להשתמש ביציאה הטורית כדי להעביר מידע המוצג על המסך כדי לקבל קריאות חיישנים, להציג גרף, חשבונות וכו '. אבל אם הפרויקט שלך פועל כל הזמן או רחוק מהמקום שבו אתה יכול לקבל מחשב, מסך ה- LCD הוא הישועה שלך.
לדוגמה, דמיין שאתה מתקין מערכת השקיה אוטומטית ותרצה לבדוק את קריאות הלחות והטמפרטורה כשאתה הולך לגינת הירק או לגינה שלך. הצורך לקחת לשם את המחשב כדי לחבר את לוח הארדואינו למחשב האישי אינו פיתרון מעשי. במקרה זה, תוכל לשנות את הקוד שלך כך שנאמר מידע מוצג על גבי מסך ה- LCD ואפילו הוסף כמה מקשים או כפתורים כדי להיות מסוגל להציג מידע אחר.
מהו פאנל LCD?
תצוגת גביש נוזלי או LCD (תצוגת גביש נוזלי) זהו סוג של פאנל דק ושטוח שיכול להציג תמונות. כל פאנל מורכב ממספר מסוים של צבעים או פיקסלים מונוכרום שמונחים מול מקור אור. הצריכה שלהם נמוכה, ולכן הם אידיאליים לסוג זה של פרויקטים אלקטרוניים בעלי עוצמה נמוכה DIY.
כל פיקסל על גבי מסך ה- LCD מורכב משכבת מולקולות המיושרות בין שתי אלקטרודות שקופות, ושני מסנני קיטוב. בֵּין מסננים מקטבים יש תצוגת גביש נוזלי, ומכאן שמו, ומונע את חסימת האור שעובר דרך המסנן הראשון על ידי השני.
כמו כן, אם שמתם לב, כשאתה נוגע באחד המסכים האלה התמונה מעוותת ומעין כתם שחור מופיע בעת לחיצה, זאת מכיוון שאתה מפעיל לחץ על הגביש הנוזלי ולא מומלץ לעשות זאת ... יתכן שתסיים עם צבעי מסך באיכות נמוכה יותר, חלוקה לא אחידה של התאורה או אפילו פיקסלים מתים (כתמים שחורים או אזורים על המסך שלא נעלמים).
מסכי LCD ל Arduino ו- Raspberry Pi
מסך LCD, כגון המודולים הקיימים לאלקטרוניקה או לארדואינו, לרוב יש עמודות מרובות להצגת תווים או סמלים אלפאנומריים ושורה אחת או שתיים להצגת מידע. זה הופך אותם להרבה יותר מעניינים מתצוגה בת שבעה קטעים, שתצטרך לחבר מספר פינים כדי להיות מסוגלים להציג רק מספר אחד, סמל או אות אחת. אם אתה רוצה להציג יותר, עליך להציב מספר תצוגות.
במקום זאת, עם מסך LCD יחיד תוכלו להציג מידע רב יותר. אך עליכם להכיר היטב את סוג ההדבקה של סוג זה של מודולים בכדי לחבר אותם כראוי. אני ממליץ לך לראות תמיד גליון הנתונים של היצרן והדגם הספציפיים שיש לך מכיוון שהם עשויים להשתנות.
לדוגמה: אתה יכול לקנות את זה מ- Adafruit באמזון, שהוא אחד הפופולאריים ביותר עם מקלדת ומכיל אפשרות להציג עד 16 תווים בכל אחת משתי השורות שלה. ויש אפילו 20 × 4, או משהו מתקדם יותר וצבע רב אינץ 'להצגת תמונות מורכבות יותר.
למסך LCD של Adafruit 16 × 2 אתה יכול לראות גליון נתונים זה...
לארדואינו אולי פשוט יותר כמו זה עדיף מסך LCD 16x2 ללא מקלדת. אם אתה מסתכל על הלוח הזה, יש לו 16 סיכות מאחור. אם אתה לוקח את הלוח והופך אותו הפוך ומסתכל על הסיכות שלו משמאל לימין, יש לך pinout:
- סיכה 16: GND לתאורה אחורית
- סיכה 15: Vcc לתאורה אחורית
- פין 7-14: 8 סיביות (8 הפינים הבאים) להעברת המידע שיוצג על המסך
- סיכה 6: סנכרון קריאה וכתיבה
- סיכה 5. R / W (כתוב וקרא עבור נתונים ופקודות)
- פין 4: RS (בורר בין פקודות לנתונים)
- סיכה 3: בקרת ניגודיות
- סיכה 2: Vcc של 5v להספק
- סיכה 1: GND (0v) להספק
זכור שכאשר אתה מציב אותו במיקום הנכון הסיכות הפוכות ...
שילוב עם ארדואינו
כדי לחבר אותו לארדואינו זה לא מסובך מדי, עליכם לשקול רק לכלול נגד של 220 אוהם כדי לווסת את מתח הכניסה של עוצמת המסך ופוטנציומטר כדי לווסת את ניגודיות המסך. ואז חבר כל אחד מהסיכות ללוח Arduino כראוי וסיימת. אתה יכול להסתכל על התמונה של Fritzing ...
כפי שאתה יכול לראות, הפוטנציומטר יהיה דרכו הוא מוזן מסך ה- LCD והניגודיות יותאמו גם הם. לכן הוא יקושר גם ל- GND וגם ל- Vcc של התצוגה, כמו גם לקו בקרת התאורה האחורית ולבקרת הניגודיות. אולי זה הכי מסובך, אז זה עניין של חיבור הפינים הנותרים לתשומות / פלטים שאתה הולך להשתמש בפרויקט שלך.
תכנות עם Arduino IDE
לתכנות אתה חייב לקחת בחשבון כמה מוזרויות, יש לזכור כי עליכם לא רק לדעת כיצד לשלוח נתונים, אלא גם להזיזם, למקם אותם היטב על המסך וכו '. וכדאי להשתמש בספרייה בשם LiquidCrystal.h, כל עוד למסך ה- LCD יש ערכת שבבים Hitachi HD44780 תואמת. יש לך דוגמת קוד כאן:
#include <LiquidCrystal.h> // Definimos las constantes #define COLS 16 // Aqui va el num de columnas del LCD, 16 en nuestro caso #define ROWS 2 // Aqui las filas x2 #define VELOCIDAD 200 // Velocidad a la que se movera el texto // Indicamos los pines de la interfaz donde hayas conectado el LCD LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Para el texto que se muestra String texto_fila = "Ejemplo LCD"; void setup() { // Configura el monitor serie Serial.begin(9600); // Configurde filas y columnas lcd.begin(COLS, ROWS); } void loop() { // Tamaño del texto a mostrar int tam_texto=texto_fila.length(); // Indicamos que la entrada de texto se hace por la izquierda for(int i=tam_texto; i>0 ; i--) { String texto = texto_fila.substring(i-1); // Limpia la pantalla para poder mostrar informacion diferente lcd.clear(); //Situar el cursor en el lugar adecuado, en este caso al inicio lcd.setCursor(0, 0); // Escribimos el texto "Ejemplo LCD" lcd.print(texto); // Esperara la cantidad de milisegundos especificada, en este caso 200 delay(VELOCIDAD); } // Desplazar el texto a la izquierda en primera fila for(int i=1; i<=16;i++) { lcd.clear(); lcd.setCursor(i, 0); lcd.print(texto_fila); delay(VELOCIDAD); } // Desplazar el texto a izquierda en la segunda fila for(int i=16;i>=1;i--) { lcd.clear(); lcd.setCursor(i, 1); lcd.print(texto_fila); delay(VELOCIDAD); } for(int i=1; i<=tam_texto ; i++) { String texto = texto_fila.substring(i-1); lcd.clear(); lcd.setCursor(0, 1); lcd.print(texto); delay(VELOCIDAD); } }
עוד מידע - מדריך תכנות של Arduino (PDF בחינם)