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

פותר משוואות ריבועיות עם 2 כפתורים: 5 שלבים
פותר משוואות ריבועיות עם 2 כפתורים: 5 שלבים

וִידֵאוֹ: פותר משוואות ריבועיות עם 2 כפתורים: 5 שלבים

וִידֵאוֹ: פותר משוואות ריבועיות עם 2 כפתורים: 5 שלבים
וִידֵאוֹ: שתי משוואות בשני נעלמים - פתרון על ידי חיסור משוואות 2024, נוֹבֶמבֶּר
Anonim
Image
Image

מבוא

ברוכים הבאים להדרכה הראשונה שלי!

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

באזינגה! זהו מקרה השימוש!

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

אספקה

רשימת חומרים:

קופסא

סגנון ארקייד בעל 2 כפתורים

Arduino Nano, או דומה לו

צג LCD 1602 עם מתאם I2C

מתג הדלק / כבה

חוטים

נגד 2x10k אוהם

סוללה 9v בלוק

מחבר לסוללה 9V

קרש לחם

שונות (פיסת עץ, זווית מתכת, קשרים, בורג, מכונות כביסה)

כלים:

ראה

מלחם

מקדחה

מחשב לתכנות

שלב 1: אחורי מתמטי

תוֹכנָה
תוֹכנָה

אחורית מתמטית

המשוואה הריבועית בעלת 2 כפתורים מציגה את הערכים שבהם הפונקציה הריבועית חוצה את ציר ה- X. פונקציה ריבועית יכולה לחצות את ציר ה- X לעולם, פעם או פעמיים.

ישנן דרכים שונות לחישוב ערכים אלה. עבור הכלי שלי, אני משתמש בנוסחת PQ (אני לא בטוח אם הביטוי הזה ישמש בכל רחבי העולם).

למשוואה ריבועית יש את הצורה:

ax²+bx+c = 0

לחישוב נקודות החצייה, חלק את הטופס ב- x²+px+q = 0 עם p = b/a; q = c/a

נוסחת ה- PQ:

x1 = -p/2 + sqrt ((p/2) ² -q)

x2 = -p/2 -sqrt ((p/2) ² -q)

התוצאה x יכולה לקבל 0, 1 או 2 ערכים. זה תלוי בערך מתחת לשורש הריבועי.

האם הערך הוא> 0, אז ל- PQ-Formula יש שני פתרונות.

האם הערך = 0, אז ל- PQ-Formula יש פתרון אחד

הוא הערך <0, אז לנוסחת PQ אין פתרון. הפונקציה אינה חוצה את ציר ה- X.

שלב 2: תוכנה

תוֹכנָה

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

כדי לפתור את נוסחת PQ, אני יוצר את המבנה למעלה:

מה שבטוח, אני לא ממציא את הגלגל מחדש. ליצירת הקוד השתמשתי במודול:

- ירידה

- תצוגה

הנקודות הבאות היו האתגרים הגדולים ביותר:

- כיצד אוכל לבחור את השלט? פתרתי את האתגר הזה בעזרת הפונקציה modulo (קישור). הקוד מחלק את הקלט ב- 2. האם הקלט הוא מספר אי זוגי, הערך מקבל שלילי, אחרת המספר הוא חיובי.

- לאחר שעברתי את כל הרמות, אני חייב להכריז על כל הערכים ל- 0.

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

הקוד הסופי מצורף.

שלב 3: חומרה

חוּמרָה
חוּמרָה
חוּמרָה
חוּמרָה
חוּמרָה
חוּמרָה
חוּמרָה
חוּמרָה

חוּמרָה

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

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

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

המיקרו -מעבד הוא שיבוט של ננו ארדואינו. במקרה שימוש זה, הביצועים מספיקים. Attiny 85, למשל מיקרו -מעבד Digispark, נדחה. הארדואינו הוא "על הלוח" ליד התצוגה.

התצוגה היא צג LCD של 1602. אתה יכול להשתמש ב -16 תווים בשתי שורות. אתה יכול למצוא תצוגה זו במכונות רבות ושונות. ישנן שתי דרכים שונות לשימוש בתצוגה זו. אתה יכול לחבר את הצג ישירות לבקר או להשתמש בתוסף לתקשורת עם הצג באמצעות I2C. I2C הוא פרוטוקול סטנדרטי. השתמשתי בו, כי קל יותר לחבר את התצוגה לבקר. אתה רק צריך 4 כבלים במקום 16, VCC עד 5V, GND ל- GND, SDA ל- A4, SCL עד A5. הצג קבוע באמצעות ברגים לכריכת הקופסה.

הכפתורים ענקיים! יש להם סגנון משחק ארקייד טיפוסי. אני אוהב את זה! הכפתורים מחוברים לפין דיגיטלי 4 ו 7. נא לא לשכוח את נגדי 10K!

כדי לפתוח את המכסה, למשל להחלפת הסוללה, השתמשתי בכבלים ארוכים יותר המחוברים ללוח הלחם.

שלב 4: חיווט

תִיוּל
תִיוּל

שלב 5: שיפור עתידי

שיפור עתידי

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

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

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

מוּמלָץ: