زر الضغط مع ESP32 - Arduino IDE

Zr Aldght M Esp32 Arduino Ide



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

فيما يلي جدول المحتويات لهذا الدرس:







1: مقدمة إلى زر الضغط



2: العمل على زر الضغط



2.1: أوضاع عمل زر الضغط





3: زر الضغط البيني مع ESP32

3.1: دبابيس إخراج الإدخال الرقمي في ESP32



3.2: كيفية قراءة المدخلات الرقمية في ESP32

3.3: ربط زر الضغط مع ESP32 باستخدام وظيفة القراءة الرقمية

3.4: الأجهزة المطلوبة

3.5: تخطيطي

3.6: كود للتفاعل مع ESP32 مع زر الضغط

3.7: الإخراج

1: مقدمة إلى زر الضغط

زر الضغط هو زر بسيط به آلية للتحكم في حالات الآلات أو العمليات المختلفة. يتكون زر الضغط من مادة صلبة مثل البلاستيك أو المعدن وعادة ما يكون السطح العلوي مسطحًا مما يسمح للمستخدمين بالضغط عليه.

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

دعنا نتعمق في مبدأ عمل زر الضغط بالتفصيل:

2: العمل على زر الضغط

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


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

2.1: أوضاع عمل زر الضغط

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

بناءً على هذه الآلية ، يمكن أن يعمل زر الضغط في الوضعين التاليين:


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


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

3: زر الضغط البيني مع ESP32

قبل استخدام زر الضغط مع ESP32 ، يجب أن يعرف المرء دبابيس GPIO التي يمكن استخدامها كمدخل. الآن سنناقش دبابيس إخراج الإدخال الرقمي في ESP32.

3.1: دبابيس إخراج الإدخال الرقمي في ESP32

ESP32 لديه ما مجموعه 48 كل منها مخصص لوظيفة معينة ، من بين 48 دبابيس ، بعضها غير مكشوف جسديًا مما يعني أنه لا يمكننا استخدامها لأغراض خارجية. تم دمج هذه المسامير داخل ESP32 لوظائف مختلفة.

تحتوي لوحة ESP32 على متغيرين مختلفين 36 دبابيس و 30 دبابيس. هنا يكمن الاختلاف في 6 دبابيس بين كلتا اللوحتين بسبب 6 دبابيس فلاش SPI متكاملة متاحة لاتصال SPI على أ 36 متغير دبابيس للوحة ESP32. ومع ذلك ، لا يمكن استخدام دبابيس SPI الستة هذه لأغراض أخرى مثل إخراج الإدخال.

pinout أدناه هو من 30 دبوس لوحة ESP32:


من بين جميع GPIO فقط 4 دبابيس ( 34 و 35 و 36 و 39 ) يتم إدخالها فقط بينما يمكن استخدام جميع المسامير الأخرى لكل من الإدخال والإخراج. كما هو مذكور أعلاه ، لا يمكن استخدام 6 دبابيس SPI للإدخال أو الإخراج.

3.2: كيفية قراءة المدخلات الرقمية في ESP32

يمكن قراءة إدخال زر الضغط على دبوس GPIO محدد وظيفة pinMode () يجب تحديده أولاً داخل كود Arduino. ستعمل هذه الوظيفة على تعيين دبوس GPIO كمدخل. pinMode () يكون بناء جملة الوظيفة كما يلي:

pinMode ( GPIO ، المدخلات ) ؛


لقراءة البيانات من دبوس GPIO محدد قراءة رقمية () سيتم استدعاء الوظيفة. فيما يلي الأمر الذي يمكن للمرء استخدامه لأخذ البيانات من زر الضغط على دبوس GPIO:

ديجيتال ريد ( GPIO ) ؛

3.3: ربط زر الضغط مع ESP32 باستخدام وظيفة القراءة الرقمية

الآن سنقوم بواجهة ESP32 مع زر ضغط باستخدام قراءة رقمية تعمل في أي دبوس GPIO. عند أخذ الإدخال من الزر الانضغاطي ، سيتم تشغيل أو إيقاف تشغيل مؤشر LED.

3.4: الأجهزة المطلوبة

فيما يلي قائمة المكونات المطلوبة:

    • مجلس ESP32
    • الصمام
    • مقاومات 220 أوم
    • 4 زر ضغط دبوس
    • اللوح
    • توصيل أسلاك العبور

3.5: تخطيطي

الصورة أدناه هي الرسم التخطيطي لزر الضغط باستخدام ESP32. هنا تتم قراءة الإدخال من زر الضغط في GPIO pin 15 ، ويتم توصيل LED في GPIO pin 14.

3.6: رمز لزر الضغط البيني مع ESP32

سيتم الآن تحميل الكود إلى محرر ESP32 Arduino IDE. افتح IDE وقم بتوصيل لوحة ESP32 بعد ذلك حدد منفذ COM من قسم الأداة. بمجرد أن تصبح لوحة ESP32 جاهزة ، الصق الكود في IDE وانقر فوق تحميل:

const int Push_Button = خمسة عشر ؛ / * دبوس رقمي خمسة عشر مُعرف إلى عن على اضغط الزر * /
const int LED_Pin = 14 ؛ / * دبوس رقمي 14 مُعرف إلى عن على قاد * /
int Button_State = 0 ؛
الإعداد باطل ( ) {
المسلسل ( 115200 ) ؛
pinMode ( Push_Button ، INPUT ) ؛ / * GPIO خمسة عشر تعيين كما إدخال * /
pinMode ( LED_Pin ، الإخراج ) ؛ / * GPIO 14 تعيين كما انتاج | * /
}
حلقة فارغة ( ) {
Button_State = قراءة رقمية ( اضغط الزر ) ؛ / * تحقق من حالة زر الضغط * /
المسلسل. println ( Button_State ) ؛
إذا ( Button_State == مرتفع ) { / * إذا شرط للتحقق من حالة الزر * /
الكتابة الرقمية ( LED_Pin ، مرتفع ) ؛ / * إضاءة LED عالية الحالة * /
} آخر {
الكتابة الرقمية ( LED_Pin ، منخفض ) ؛ / * آخر LED OFF * /
}
}


بدأ الكود بتحديد دبابيس GPIO لمصباح LED والأزرار الانضغاطية. بعد ذلك يتم الإعلان عن مؤشر LED GPIO كإخراج بينما يتم تعيين زر الضغط GPIO كمدخل.

في حالة زر الضغط النهائي محددًا باستخدام شرط if. تتم أيضًا طباعة حالة زر الضغط على الشاشة التسلسلية باستخدام Serial.println (Button_State) .

إذا كان إدخال زر الضغط مرتفعًا ، فسيتم تشغيله وإلا فسيظل مغلقًا.

3.7: الإخراج

في البداية ، يمكننا أن نرى أن مؤشر LED مطفأ.


الآن اضغط على زر الضغط ، سيتم إرسال إشارة عالية إلى ESP32 GPIO 15 وسيتم تشغيل مؤشر LED.


يمكن أيضًا رؤية نفس الإخراج على شاشة Arduino التسلسلية.

استنتاج

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