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

כיצד לקרוא מתגים רבים בעזרת סיכת MCU אחת: 4 שלבים
כיצד לקרוא מתגים רבים בעזרת סיכת MCU אחת: 4 שלבים

וִידֵאוֹ: כיצד לקרוא מתגים רבים בעזרת סיכת MCU אחת: 4 שלבים

וִידֵאוֹ: כיצד לקרוא מתגים רבים בעזרת סיכת MCU אחת: 4 שלבים
וִידֵאוֹ: אייל גולן, אני קורא לך! 2024, נוֹבֶמבֶּר
Anonim
כיצד לקרוא מתגים רבים בעזרת סיכת MCU אחת
כיצד לקרוא מתגים רבים בעזרת סיכת MCU אחת

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

עם זאת, עד מהרה היו לי שבעה מתגים נוספים ב- Funbox שלי (כן, כך קראתי למחולל הפונקציות שלי … אני יודע, אין לי יצירתיות) והנה הוראה קצרה המראה לך כיצד תוכל לעשות זאת. זה לא דורש שום רישום משמרות או IC ספציפי. למעשה, הוא גם לא דורש מיקרו -בקר, אם אתה מגלגל מוליכים למחצה נפרדים. הנה אחת הדרכים שבהן אתה יכול לקרוא/לנהל מתגים מרובים באמצעות סיכה אחת במכשיר ה- AVR שלך (או מיקרו -בקר אחר … שמעתי שיש מיקרו -בקרים אחרים מלבד AVR, אבל אני לא יכול לדמיין …).:)

שלב 1: היסודות (לא באמת)

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

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

שלב 2: מחלק המתח

מחלק המתח
מחלק המתח
מחלק המתח
מחלק המתח

בעיקרו של דבר, הדרך שבה אנו הולכים לעשות זאת היא באמצעות טכניקה ומעגל הנקרא מחלק מתח. מחלקי מתח עושים, כפי שאולי ניחשתם, מחלקים את המתח V,,,, בערך כלשהו אותו אתם קובעים. אתה יכול לחלק מתח עם מספר רכיבים, כולל קבלים ומשרנים, אבל כאן אני הולך לעשות את זה עם הנגד הטוב. הרעיון מה שאנחנו עושים הוא לשים שני רכיבים בסדרה שיגרמו, כל אחד בנפרד, לירידת מתח על פני הרכיב. תסתכל על התמונה הראשונה אם אני לא הגיוני. יש הבדל פוטנציאלי של 9V ממסילה לרכבת. בין 9V ל 0V ישנם שני נגדים בסדרה. כל אחד מאלה יחווה ירידת מתח על עצמו, בהתאם להתנגדות, כפי שאתה בוודאי זוכר מ- V = IR. אם תבצע מדידת מתח בין שני הנגדים, תקבל ערך כלשהו בין 9V ל 0V, תלוי כמה מתח ירד על פני הנגד הראשון וכמה נותר לרדת מעל הנגד השני, לפני 0V. יש נוסחה פשוטה לחישוב ירידת המתח על פני הנגד במצב זה וזה נראה כך. תן למתח מעל הנגד 1 (R1) להיות V1 והמתח על הנגד השני (R2) יהיה V2. מכיוון שאיני יכול להשתמש בעיצוב יותר, עיין בתמונה 2 למטה לנוסחה … לכן, במחיצה ההתנגדות שלנו, ניתן לקבוע את מתח ה- Vout על ידי הנוסחה שלנו ל- V2 (מכיוון שנתייחס ל- GND ל- 0V). מה זה קשור לזהות חבורה של מתגים מפין אחד? ובכן, הפוך את הדף ואני אראה לך!

שלב 3: סולם מחלק מתח

סולם מחלק מתח
סולם מחלק מתח

נניח שיש לנו את כל המתגים שלנו, אולי שישה או שמונה או שש עשרה, כולם מחוברים באמצעות נגדים שכל אחד מהם משמש כמחלק מתח, כך שכאשר מצב סיכת המתג משתנה, המתח נקרא ומתבסס על רמת המתח, אנו יכול לדעת איזה מתג הופעל זה עתה. להסתכל מתחת. בתמונה למטה, חיברתי שני בלוקים של מתגים. הבלוק העליון ביותר כולל שני מתגים, והבלוק התחתון ביותר כולל חמישה מתגים. אתה יכול לחבר את המתגים הנפרדים, הרגעיים, המישושיים וכו 'באותה הדרך. הדבר החשוב שיש לשים לב אליו הוא הנגד שאליו המתג שלך מחובר. בדוגמה שלי, כמעט הכפלתי את ההתנגדות של הנגד הבא ליצירת פער מתח שקל למדוד ולא לטעות במתג לפני או אחרי. אם לא שמת לב לפני כן, הסתכל שוב והבין שחזרנו לחברנו הוותיק, מחלק המתח ההתנגדות. הנגד הראשון, 10k אוהם, מחובר ל- 5V והנגד השני - הנגד שיקבע Vהַחוּצָה עבור סיכת SWITCH_ADC, מחובר לכל מתג ולכן כל מתג קשור למתח Vout מסוים הניתן לקריאה מסיכת ה- ADC המחוברת ב- SWITCH_ADC. לאחר מכן, קבע את ה- Vout הצפוי מכל מתג כך

Vout = Vin * (R2 / (R1 + R2))

למתג 1:

Vout = 5V * (500 / (10000 + 500)) = 5 * 0.048 = 0.24V או 240 mV

עבור מתג שני:

Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V או ~ 900mV

וכן הלאה.. אל תהסס להחליף ערכים משלך ב- R2 אם יש לך רק נגדים מסוימים … הדבר המרכזי כאן הוא לשמור על פער רחב מספיק במתח בין המתגים, כך שכל שגיאת שגיאה ב- ADC תזכה ' לא להכניס אותך למתח הצפוי ממתג שכנה. מצאתי שהדבר הכי קל לעשות הוא לבנות את סולם המחיצה ולשים מולטימטר/וולטמטר על סיכת ה- ADC וללחוץ על כל סיכה ולראות אילו ערכים אתה מקבל. הם צריכים להיות די מדויקים במה שאתה מחשב. ברגע שיש לך את כל ערכי המתח הצפויים מכל מתג באמצעות הנגד מסוים, תוכל לתת ל- MCU שלך לקרוא את סיכת ה- ADC ולהשוות את זה לערכים הידועים שלך כדי לקבוע על איזה מתג נלחץ. לדוגמה, נניח שרשמת שגרת שירות להפרעה שתתקשר אליה בכל פעם שיש שינוי שנמצא בסין ה- ADC. בתוך אותו ISR, תוכל לקרוא את ה- ADC ולהשוות ערך זה מול טבלת המתגים שלך. אם אתה משתמש בערך ADC של 8 סיביות, המתח שלך יומר למספר שבין 0 ל -255 המתאים למתח בין 0V ל -5V. זה מניח שהגדרת ה- ADC שלך כך.

שלב 4: סיכום

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

מוּמלָץ: