فهم مقاومات السحب
قبل الغوص في تفاصيل دبابيس السحب ESP32 ، من المهم فهم دور مقاومات السحب في الدائرة. عند ترك دبوس الإدخال الرقمي عائمًا (غير متصل بأي مصدر جهد كهربائي) ، يمكنه قراءة القيم العشوائية ، مما يجعل من الصعب تحديد مستوى المنطق الخاص به.
لتجنب هذه المشكلة ، يتم توصيل المقاوم للسحب بين دبوس الإدخال ومصدر الجهد (عادةً Vcc) للتأكد من أن الإدخال يقرأ حالة عالية (منطقية 1) بشكل افتراضي. عندما يتم توصيل الإدخال بإشارة منخفضة (منطقية 0) ، يقوم المقاوم بسحب الإدخال لأسفل إلى الأرض ، مما يسمح للمدخل بقراءة حالة منخفضة.
دبابيس سحب مدمجة في ESP32
يحتوي المتحكم الدقيق ESP32 على 34 منفذ إدخال / إخراج للأغراض العامة (GPIO) ، والتي يمكن تهيئتها على شكل دبابيس رقمية أو تمثيلية. من بين هذه المسامير الـ 34 ، تحتوي بعض المسامير على مقاومات سحب مدمجة يمكن تمكينها بواسطة البرنامج.
يوضح الجدول التالي المسامير الموجودة في ESP32 التي تحتوي على مقاومات سحب مدمجة:
الرقم السري | اسم الدبوس | مقاوم سحب مدمج |
0 | GPIO0 | نعم |
2 | GPIO2 | نعم |
4 | GPIO4 | نعم |
5 | GPIO5 | نعم |
12 | GPIO12 | نعم |
13 | GPIO13 | نعم |
14 | GPIO14 | نعم |
خمسة عشر | GPIO15 | نعم |
25 | GPIO25 | نعم |
26 | GPIO26 | نعم |
27 | GPIO27 | نعم |
32 | GPIO32 | نعم |
33 | GPIO33 | نعم |
3. 4 | GPIO34 | لا |
35 | GPIO35 | لا |
36 | GPIO36 | لا |
39 | GPIO39 | لا |
كما ترى ، فإن معظم المسامير الرقمية في ESP32 تحتوي على مقاومات سحب مدمجة. ومع ذلك ، لا تحتوي جميع المسامير على هذه الميزة. لا تحتوي الدبابيس 34 و 35 و 36 و 39 على مقاومات سحب مدمجة.
ملحوظة: في ESP32 ، لا تتوفر مقاومات السحب والمقاومة المتكاملة إلا في المسامير التي تدعم كلاً من الإدخال والإخراج. GPIOs 34-39 ، التي تقتصر على المدخلات فقط ، لا تحتوي على هذه المقاومات مدمجة.
تحقق من ملف مرجع Pinout ESP32 .
تمكين مقاومات السحب على ESP32
لتمكين مقاومة السحب على دبوس ESP32 ، يمكنك استخدام gpio_set_pull_mode () الوظيفة التي يوفرها إطار ESP-IDF.
تأخذ هذه الوظيفة وسيطين:
- الرقم السري لـ GPIO
- وضع السحب
يمكن أن يكون وضع السحب إما GPIO_PULLUP_ENABLE أو GPIO_PULLUP_DISABLE . في ما يلي مثال على رمز يتيح سحب المقاوم في GPIO2:
# تضمين 'driver / gpio.h'فارغ enable_pull_up ( ) {
gpio_set_pull_mode ( GPIO_NUM_2 و GPIO_PULLUP_ENABLE ) ؛
}
pinMode ( 5 و INPUT_PULLUP ) ؛
من المهم ملاحظة أن تمكين مقاومة السحب على دبوس سيؤثر على سلوكه عند استخدام الدبوس كمخرج. في هذه الحالة ، سيعمل مقاوم السحب كمصدر تيار ضعيف وقد يؤثر على مستوى جهد الخرج.
بدلاً من ذلك ، يمكننا أيضًا تمكين عمليات السحب الداخلية على ESP32 باستخدام ملف pinMode () وظيفة اردوينو.
pinMode ( 5 و INPUT_PULLUP ) ؛سيمكن الكود أعلاه المقاوم السحب الداخلي على الدبوس 5 . وبالمثل ، يمكنك تمكين المقاوم المنسدل الداخلي عن طريق تحديد الوضع INPUT_PULLDOWN .
خاتمة
تعتبر مقاومات السحب مكونات أساسية في الدوائر الرقمية ، ويوفر المتحكم الدقيق ESP32 مقاومات سحب مدمجة في معظم المسامير الرقمية الخاصة به. يمكن أن يضمن تمكين هذه المقاومات مستويات منطقية مستقرة وتجنب مشكلات الإدخال العائمة. ومع ذلك ، من المهم ملاحظة أنه ليست كل المسامير في ESP32 تحتوي على مقاومات سحب مدمجة ، لذلك من المهم التحقق من دبوس ESP32 أو ورقة البيانات قبل تصميم الدائرة. بالإضافة إلى ذلك ، قد يؤثر تمكين مقاومة السحب على سلوك الدبوس عند استخدامه كمخرج.