در این آموزش، یاد خواهیم گرفت که چگونه از یک دکمه فشاری برای روشن و خاموش کردن یک LED با میکروکنترلر ESP32 استفاده کنیم. این پروژه نشان خواهد داد که چگونه وضعیت دکمه فشاری را بخوانیم و LED را بهطور متناسب کنترل کنیم. هنگامی که دکمه فشرده شود، LED روشن خواهد شد و هنگامی که رها شود، خاموش خواهد شد. این یک مفهوم بنیادین برای بسیاری از پروژههای تعاملی با استفاده از ESP32 است.
ESP32 یک میکروکنترلر قدرتمند با قابلیتهای داخلی Wi-Fi و Bluetooth است که آن را برای برنامههای مختلف IoT مناسب میسازد. در این درس، ما از ESP32 موجود در کیت شروع ESP32 سانفاندور استفاده خواهیم کرد که شامل اجزای ضروری مانند مقاومتها و LEDها برای ایجاد یک مدار ساده است. برای توضیحات دقیقتر درباره سیمکشی و شِفر (کود)، لطفاً به ویدیو مراجعه کنید (در ویدیو در ۰۰:۰۰).
توضیح سختافزار
اجزای کلیدی این پروژه شامل میکروکنترلر ESP32، یک دکمه فشاری، یک LED و مقاومتها است. ESP32 بهعنوان مغز پروژه عمل میکند و LED را بر اساس وضعیت دکمه فشاری کنترل میکند. دکمه فشاری به کاربران اجازه میدهد با مدار تعامل داشته باشند، در حالی که LED بازخورد بصری را زمانی که دکمه فشرده میشود ارائه میدهد.
کلید فشار با بستن مدار هنگام فشرده شدن کار میکند و اجازه میدهد که جریان برق عبور کند. این عمل یک سیگنال HIGH به پایه ورودی مشخص شده در ESP32 ارسال میکند که میتوان آن را در شِفر (کود) خواند. مقاومت متصل به کلید تضمین میکند که پایه در زمان عدم فشردن کلید، یک وضعیت تعریفشده داشته باشد و از رفتار غیرقابل پیشبینی جلوگیری کند.
کولر دکمه ای با مقاومت
دستورات سیم کشی
برای سیمکشی مدار، ابتدا پایه بلندتر LED (آند) را به یک مقاومت ۲۲۰ اهمی وصل کنید. سر دیگر مقاومت را به پایه GPIO 26 در ESP32 متصل کنید. پایه کوتاهتر LED (کاتد) باید به زمین متصل شود. سپس دکمه فشار را بگیرید و یک سمت آن را به منبع تغذیه ۳.۳ ولت روی بورد وصل کنید. سمت دیگر دکمه فشار به پایه GPIO 14 متصل میشود.
دکمه را بدون مقاومت فشار دهیددکمه را بدون مقاومت فشار دهیددکمه فشاری با مقاومتدکمه فشاری با مقاومت
علاوه بر این، یک مقاومت 10 هزار اهمی از پایه GPIO شماره 14 به زمین قرار دهید تا اطمینان حاصل شود که پایه در زمان عدم فشار دادن دکمه، LOW خوانده میشود. در نهایت، سیم زمین ESP32 را به زمین مشترک روی برد بورد متصل کنید. این تنظیم به ESP32 اجازه میدهد تا وضعیت دکمه را بخواند و LED را مطابق با آن کنترل کند.
نمونههای شِفر (کود) و راهنمایی
هستهٔ برنامه با تعریف شمارههای پایه برای دکمه و LED با استفاده از ثوابت آغاز میشود. این امر اطمینان حاصل میکند که انتسابهای پایه در طول اجرای برنامه بدون تغییر باقی بمانند.
// set pin numbers
const int buttonPin = 14; // Button pin
const int ledPin = 26; // LED pin
در setup()در این تابع، ما نمایشگر مسلسل را راهاندازی کرده و پایه دکمه را به عنوان ورودی تنظیم میکنیم در حالی که پایه LED را به عنوان خروجی پیکربندی میکنیم. این کار ESP32 را برای خواندن از دکمه و کنترل LED آماده میکند.
داخلloop()عملکرد، برنامه به طور مداوم وضعیت کلید را خوانده و آن را به نمایشگر مسلسل چاپ میکند. اگر کلید فشار داده شود، LED روشن میشود؛ در غیر این صورت خاموش میشود. این منطق برای تغییر وضعیت LED بر اساس وضعیت کلید ضروری است.
این عملکرد پایه به LED اجازه میدهد که بهطور مستقیم به دکمه فشار پاسخ دهد. برای جزئیات بیشتر در مورد پروژه و شِفر (کود) کامل، لطفاً به ویدیوی ارائه شده مراجعه کنید (در ویدیو در ۱۴:۰۰).
نمایش / چه انتظاری باید داشت
پس از تکمیل سیمکشی و بارگذاری شِفر (کود)، فشردن دکمه فشار باید LED را روشن کند و رها کردن آن LED را خاموش خواهد کرد. این رفتار تأیید میکند که حالت دکمه به درستی خوانده میشود. اگر LED طبق انتظار پاسخ ندهد، سیمکشی را بررسی کرده و اطمینان حاصل کنید که دکمه به درستی کار میکند.
در حین آزمایش، مطمئن شوید که نمایشگر مسلسل را برای خوانشهای وضعیت دکمه مشاهده میکنید. باید یک '1' را وقتی که دکمه فشرده شده است ببینید و یک '0' را وقتی که آن آزاد شده است. اگر خوانشها به طور غیرمنتظره نوسان داشته باشند، ممکن است نشاندهنده یک مشکل در سیمکشی یا نیاز به منطق بصریسازی اضافی در شِفر (کود) باشد.