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

חיישן מגע עמיד בעל 5 חוטים: 10 שלבים
חיישן מגע עמיד בעל 5 חוטים: 10 שלבים

וִידֵאוֹ: חיישן מגע עמיד בעל 5 חוטים: 10 שלבים

וִידֵאוֹ: חיישן מגע עמיד בעל 5 חוטים: 10 שלבים
וִידֵאוֹ: האנשים הכי שמנים בעולם | טופטן 2024, יולי
Anonim
חיישן מגע עמיד בעל 5 חוטים
חיישן מגע עמיד בעל 5 חוטים

שלום שלום!

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

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

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

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

היום אנחנו רק הולכים לקבל לוח מגע פשוט בעל 5 חוטים שעובד עם DP-32.

בואו נתחיל!

שלב 1: מה שאתה צריך

מה אתה צריך
מה אתה צריך

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

  • בקר בקר.

    אני משתמש ב- DP32 שלי עם לוח לחם מובנה מכיוון שהוא הופך את אב הטיפוס לפשוט להפליא

  • חוטים וכבלים שונים.

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

  • לוח מגע התנגדותי בעל 5 חוטים!

    היה לי לוח מגע התנגדות בעל 4 חוטים, אבל כבל הסרט עבורו נשבר

וזה הכל!

שלב 2: מהו לוח מגע עמיד בעל 5 חוטים?

מהו לוח מגע עמיד בעל 5 חוטים?
מהו לוח מגע עמיד בעל 5 חוטים?
מהו לוח מגע עמיד בעל 5 חוטים?
מהו לוח מגע עמיד בעל 5 חוטים?
מהו לוח מגע עמיד בעל 5 חוטים?
מהו לוח מגע עמיד בעל 5 חוטים?

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

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

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

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

בתמונה השלישית תוכלו לראות כיצד התצורה משתנה כדי לאפשר לנו לחוש לאורך ציר ה- Y. כך נוכל לדעת היכן בחלל דו-ממדי האצבע שלנו נוגעת!

שלב 3: חיווט

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

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

החיווט שלך עשוי להיות שונה, כמובן, אך החיווט שלי הוא כדלקמן:

אנלוגי 0 (סיכה 6) מתחבר לחיישן (סיכה אמצעית)

Digital 3 מתחבר לימין למעלה (סיכה העליונה ביותר)

Digital 2 מתחבר לשמאל למעלה (סיכה השנייה בחלק העליון ביותר)

Digital 1 מתחבר למטה-שמאל (סיכה השנייה התחתונה ביותר)

0 דיגיטלי מתחבר למטה-ימינה (סיכה תחתונה ביותר)

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

שלב 4: פיתוח תוכנה

פיתוח תוכנה
פיתוח תוכנה

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

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

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

שלב 5: מדינת מכונת מצמוץ

מצמוץ מכונת המדינה
מצמוץ מכונת המדינה

הצעד הראשון שלי הוא לשנות את פונקציית ההבהוב מאחת המבוססת על "עיכוב ()" למכשיר מצב.

עבור אלה שאינם רגילים להחליף הצהרות, זה עובד באופן דומה לאמירה אם. זה (בתיבה הכתומה) בודק את משתנה ה"מצב "שלנו (שמתחיל ב -0). ואז זה קופץ למצב הנוכחי שלנו. תראה כי מקרה 0 ו -2 אחראים על כיבוי והדלקת הנורית (בהתאמה), ואילו מקרה 1 ו -3 אחראים להמתנה בין המתגים.

שלב 6: כפתור מהבהב

כפתור מהבהב
כפתור מהבהב
כפתור מהבהב
כפתור מהבהב
כפתור מהבהב
כפתור מהבהב

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

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

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

שלב 7: תקשורת סדרתית

תקשורת סדרתית
תקשורת סדרתית
תקשורת סדרתית
תקשורת סדרתית

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

שלב 8: קואורדינטות קריאה

קואורדינטות קריאה
קואורדינטות קריאה
קואורדינטות קריאה
קואורדינטות קריאה
קואורדינטות קריאה
קואורדינטות קריאה
קואורדינטות קריאה
קואורדינטות קריאה

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

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

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

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

הערה: קבוע DEBOUNCE_TIME עשוי להיות מעט נמוך. אתה מוזמן להגדיל אותו.

שלב 9: ניקוי

ניקיון
ניקיון
ניקיון
ניקיון
ניקיון
ניקיון

הגענו לגרסה הסופית של הקוד לפרויקט זה!

ראשית, הוספתי פונקציה בשם loop_diff () לחישוב הזמן שחלף. השעון הפנימי של ה- DP32 הוא ארוך ללא סימן ולמרות שזה מאוד לא סביר, קיימת האפשרות שהשעון עלול לולאה מתישהו בזמן ריצה של קוד זה*. במקרה כזה, פשוט להפחית את הזמן הנוכחי מהזמן שנחסך ב- btn_time או panel_time ייתן לנו משהו מוזר, אז כתבתי loop_diff () כדי לזהות מתי מתרחשות לולאות ולהתנהג בהתאם.

עשיתי גם קצת ניקוי קל. הסרתי את המשתנה "state_time" שאינו בשימוש כעת. עברתי מתג LED_BUILTIN (שהוא תקן Arduino) לתג PIN_LED1 (שהוא סטנדרטי עבור chipKit ו- DP32). הסרתי גם את כל ההודעות באמצעות Serial על התחלה וסיום של התהליך, מה שהופך את הנתונים שלנו דרך Serial לנקיים הרבה יותר.

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

שלב 10: מחשבות אחרונות

מחשבות אחרונות
מחשבות אחרונות

וזה הכל!

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

זהו תהליך למידה בשבילי, אז אל תהסס להשאיר את מחשבותיך והצעותיך בתגובות למטה.

תודה, ונתראה בפעם הבאה!

מוּמלָץ: