पुशबटन: अर्डिनो के साथ इस सरल तत्व का उपयोग कैसे करें

बटन

Un पुश बटन एक बटन है जो आपको इलेक्ट्रॉनिक सिग्नल को बाधित करने या भेजने की अनुमति देता है। अन्य तत्वों के साथ संयुक्त इस सरल तत्व के साथ आप कई अनुप्रयोगों के लिए प्रोजेक्ट बना सकते हैं। Arduino के साथ परियोजनाओं की बात आती है तो इस तरह के पुशबटन का उपयोग बहुत आम है। और इनमें से कई बटनों को मिलाकर आप कुछ अधिक जटिल कीबोर्ड बना सकते हैं, हालांकि इन उपयोगों के लिए पहले से ही प्रोग्राम किए गए कीबोर्ड हैं ...

वैसे, आपको स्विच के साथ पुशबटन को भ्रमित नहीं करना चाहिए। वे पूरी तरह से अलग चीजें हैं। अंतर यह है कि स्विच या स्विच सक्रिय है या उस पर बनाए गए प्रत्येक प्रेस के साथ निष्क्रिय है। जबकि पुश बटन केवल एक राज्य में रहेगा जबकि उस पर दबाव डाला जा रहा है। मैंने टिप्पणी की है कि यह भेज या बाधित कर सकता है, ऐसा इसलिए है क्योंकि दो मौलिक प्रकार के बटन हैं।

पुश बटन प्रतीक

वहाँ हैं NO या सामान्य रूप से pushbuttons और NC या सामान्य रूप से बंद pushbuttons खोलें। यह आपको रिले से भी आवाज़ करेगा। और हाँ, यह बिल्कुल वही ऑपरेशन है। जब आपके पास एक नेकां होता है, तो यह अपने टर्मिनलों के माध्यम से करंट पास होने देगा और यह केवल तब बाधित होता है जब आप इसे दबा रहे हों। दूसरी ओर, NA उस समय करंट पास नहीं होने देता जब दबाव उस पर नहीं डाला जाता है और जब आप उसे दबाते हैं तो केवल उसे ही गुजरने देंगे।

यह जानते हुए, एक पुश बटन के बारे में जानने के लिए आपको लगभग सब कुछ चाहिए Arduino का उपयोग करके अपने कनेक्शन और प्रोग्रामिंग को शुरू करने के लिए। सच्चाई यह है कि यह इतना सरल तत्व है कि इस प्रकार के पुशबुटन के बारे में कहने के लिए बहुत कुछ नहीं है।

Arduino के साथ पुश बटन इंटीग्रेशन

Arduino के साथ सर्किट

La एक पुशबटन कनेक्ट करना इसे बनाने के लिए Arduino के साथ बातचीत सरल नहीं हो सकती है। एक उदाहरण आरेख है जिसे आप इन पंक्तियों पर देख सकते हैं। यह सब प्रयोग शुरू करने के लिए लगता है। लेकिन निश्चित रूप से, उस योजना के साथ आप थोड़ा कर सकते हैं। यह तय करना आपके लिए आवश्यक होगा कि उस बटन को नियंत्रित करने के लिए क्या करना है। वास्तव में, यदि आप अक्सर hwlibre.es पढ़ते हैं, तो आप पहले से ही कुछ लेख देखेंगे जहां हमने पुश बटन का उपयोग किया है ...

इसे जोड़ने के तरीके

पुल-अप और पुल-डाउन

एक बात जो आपको पता होनी चाहिए वह है एंटी-बाउंस और कैसे इन pushbuttons कनेक्ट करने के लिए। पहले हम उन्हें कनेक्ट करने के तरीके पर जाते हैं, जिसे आप पहले से ही जानते हैं कि पुल-अप और पुल-डाउन प्रतिरोधों के साथ हो सकते हैं:

  • अपने आप को रोकना- इस अवरोधक सेटिंग के साथ, जब पुशबटन को दबाया जाता है, तो माइक्रोकंट्रोलर या Arduino उस पिन पर एक शून्य देख या पढ़ सकते हैं। यही है, यह इसे LOW सिग्नल के रूप में व्याख्या करता है।
  • नीचे खींचना: इस मामले में यह विपरीत है, आप जुड़े पिन के माध्यम से 1 या उच्च संकेत पढ़ या प्राप्त कर सकते हैं।

इसे NC या NA के साथ भ्रमित न करें, जो कुछ अलग है जैसा कि हमने पहले देखा है। यह दूसरे से स्वतंत्र है ...

विरोधी उछाल

पुशबट्टन में ए उछाल प्रभाव जब दबाया। यही है, जब इसे दबाया जाता है या जारी किया जाता है, तो संकेत में एक उतार-चढ़ाव होता है जो इसके संपर्कों से गुजरता है और इसके कारण एचआईजीटी राज्य से कम हो सकता है या इसके विपरीत हो सकता है कि वास्तव में ऐसा न हो। यह Arduino पर एक अवांछित प्रभाव पैदा कर सकता है और इसे अजीब काम कर सकता है, जैसे एक तत्व को सक्रिय करना जब हम वास्तव में इसे पुश बटन के साथ बंद करना चाहते थे, आदि। ऐसा इसलिए है क्योंकि Arduino बाउंस की व्याख्या करता है जैसे कि इसे एक से अधिक बार दबाया गया था ...

वह नकारात्मक प्रभाव इसका एक हल है। इसके लिए, एक छोटे संधारित्र को एंटी-रिबाउंड सर्किट (हार्डवेयर विधि) या सॉफ़्टवेयर (स्रोत कोड को संशोधित करना) में लागू किया जाना चाहिए, चाहे पुल-अप या पुल-डाउन कॉन्फ़िगरेशन का उपयोग किया गया हो या यदि वह NC या NO है। इन सभी मामलों में, इन विद्रोहों से बचने के लिए समाधान को लागू किया जाना चाहिए।

उदाहरण के लिए, पुल-अप और पुल-डाउन सर्किट विथ द विरोधी उछाल संधारित्र वे कुछ इस तरह दिखेंगे:

पलटनेवाला

जब सॉफ्टवेयर विधि यह इस कोड स्निपेट में देखा जा सकता है:

if (digitalRead (बटन) == LOW) // चेक करें कि क्या बटन दबाया गया है
{
दबाया = 1; // परिवर्तनशील मान
}
अगर (digitalRead (बटन) == हाई एंड& दबाया == 1)
{
// वांछित कार्रवाई करें
दबाया = 0; // चर अपने मूल मूल्य पर लौटता है
}

सरल परियोजना उदाहरण

पुश बटन और Arduino के साथ विरोधी उछाल

एक बार जब हमने अपने पुशबटन और एंटी-रिबाउंड सर्किट को जोड़ने के तरीके सीख लिए हैं, तो हम एक व्यावहारिक उदाहरण देखेंगे। पुशबटन के साथ एक एलईडी को नियंत्रित करें। यह योजना उतनी ही सरल है जितनी आप देख सकते हैं।

एक बार सही तरीके से कनेक्ट होने के बाद, अगली बात लिखना है Arduino IDE में कोड अपने पैनल को प्रोग्राम करने के लिए और बटन के साथ प्रयोग करना शुरू करें। हमारे सर्किट को नियंत्रित करने के लिए एक सरल कोड उदाहरण निम्नलिखित होगा:

// बटन को नियंत्रित करने के लिए स्केच का उदाहरण
इंट पिन = 2;
इंट स्टेट;
धड़कन int = 0;
व्यर्थ व्यवस्था ()

{
पिनमोड (2, INPUT); // उस पिन इनपुट को बनाकर पल्स को पढ़ने के लिए

पिनमोड (13, OUTPUT); // एलईडी के लिए

Serial.begin (9600);
}
शून्य लूप ()

{
अगर (digitalRead (2) == हाई)

{

पिन = 2;

antiBounce (); // एंटी-बाउंस फ़ंक्शन को कॉल करें

}
}
// सॉफ्टवेयर एंटी-बाउंस फ़ंक्शन
शून्य विरोधी उछाल ()

{
जबकि (digitalRead (pin) == कम);
राज्य = digitalRead (13);
digitalWrite (13; राज्य);
जबकि (digitalRead (pin) == High);

}


5 टिप्पणियाँ, तुम्हारा छोड़ दो

अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   मार्सेलो कैस्टिलो कहा

    ठंडा!!! बहुत बहुत धन्यवाद, मैं एक सीएनसी का निर्माण कर रहा हूं और विरोधाभासी रूप से बटन मेरे लिए सबसे कठिन बात है।

  2.   लिलियाना कहा

    नमस्ते! मैं एक नौसिखिए के रूप में परामर्श करता हूं, जीएनडी के संबंध में… .. काले तार को नकारात्मक रेखा से बाहर नहीं आना चाहिए, जो आरेख 2 में दिखाए गए के ऊपर स्थित है?

  3.   जॉन कहा

    बहुत बढ़िया स्पष्टीकरण .. कुछ साल पहले मैंने एक कार इग्निशन प्रोजेक्ट किया था और सच्चाई यह है कि मैं कभी भी एक सही कीस्ट्रोकेक नहीं बना सका। इग्निशन के लिए .. मैं इस तरीके को आजमाने जा रहा हूं। इस महान मदद के लिए मैं आपको बहुत-बहुत धन्यवाद देता हूं।

  4.   उमर रोमेरो रिनकोन कहा

    हैलो, मैं निम्नलिखित अनुक्रम के साथ तीन बटन और 5 एलईडी के साथ एक प्रोजेक्ट कर रहा हूं।
    1 पुश बटन 2 LED को सिग्नल भेजता है, जिसे मैंने 1 और 2 कहा है।
    दूसरा पुशबॉटन 3 एल ई डी को सिग्नल भेजता है, जिसे 2,3 और 4 कहा जाता है।
    मेरा तीसरा पुशबॉटन 3, 3,4 और 5 नामक अन्य XNUMX एल ई डी को एक संकेत भेजता है।

    मैं उस क्रम को करने में कामयाब रहा, मुझे केवल एक समस्या है, जब 2 बटन दबाते हैं, तो यह एलईडी को एक झूठा संकेत भेजता है जो इसे रुक-रुक कर पलक झपकते रहना चाहिए, मैंने इसे देरी से (2 सेकंड का) लगाकर नियंत्रित किया है। जो मुझे चाहिए ताकि एल ई डी चालू रहे और फिर बंद हो जाए। तो मेरा सवाल यह है कि मैं अपने कार्यक्रम में मिलिस फ़ंक्शन कैसे डाल सकता हूं, मुझे समझ में नहीं आता कि मिल कैसे काम करता है, मैं जानना चाहता हूं कि क्या आप मेरी मदद कर सकते हैं उनमें से प्रत्येक में मिली का उपयोग करके 3 बटन के लिए एक उदाहरण बनाते हुए, मुझे मिलिस की आवश्यकता है ताकि किसी भी समय arduino में देरी किए बिना बटन दबाने में सक्षम हो।

    1.    इसहाक कहा

      होला उमर,
      मेरा सुझाव है कि आप हमारा Arduino ट्यूटोरियल देखें:
      https://www.hwlibre.com/programacion-en-arduino/
      और आप हमारा लेख मिलिस () पर भी देख सकते हैं:
      https://www.hwlibre.com/millis-arduino/
      एक ग्रीटिंग.