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

מחשבון LCD מאת Jai Mishra: 8 שלבים
מחשבון LCD מאת Jai Mishra: 8 שלבים

וִידֵאוֹ: מחשבון LCD מאת Jai Mishra: 8 שלבים

וִידֵאוֹ: מחשבון LCD מאת Jai Mishra: 8 שלבים
וִידֵאוֹ: Начало работы с калькулятором Casio Classwiz FX-991EX FX-87DEX FX-570EX 2024, יולי
Anonim
מחשבון LCD מאת ג'אי מישרא
מחשבון LCD מאת ג'אי מישרא

פרויקטים של טינקרד »

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

אספקה

  • Arduino Uno R3
  • נגד 220 אוהם
  • לוח מקשים 4*4
  • 16*2 LCD
  • חבורת חוטים לחיבור המעגל

שלב 1: אסוף את האביזרים שלך ב- TinkerCad

אסוף את הציוד שלך ב- TinkerCad
אסוף את הציוד שלך ב- TinkerCad

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

שלב 2: סדר את האספקה שלך

סדר את האספקה שלך
סדר את האספקה שלך

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

שלב 3: חיבור החוטים

חיבור החוטים
חיבור החוטים

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

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

שלב 4: כתיבת הקוד

כתיבת הקוד
כתיבת הקוד
כתיבת הקוד
כתיבת הקוד
כתיבת הקוד
כתיבת הקוד

#לִכלוֹל

#כלול #כלול

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

ארוך ראשון = 0; שנייה ארוכה = 0; סה כ כפול = 0;

char customKey; שורות const byte = 4; const byte COLS = 4;

מפתחות char [ROWS] [COLS] = {{'1', '4', '7', '/'}, {'2', '5', '8', '+'}, {'3', '6', '9', '-'}, {'C', '0', '=', '*'}}; בתים rowPins [ROWS] = {7, 6, 5, 4}; // להתחבר לשורות החריפות של בייט המקשים colPins [COLS] = {3, 2, 1, 0}; // התחבר לסיבוכי העמודות של לוח המקשים

// לאתחל מופע של לוח מקשים NewKeypad customKeypad = לוח מקשים (makeKeymap (מפתחות), rowPins, colPins, ROWS, COLS);

הגדרת חלל () {lcd.begin (16, 2); // התחל lcd עבור (int i = 0; i <= 3; i ++); lcd.setCursor (0, 0); lcd.print ("מחשבון"); lcd.setCursor (0, 1); lcd.print ("מאת ג'אי משנה"); עיכוב (4000); lcd.clear (); lcd.print ("פרויקט גמר"); עיכוב (2500); lcd.clear (); lcd.setCursor (0, 0); }

לולאת חלל () {

customKey = customKeypad.getKey (); switch (customKey) {case '0' … '9': // פעולה זו ממשיכה לאסוף את הערך הראשון עד לחיצה על אופרטור "+-*/" lcd.setCursor (0, 0); first = first * 10 + (customKey - '0'); lcd.print (ראשון); לשבור;

מקרה '+': הראשון = (סה"כ! = 0? סה"כ: הראשון); lcd.setCursor (0, 1); lcd.print ("+"); second = SecondNumber (); // לקבל את שנאסף המספר השני הכולל = הראשון + השני; lcd.setCursor (0, 3); lcd.print (סה"כ); הראשון = 0, השני = 0; // אפס את הערכים לאפס להפסקת השימוש הבאה;

מקרה '-': ראשון = (סה"כ! = 0? סה"כ: ראשון); lcd.setCursor (0, 1); lcd.print ("-"); second = SecondNumber (); סה"כ = ראשון - שני; lcd.setCursor (0, 3); lcd.print (סה"כ); הראשון = 0, השני = 0; לשבור;

מקרה '*': הראשון = (סה"כ! = 0? סה"כ: הראשון); lcd.setCursor (0, 1); lcd.print ("*"); second = SecondNumber (); סה"כ = הראשון * השני; lcd.setCursor (0, 3); lcd.print (סה"כ); הראשון = 0, השני = 0; לשבור;

מקרה '/': ראשון = (סה"כ! = 0? סה"כ: ראשון); lcd.setCursor (0, 1); lcd.print ("/"); second = SecondNumber (); lcd.setCursor (0, 3);

שני == 0? lcd.print ("לא חוקי"): total = (float) הראשון / (float) השני;

lcd.print (סה כ); הראשון = 0, השני = 0; לשבור;

מקרה 'C': סה כ = 0; lcd.clear (); לשבור; }}

long SecondNumber () {while (1) {customKey = customKeypad.getKey (); if (customKey> = '0' && customKey <= '9') {second = second * 10 + (customKey - '0'); lcd.setCursor (0, 2); lcd.print (שני); }

אם (customKey == '=') שבירה; // חזור שני; } חזור שני; }

שלב 5: פירוק הקוד

שוברים את הקוד
שוברים את הקוד

אתחלנו את הערכים כדי שהמחשב יבין

#לִכלוֹל

#כלול #כלול

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

ארוך ראשון = 0; שנייה ארוכה = 0; סה כ כפול = 0;

char customKey; שורות const byte = 4; const byte COLS = 4;

סיפרנו למחשב את המספרים והסימנים שאליהם לוח המקשים אמור לפעול

מפתחות char [ROWS] [COLS] = {{'1', '2', '3', '/'}, {'4', '5', '6', '+'}, {'7', '8', '9', '-'}, {'C', '0', '=', '*'}};

סיימנו את השורות והעמודות של לוח המקשים ואיזה מספר מגיע באיזה עמודה וכו '

בתים rowPins [ROWS] = {7, 6, 5, 4}; בת colPins [COLS] = {3, 2, 1, 0};

יצרנו את המבוא, או את כוח ההפעלה של המחשב (אתה יכול לכתוב עליו שם משלך)

הגדרת חלל () {lcd.begin (16, 2); עבור (int i = 0; i <= 3; i ++); lcd.setCursor (0, 0); lcd.print ("מחשבון"); lcd.setCursor (0, 1); lcd.print ("מאת ג'אי משנה"); עיכוב (4000); lcd.clear (); lcd.print ("פרויקט גמר"); עיכוב (2500); lcd.clear (); lcd.setCursor (0, 0); }

אנו יוצרים את המשמעות והנוסחה לכל פעולה במחשבון כך שהמחשב יבין באיזו נוסחה להשתמש כאשר המשתמש לוחץ על "+" על המחשבון וכו '

{מקרה '0' … '9': lcd.setCursor (0, 0); first = first * 10 + (customKey - '0'); lcd.print (ראשון); לשבור;

מקרה '/': הראשון = (סה"כ! = 0? סה"כ: הראשון); lcd.setCursor (0, 1); lcd.print ("/"); second = SecondNumber (); lcd.setCursor (0, 3);

שני == 0? lcd.print ("לא חוקי"): total = (float) הראשון / (float) השני;

lcd.print (סה"כ); הראשון = 0, השני = 0; לשבור; מקרה '+': הראשון = (סה"כ! = 0? סה"כ: הראשון); lcd.setCursor (0, 1); lcd.print ("+"); second = SecondNumber (); lcd.setCursor (0, 3); lcd.print (סה"כ); הראשון = 0, השני = 0; לשבור;

מקרה '-': ראשון = (סה"כ! = 0? סה"כ: ראשון); lcd.setCursor (0, 1); lcd.print ("-"); second = SecondNumber (); סה"כ = ראשון - שני; lcd.setCursor (0, 3); lcd.print (סה"כ); הראשון = 0, השני = 0; לשבור;

מקרה '*': הראשון = (סה"כ! = 0? סה"כ: הראשון); lcd.setCursor (0, 1); lcd.print ("*"); second = SecondNumber (); סה"כ = הראשון * השני; lcd.setCursor (0, 3); lcd.print (סה"כ); הראשון = 0, השני = 0; לשבור;

מקרה 'C': סה כ = 0; lcd.clear (); לשבור; }}

הקוד מאוד קל, כל שעליך לעשות הוא לנסות להבין אותו ואז אפשר לעשות הכל בקלות. אם יש בעיות בקוד, שלח לי דוא"ל

שלב 6: כיצד פועלת החומרה של מחשבון זה?

כיצד פועלת החומרה של מחשבון זה?
כיצד פועלת החומרה של מחשבון זה?

מחשבון זה משתמש ב- LCD, לוח מקשים, לוח Arduino ונגד 220 אוהם. כל הרכיבים הללו נפרדים אך מחוברים לחוטים מהארדואינו ללוח המקשים ול- LCD. חלקים שונים של ה- LCD מחוברים ללוח ה- Arduino שבסופו של דבר מחבר את שניהם עם לוח המקשים. לאחר החיבור, הקידוד מבצע את כל העבודה ונותן לכל פעולה ולחצן בלוח המקשים עבודה לבצע.

שלב 7: תצוגה מקדימה מלאה של המחשבון

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

שלב 8: ההשראה שלי לקוד הזה

קיבלתי השראה מהסרטון למעלה כיצד להכין מחשבון ב- tinkercad! לא העתקתי והדבקתי שום דבר אבל השתמשתי ברעיון שלו במחשבון ובהבנת הקוד.

מוּמלָץ: