תכנות הוא תמיד מהנה וארדואינו היא פלטפורמה נפלאה אם אתה רק מתחיל בתכנות משובצות. במדריך זה נבנה מחשבון משלנו עם Arduino. ניתן לשלוח את הערכים דרך לוח המקשים (לוח המקשים 4 × 4) וניתן לראות את התוצאה על גבי מסך LCD (מטריצת נקודה 16 × 2). מחשבון זה יכול לבצע פעולות פשוטות כמו חיבור, חיסור, כפל וחילוק עם מספרים שלמים. אבל ברגע שאתה מבין את הרעיון אתה יכול ליישם אפילו פונקציות מדעיות עם הפונקציות המובנות של Arduino.
בסוף פרויקט זה תוכלו לדעת להשתמש ב- LCD 16x2 ולוח מקשים עם Arduino וגם כמה קל לתכנת עבורם באמצעות הספריות הזמינות. תוכלו גם להבין כיצד לתכנת את הארדואינו לביצוע משימה מסוימת.
חומרים נדרשים:
- Arduino Uno (כל גרסה תפעל)
- צג LCD 16 × 2
- לוח מקשים 4 × 4
- סוללה 9V
- לוח לחם וחוטי חיבור
תרשים מעגל:
תרשים המעגל השלם של פרויקט מחשבון Arduino זה ניתן לעיל. ניתן להשיג את חיבור + 5 וולט והקרקע המוצג בתרשים המעגל מהסיכה 5 וולט והארקה של הארדואינו. ניתן להפעיל את הארדואינו עצמו מהמחשב הנייד שלך או דרך שקע DC באמצעות מתאם 12 וולט או סוללת 9 וולט.
אנו מפעילים את ה- LCD במצב 4 סיביות עם Arduino כך שרק ארבע סיביות הנתונים האחרונות של ה- LCD מחוברות ל- Arduino. למקלדת יהיו 8 סיכות פלט שיש לחבר בין סיכה 0 לסיכה 7 כמוצג לעיל. אתה יכול להשתמש בטבלת החיבורים הבאה כדי לאמת את החיבור שלך עם Arduino, אתה יכול גם לבדוק ממשק לוח מקשים 4x4 עם Arduino.
שם סיכה של ארדואינו: |
מחובר ל: |
D0 |
1 st סיכה של המקלדת |
D1 |
2 nd סיכה של המקלדת |
D2 |
3 rd PIN של המקלדת |
D3 |
4 th סיכה של המקלדת |
D4 |
5 th סיכה של המקלדת |
D5 |
6 ה פינים של המקלדת |
D6 |
7 th סיכה של המקלדת |
D7 |
8 th סיכה של המקלדת |
D8 |
רשום בחר סיכה של LCD (סיכה 4) |
D9 |
אפשר סיכה של LCD (סיכה 6) |
D10 |
סיכה נתונים 4 (סיכה 11) |
D11 |
סיכה נתונים 4 (סיכה 11) |
D12 |
סיכה נתונים 4 (סיכה 11) |
D13 |
סיכה נתונים 4 (סיכה 11) |
+ 5 וולט |
מחובר לסיכת Vdd של LCD (סיכה 2) |
קרקע, אדמה |
מחובר ל- Vss, Vee ו- RW pin של LCD (סיכה 1,3 ו- 5) |
חלק מהלוחות של Arduino עשויים להציג שגיאה בזמן העלאת התוכנית אם יש משהו שמחובר לסיכה 0 ולסיכה 1, כך שאם אתה נתקל בכאלה פשוט הסר את לוח המקשים בזמן העלאת התוכנית.
לאחר סיום החיבורים שלך החומרה שלך תיראה ככה למטה
תוכנית מחשבון Arduino:
התוכנית המלאה של ארדואינו לפרויקט זה ניתנת בסוף פרויקט זה. הקוד מחולק לנתחים משמעותיים קטנים ומוסבר להלן.
כפי שנאמר קודם אנו הולכים להתממשק LCD ומקלדת עם Arduino באמצעות ספריות. אז בואו נוסיף אותם לראשונה ל- ID של ארדואינו. הספרייה עבור LCD כבר כלולה בארדואינו שלך כברירת מחדל ולכן איננו צריכים לדאוג לגביה. לספריית לוח המקשים לחץ על הקישור להורדתו מ- Github. תקבל קובץ ZIP, ואז הוסף את ה- lib הזה לארדואינו על ידי סקיצה -> כלול ספרייה -> הוסף קובץ.ZIP והצביע את המיקום לקובץ שהורד. לאחר שסיימנו כולנו מוכנים לתכנות.
למרות שהשתמשנו בספרייה לשימוש בלוח המקשים עלינו להזכיר כמה פרטים (המוצגים להלן) על לוח המקשים לארדואינו. המשתנה ROWS ו- COLS יגיד כמה שורות ועמודות יש למקלדת המקשים שלנו ומפת המקשים מראה את הסדר שבו המקשים נמצאים במקלדת. לוח המקשים שבו אני משתמש בפרויקט זה נראה כך למטה על מפת המפתחות מייצג את אותו הדבר.
בהמשך הבא הזכרנו לאילו סיכות מחובר המקשים באמצעות המערך המשתנה rowPins ו- colPins .
שורות בתים קונסט = 4; // ארבע שורות const byte COLS = 4; // שלוש עמודות // הגדר את מקשי האותיות של מקש המקשים = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, { '7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; בתים rowPins = {0, 1, 2, 3}; // חבר את לוח המקשים ROW0, ROW1, ROW2 ו- ROW3 לסיכות הארדואינו האלה. בתים colPins = {4, 5, 6, 7}; // חבר את לוח המקשים COL0, COL1 ו- COL2 לסיכות הארדואינו האלה.
לאחר שהזכרנו באיזה סוג לוח מקשים אנו משתמשים ואיך הוא מחובר, נוכל ליצור את לוח המקשים באמצעות הפרטים הללו באמצעות השורה למטה.
לוח מקשים kpd = לוח מקשים (makeKeymap (מקשים), rowPins, colPins, ROWS, COLS); // צור את לוח המקשים
באופן דומה עלינו גם לומר לאילו סיכות של הארדואינו מחובר ה- LCD. על פי דיאגרמת המעגל שלנו ההגדרות יהיו כמו להלן
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // סיכות שאליהן מחובר LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // ליצור את ה- LCD
בתוך פונקציית ההתקנה , אנו פשוט מציגים את שם הפרויקט ואז ממשיכים לולאה במקום בו נמצא הפרויקט הראשי.
בעיקרון, עלינו לבדוק אם מקלידים משהו בלוח המקשים, אם מקלידים עלינו לזהות מה מוקלד ואז להמיר אותו למשתנה כאשר לוחצים על "=" עלינו לחשב את התוצאה ואז לבסוף להציג אותה על גבי ה- LCD. זה בדיוק מה שנעשה בתוך פונקציית הלולאה כפי שמוצג להלן
מפתח = kpd.getKey (); // אחסון ערך מקש לחוץ בתו char אם (מקש! = NO_KEY) DetectButtons (); אם (תוצאה == נכון) CalculateResult (); DisplayResult ();
מה שקורה בתוך כל פונקציה מוסבר באמצעות שורות ההערות, עברו על הקוד השלם למטה, התעסקו איתו כדי להבין איך זה עובד בפועל. אם יש לך ספק בקו מסוים, אל תהסס להשתמש בסעיף ההערות או בפורומים.
הדמיית מחשבון ארדואינו:
אנחנו יכולים גם לנסות לדמות את הפרויקט באמצעות תוכנת Proteus. ל- Proteus אין רכיב Arduino בפני עצמו, אך ניתן להוריד אותו בקלות ולהוסיף לספרייתו. ברגע שיש לך את רכיב ה- Arduino ב- Proteus, פשוט הוסף LCD אלפאנומרי ולוח מקשים כדי ליצור את החיבור כפי שמוצג בתרשים המעגל.
לאחר מכן הורד את קובץ ה- hex מכאן והוסף אותו לארדואינו על ידי לחיצה כפולה על הלוח ב- Proteus והצביע את "קובץ התוכנית" לקובץ ה- hex שהורד. צילום הצילום של הסימולציה מוצג למטה, העבודה המלאה מוצגת בסרטון למטה.
הערה: קובץ ה- hex שניתן אינו זהה למקור התוכנית המופיע להלן. זה שונה מאז שמפתח המקשים של לוח המקשים לסימולציה ומקלדת החומרה בפועל שונה.
עבודה של מחשבון Arduino:
בצע את החיבורים לפי דיאגרמת המעגל והעלה את הקוד למטה. אם זה מראה שגיאה וודא שהוספת את הספרייה בהתאם להוראות שניתנו לעיל. אתה יכול גם לנסות את הסימולציה כדי לבדוק אם הבעיה היא בחומרה שלך. אם הכל נעשה כמו שהוא אמור להיות, אז החומרה שלך תיראה ככה למטה כשה- LCD יציג זאת
מכיוון שלוח המקשים המשמש כאן אינו מכיל סימנים מתאימים, הנחתי שהאלפבית הם אופרטורים כמפורט להלן
דמות בלוח המקשים |
הנחה להיות |
"א" |
תוספת (+) |
"B" |
חיסור (-) |
"C" |
כפל (*) |
"D" |
חטיבה (/) |
"*" |
נקה (C) |
"#" |
שווה (=) |
אתה יכול להשתמש בסמן כדי לכתוב מעל מה כל כפתור מייצג בפועל.
עם זאת, תוכלו להתחיל ישירות להשתמש במחשבון. מקליד את המספר ויופיע בשורה השנייה לחץ על האופרנד והקלד את המספר השני שלך ולבסוף לחץ על מקש "#" כדי לקבל את התוצאה שלך. אתה יכול גם לנסות לבנות מחשבון Arduino מבוסס מסך מגע.