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

לַחְצָן

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

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

סמל לחצן כפתור

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

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

שילוב כפתור עם ארדואינו

מעגל עם ארדואינו

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

דרכים לחבר אותו

משיכה ומשיכה

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

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

אל תבלבל את זה עם NC או NA, שזה משהו אחר אחר כפי שראינו בעבר. זה בלתי תלוי באחרים ...

נגד הקפצה

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

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

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

ריבאונדר

בעוד שיטת תוכנה אפשר לראות את זה בקטע הקוד הזה:

אם (digitalRead (כפתור) == LOW) // בדוק אם הכפתור נלחץ
{
לחוץ = 1; // המשתנה משנה את הערך
}
אם (digitalRead (כפתור לחצן) == HIGH && לחצו == 1)
{
// בצע את הפעולה הרצויה
לחוץ = 0; // המשתנה חוזר לערכו המקורי
}

דוגמה לפרויקט פשוט

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

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

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

// דוגמה לשרטוט לשליטה בכפתור
סיכה int = 2;
מצב int;
הפועם int = 0;
הגדרת בטל ()

{
pinMode (2, INPUT); // לקריאת הדופק על ידי הזנת קלט סיכה זה

pinMode (13, OUTPUT); // עבור ה- LED

Serial.begin (9600);
}
לולאה בטלה ()

{
אם (digitalRead (2) == HIGH)

{

סיכה = 2;

antiBounce (); // התקשרו לפונקציה נגד הקפצה

}
}
// פונקציית נגד קפיצה בתוכנה
בטל נגד הקפצה ()

{
בעוד (digitalRead (pin) == LOW);
מצב = digitalRead (13);
digitalWrite (מדינה 13 ,!);
בעוד (digitalRead (pin) == HIGH);

}


5 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   תמונת מציין מיקום של מרסלו קסטילו דיג'ו

    מגניב!!! תודה רבה, בניתי CNC ובאופן פרדוקסלי הכפתורים היו הדבר הכי קשה בשבילי לכוון.

  2.   ליליאנה דיג'ו

    היי! אני מתייעץ כטירון בקשר עם GND ... החוט השחור לא אמור לצאת מהקו השלילי שנמצא מעל לזה שמוצג בתרשים 2?

  3.   ג'ון דיג'ו

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

  4.   עומר רומרו רינקון דיג'ו

    שלום, אני עושה פרויקט עם שלושה לחצנים ו-5 נוריות LED ברצף הבא.
    כפתור לחיצה אחד שולח אות ל-1 נוריות לד, אשר קראתי להם 2 ו-1.
    הכפתור השני שולח אות ל-3 נוריות, הנקראות 2,3 ו-4.
    הכפתור השלישי שלי שולח אות ל-3 נוריות LED נוספות, הנקראות 3,4, 5 ו-XNUMX.

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

    1.    יצחק דיג'ו

      שלום עומר,
      אני ממליץ לך לראות את ההדרכה של Arduino שלנו:
      https://www.hwlibre.com/programacion-en-arduino/
      ואתה יכול גם לראות את המאמר שלנו על מיליס ():
      https://www.hwlibre.com/millis-arduino/
      ברכה.