כיצד להיפטר מקפיצות מגע בעת חיבור כפתור לארדואינו

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

כיצד להיפטר מקפיצות מגע בעת חיבור כפתור לארדואינו
כיצד להיפטר מקפיצות מגע בעת חיבור כפתור לארדואינו

וִידֵאוֹ: כיצד להיפטר מקפיצות מגע בעת חיבור כפתור לארדואינו

וִידֵאוֹ: כיצד להיפטר מקפיצות מגע בעת חיבור כפתור לארדואינו
וִידֵאוֹ: חיבור מסך לארדואינו 2024, נוֹבֶמבֶּר
Anonim

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

אפקט הקפצה ליצירת קשר
אפקט הקפצה ליצירת קשר

נחוץ

  • - ארדואינו;
  • - כפתור טקט;
  • - נגד בעל ערך נומינלי של 10 kOhm;
  • - דיודה פולטת אור;
  • - חוטי חיבור.

הוראות

שלב 1

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

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

קפיצה ליצירת קשר בעת לחיצה על כפתור
קפיצה ליצירת קשר בעת לחיצה על כפתור

שלב 2

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

חיבור כפתור לארדואינו באמצעות מעגל נגדים נשלף
חיבור כפתור לארדואינו באמצעות מעגל נגדים נשלף

שלב 3

כדי לבצע משימה זו, הדבר הראשון שעולה בראשך:

- זכרו את המצב הקודם של הכפתור;

- להשוות למצב הנוכחי;

- אם המדינה השתנתה, אנו משנים את מצב ה- LED.

בואו נכתוב סקיצה כזו ונטען אותה בזיכרון הארדואינו.

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

שרטוט לחיצה על לחצן עיבוד מבלי להתחשב בהקפצה ליצירת קשר
שרטוט לחיצה על לחצן עיבוד מבלי להתחשב בהקפצה ליצירת קשר

שלב 4

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

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

על ידי איתור העיתונות אנו משנים את מצב הנורית.

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

שרטוט של עיבוד לחיצת כפתור, תוך התחשבות בהקפצת קשר
שרטוט של עיבוד לחיצת כפתור, תוך התחשבות בהקפצת קשר

שלב 5

פונקציונליות דומה מספקת ספריות מיוחדות כגון ספריית Bounce2.תוכלו להוריד אותו מהקישור במדור "מקורות" או באתר https://github.com/thomasfredericks/Bounce2. להתקנת הספרייה, הצב אותה בספריית הספריות בסביבת הפיתוח של Arduino והפעל מחדש את IDE.

ספריית "Bounce2" מכילה את השיטות הבאות:

Bounce () - אתחול של האובייקט "Bounce";

מרווח ריק (ms) - קובע את זמן ההשהיה באלפיות השנייה;

void attach (מספר סיכה) - מגדיר את הסיכה אליו מחובר הכפתור;

עדכון int () - מעדכן את האובייקט ומחזיר true אם מצב הסיכה השתנה, ושקר אחרת;

int read () - קורא את המצב החדש של הסיכה.

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

מוּמלָץ: