زر الضغط: كيفية استخدام هذا العنصر البسيط مع Arduino

زر

Un زر الضغط هو زر يسمح بمقاطعة أو إرسال إشارة إلكترونية. مع هذا العنصر البسيط المدمج مع العناصر الأخرى ، يمكنك إنشاء مشاريع للعديد من التطبيقات. يعد استخدام هذا النوع من الأزرار الانضغاطية شائعًا جدًا عندما يتعلق الأمر بالمشاريع مع Arduino. ومن خلال الجمع بين العديد من هذه الأزرار ، يمكنك إنشاء لوحة مفاتيح أكثر تعقيدًا إلى حد ما ، على الرغم من وجود لوحات مفاتيح قابلة للبرمجة لهذه الاستخدامات ...

بالمناسبة يجب ألا تخلط بين الزر الانضغاطي والمفتاح. إنها أشياء مختلفة تمامًا. الفرق هو أن المفتاح أو المفتاح يتم تنشيطه أو إلغاء تنشيطه مع كل ضغطة يتم إجراؤها عليه. في حين أن زر الضغط سيبقى في حالة واحدة فقط أثناء ممارسة الضغط عليه. لقد علقت أنه يمكن الإرسال أو المقاطعة ، وذلك بسبب وجود نوعين أساسيين من الأزرار.

ضغط زر

هناك NO أو الأزرار الانضغاطية المفتوحة عادةً و NC أو الأزرار الانضغاطية المغلقة عادةً. سيبدو لك هذا أيضًا من المرحلات. ونعم ، إنها بالضبط نفس العملية. عندما يكون لديك NC ، فإنه سيسمح للتيار بالمرور من خلال أطرافه ولا يقطع إلا أثناء الضغط عليه. من ناحية أخرى ، لا يسمح NA للتيار بالمرور عندما لا يتم الضغط عليه ولن يسمح له بالمرور إلا عند الضغط عليه.

مع العلم أن، تقريبًا كل ما تحتاج لمعرفته حول زر الضغط لبدء الاتصال والبرمجة باستخدام Arduino. الحقيقة هي أنه عنصر بسيط لدرجة أنه لا يوجد الكثير ليقوله عن هذا النوع من الأزرار الانضغاطية.

الضغط على زر التكامل مع اردوينو

الدائرة مع اردوينو

La توصيل زر ضغط لجعله يتفاعل مع Arduino لا يمكن أن يكون أبسط. مثال على ذلك هو الرسم التخطيطي الذي يمكنك رؤيته على هذه السطور. سيكون هذا كل ما يتطلبه الأمر لبدء التجربة. لكن بالطبع ، مع هذا المخطط لا يمكنك فعل الكثير. ستحتاج إلى القليل من الخيال لتقرر ما الذي سيتحكم فيه هذا الزر. في الواقع ، إذا كنت تقرأ hwlibre.es بشكل متكرر ، فستكون قد شاهدت بالفعل بعض المقالات التي استخدمنا فيها أزرار الضغط ...

طرق توصيله

اسحب لأعلى ومنسدلة

الشيء الوحيد الذي يجب أن تعرفه هو مسألة مكافحة الارتداد و كيفية توصيل هذه الأزرار الانضغاطية. ننتقل أولاً إلى طريقة توصيلها ، والتي تعرفها بالفعل يمكن أن تكون باستخدام مقاومات السحب لأعلى والمقاومات المنسدلة:

  • اسحب- باستخدام تكوين المقاوم هذا ، عند الضغط على زر الضغط ، يمكن للمتحكم الدقيق أو Arduino رؤية أو قراءة صفر على هذا الدبوس. أي أنه يفسرها على أنها إشارة منخفضة.
  • اسحب للأسفل: في هذه الحالة يكون العكس ، يمكنك قراءة أو استقبال إشارة 1 أو HIGH من خلال الدبوس المتصل.

لا تخلط بينه وبين NC أو NA ، وهو شيء مختلف كما رأينا سابقًا. هذا مستقل عن الآخر ...

مضاد للارتداد

تحتوي الأزرار الانضغاطية على ملف تأثير ترتد عند الضغط عليه. أي عندما يتم الضغط عليه أو تحريره ، يحدث تذبذب في الإشارة التي تمر عبر جهات الاتصال الخاصة به ويمكن أن يتسبب في انتقالها من حالة HIGT إلى LOW أو العكس دون الرغبة حقًا في حدوث ذلك. يمكن أن ينتج عن ذلك تأثير غير مرغوب فيه على Arduino ويجعله يقوم بأشياء غريبة ، مثل تنشيط عنصر عندما نريد حقًا إيقاف تشغيله باستخدام زر الضغط ، وما إلى ذلك. هذا لأن Arduino يفسر الارتداد كما لو تم الضغط عليه أكثر من مرة ...

هذا التأثير السلبي لديها حل. لهذا ، يجب تنفيذ مكثف صغير في الدائرة المضادة للارتداد (طريقة الأجهزة) أو البرامج (تعديل كود المصدر) ، سواء تم استخدام تكوين منسدل أو منسدل أو إذا كان NC أو NO. في جميع هذه الحالات ، يجب تنفيذ الحل لتجنب هذه الارتدادات.

على سبيل المثال ، دارات السحب لأعلى والسحب لأسفل بامتداد مكثف مضاد للارتداد سيبدو مثل هذا:

من جديد

في حين أن طريقة البرنامج يمكن رؤيته في مقتطف الشفرة هذا:

if (digitalRead (button) == LOW) // تحقق مما إذا كان الزر مضغوطًا
{
ضغط = 1 ؛ // المتغير يتغير القيمة
}
إذا (قراءة رقمية (زر) == ضغط عالي && == 1)
{
// نفذ الإجراء المطلوب
ضغط = 0 ؛ // يعود المتغير إلى قيمته الأصلية
}

مثال مشروع بسيط

مضاد للارتداد مع زر ضغط واردوينو

بمجرد أن نتعلم موضوع طرق توصيل زر الضغط الخاص بنا والدائرة المضادة للارتداد ، سنرى مثالًا عمليًا على السيطرة على الصمام مع زر الضغط. المخطط بسيط بنفس القدر كما ترون.

بمجرد الاتصال بشكل صحيح ، فإن الشيء التالي هو الكتابة الكود في Arduino IDE لبرمجة لوحتك والبدء في تجربة الأزرار. من الأمثلة البسيطة على الكود للتحكم في دائرتنا ما يلي:

// مثال على رسم للتحكم في الزر
دبوس int = 2 ؛
دولة دولية
النابض int = 0 ؛
الإعداد باطل()

{
pinMode (2 ، الإدخال) ؛ // لقراءة النبض عن طريق إدخال هذا الدبوس

pinMode (13 ، الإخراج) ؛ // لمصباح LED

Serial.begin (9600) ؛
}
حلقة فارغة()

{
إذا (قراءة رقمية (2) == عالية)

{

دبوس = 2 ؛

مضاد للارتداد () ؛ // اتصل بوظيفة مكافحة الارتداد

}
}
// وظيفة برنامج مكافحة ترتد
مضاد للارتداد باطل ()

{
بينما (digitalRead (دبوس) == منخفض) ؛
الدولة = digitalRead (13) ؛
digitalWrite (13 ،! حالة) ؛
بينما (digitalRead (دبوس) == عالية) ؛

}


5 تعليقات ، اترك لك

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   صورة Marcelo Castillo قال

    رائع!!! شكرًا جزيلاً لك ، لقد كنت أقوم ببناء CNC ، ومن المفارقات أن الأزرار كانت أصعب شيء بالنسبة لي لضبطها.

  2.   ليليانا قال

    مرحبا! أستشير كمبتدئ ، فيما يتعلق بـ GND… .. يجب ألا يخرج السلك الأسود من الخط السالب ، الموجود أعلى السلك الموضح في الرسم البياني 2؟

  3.   جون قال

    شرح ممتاز .. قبل عامين قمت بمشروع لبدء سيارة والحقيقة هي أنني لم أتمكن من القيام بالضغط الصحيح للإشعال .. سأحاول بهذه الطريقة. أشكركم جزيل الشكر على هذا الرائع يساعد

  4.   عمر روميرو رينكون قال

    مرحبًا ، أقوم بمشروع بثلاثة أزرار و 5 مصابيح LED بالتسلسل التالي.
    1 زر ضغط يرسل إشارة إلى 2 LEDs ، والتي اتصلت بها 1 و 2.
    يرسل زر الضغط الثاني إشارة إلى 3 مصابيح LED ، تسمى 2,3،4 و XNUMX.
    يرسل زر الضغط الثالث إشارة إلى 3 مصابيح LED أخرى ، تسمى 3,4 و 5 و XNUMX.

    لقد تمكنت من القيام بهذا التسلسل ، لدي مشكلة واحدة فقط ، عند الضغط على زرين ، فإنه يرسل إشارة خاطئة إلى مؤشر LED الذي يجب أن يستمر في التسبب في وميضه بشكل متقطع ، لقد قمت بالتحكم فيه عن طريق وضع تأخير (لمدة ثانيتين ، وهو ما أحتاجه حتى تظل مصابيح LED قيد التشغيل ثم تنطفئ. ثم سؤالي هو كيف يمكنني وضع وظيفة المللي في برنامجي ، ولا أفهم كيف يعمل الميلي ، وأريد معرفة ما إذا كان يمكنك مساعدتي عن طريق لعمل مثال لثلاثة أزرار باستخدام المللي في كل منها ، أحتاج إلى مللي ثانية لأتمكن من الضغط على الأزرار في أي وقت دون تأخير اردوينو.

    1.    إسحاق قال

      هولا عمر ،
      أوصيك بمشاهدة برنامج Arduino التعليمي الخاص بنا:
      https://www.hwlibre.com/programacion-en-arduino/
      ويمكنك أيضًا مشاهدة مقالتنا عن الميلي ():
      https://www.hwlibre.com/millis-arduino/
      تحية.