האמת שיש נושא שעדיין לא סגור כמו שצריך, במאמר Arduino And .Net השתמשתי במסך שמגיע כחלק מ Shield, אבל עדיין לא הסברתי כיצד לחבר מסך LCD ישירות ל Arduino והגיע הזמן לעשות זאת, יש שפע של מסכים מסוגים שונים בשוק את שלי מצאתי כמו תמיד ב DX במחיר של 4 דולר.
דרישות:
- Arduino Uno
- (LCD Screen (16X2
- Potentiometer
- BreadBoard
- Wires
Liquid-Crystal Display
רוב מסכי ה LCD מגיעים עם 16 פינים אבל לא צריך להשתמש בכולם, על מנת לחבר את המסך ל Arduino נצטרך רק 9 פינים את חלקם נעביר לספרייה LiquidCrystal שמגיעה עם הסביבה של Arduino ונחבר פוטנציומטר על מנת שנשלוט בחוזק התאורה האחורית (K, A).
מבנה סופי
קוד
בשביל שלא יהיה משעמם, הקוד מכניס את הטקסט משמאל לימין, כל הודעה לשורה אחרת במסך.
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,4,3,2);
char screen[16];
char message1[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ','P','r','o','x','y','T','y','p','e',' ','B','l','o','g'};
char message2[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ','P','r','o','x','y','T','y','p','e','.','b','l','o','g','s','p','o','t','.','c','o','m'};
void setup()
{
//set the screen chars and rows
lcd.begin(16,2 );
}
void loop()
{
//send the first message to buffer
sendMsg1();
delay(100);
cleanArray();
//send the second message to buffer
sendMsg2();
delay(100);
cleanArray();
}
void sendMsg1()
{
int msgsize = sizeof(message1) / sizeof(char);
for(int i = msgsize; i > 0;i--)
{
pushArray(message1[i],0);
delay(200);
}
}
void sendMsg2()
{
int msgsize = sizeof(message2) / sizeof(char);
for(int i = msgsize; i >0;i--)
{
pushArray(message2[i],1);
delay(200);
}
}
void pushArray(char c, int line)
{
lcd.clear();
lcd.setCursor(0,line);
char tmp = screen[0];
screen[0] = c;
for (int i = 1; i < 16; i++)
{
char locker;
locker = screen[i];
screen[i] = tmp;
if (i == 16)
break;
tmp = locker;
}
lcd.print(screen);
}
void cleanArray()
{
//clear screen buffer
for(int i=0; i < 17; i++)
{
screen[i] = '\0';
}
}
סרט הדגמה
סיכום
בד"כ Shields של LCD מגיעים עם רכיבים נוספים כמו כפתורים ו Leds ולא תמיד יש בהם שימוש וברוב המקרים אנחנו צריכים רק את המסך, מסכים הם אחד הרכיבים הנחוצים עבור חווית משתמש ונשלב אותם כחלק מהפרויקט או ככלים לניטור שננתק אח"כ.
בהצלחה...
בהצלחה...
היי,
השבמחקיש לי מסך שיש לו רק שבעה פינים. מה אני יכול לעשות?
זה קצת בעייתי אתה צריך לבדוק מה רשום על הפינים ב DataSheet של המסך, אם אין לך אותו אז זה מקרה דיי אבוד, יהיה קשה לדעת באיזה ממשק הוא משתמש.
מחק