পুল-আপ প্রতিরোধক বোঝা
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 , যা শুধুমাত্র ইনপুট-এ সীমাবদ্ধ, এই প্রতিরোধকগুলি অন্তর্নির্মিত নেই।
সম্পূর্ণ পরীক্ষা করুন 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 ) ;
}
পিনমোড ( 5 , INPUT_PULLUP ) ;
এটি লক্ষ্য করা গুরুত্বপূর্ণ যে একটি পিনের উপর পুল-আপ প্রতিরোধক সক্রিয় করা তার আচরণকে প্রভাবিত করবে যখন পিনটি আউটপুট হিসাবে ব্যবহার করা হয়। এই ক্ষেত্রে, পুল-আপ প্রতিরোধক একটি দুর্বল বর্তমান উত্স হিসাবে কাজ করবে এবং আউটপুট ভোল্টেজ স্তরকে প্রভাবিত করতে পারে।
বিকল্পভাবে, আমরা ESP32 ব্যবহার করে অভ্যন্তরীণ পুল-আপগুলিও সক্ষম করতে পারি পিনমোড() আরডুইনো ফাংশন।
পিনমোড ( 5 , INPUT_PULLUP ) ;উপরের কোডটি পিনের অভ্যন্তরীণ পুল-আপ প্রতিরোধককে সক্রিয় করবে 5 . একইভাবে, আপনি মোড নির্দিষ্ট করে অভ্যন্তরীণ পুল-ডাউন প্রতিরোধক সক্ষম করতে পারেন INPUT_PULLDOWN .
উপসংহার
পুল-আপ প্রতিরোধকগুলি ডিজিটাল সার্কিটের অপরিহার্য উপাদান, এবং ESP32 মাইক্রোকন্ট্রোলার তার বেশিরভাগ ডিজিটাল পিনে অন্তর্নির্মিত পুল-আপ প্রতিরোধক সরবরাহ করে। এই প্রতিরোধকগুলিকে সক্রিয় করা স্থিতিশীল যুক্তির স্তর নিশ্চিত করতে পারে এবং ভাসমান ইনপুট সমস্যাগুলি এড়াতে পারে। যাইহোক, এটি লক্ষ করা গুরুত্বপূর্ণ যে ESP32-এর সমস্ত পিনে বিল্ট-ইন পুল-আপ প্রতিরোধক নেই, তাই এটি পরীক্ষা করা গুরুত্বপূর্ণ ESP32 পিনআউট বা একটি সার্কিট ডিজাইন করার আগে ডেটাশিট। উপরন্তু, আউটপুট হিসাবে ব্যবহার করার সময় পুল-আপ প্রতিরোধক সক্ষম করা পিনের আচরণকে প্রভাবিত করতে পারে।