اتصال میکرو سوئیچ به ESP8266 با اینتراپت یا وقفه

اتصال میکرو سوئیچ به ESP8266 با اینتراپت یا وقفه

اینتراپت یا وقفه در میکرو کنترلر ها به شما این امکان رو میده که برای اینکه وضعیت یک ورودی رو بررسی کنه بدون اینکه همیشه Cpu مشغول بشه ، یعنی در واقع در تابع LOOP شما هیچ گونه کدی رو برای بررسی وضعیت پایه ورودی نویسید و این یک مزیت خیلی خوب به حساب میاد. البته فقط استفاده از اینتراپت به این ختم نمیشه و می تونه لبه ی بالا رونده (RISING) و پایین رونده (FALLING) رو هم تشخیص بده مثلا وقتی شما بدون استفاده از اینتراپت یه میکرو سوئیچ رو به میکروکنترلر وصل کنید هنگام فشار دادن کلید برنامه در یک حلقه گیر می افته تا زمانی که دستتون از رو کلید بردارید ولی در اینتراپت شما تابعی رو یک بار با استفاده از تشخیص لبه بالارونده یا پایین رونده فراخوانی می کنید.

در ESP8266 بجز پایه GPIO16 و GPIO6 تا GPIO11 می تونید برای اینتراپت استفاده کنید که در مثالی که اینجا آورده شده است از پایه GPIO14 استفاده و PULLUP شده است یعنی در مدار نیازی به مقاومت برای PULLUP کردن ندارد.

در کد بالا با هر بار تشخیص لبه پایین رونده تابع SendR فراخوانی می شود. اما در عمل خطا زیاد دارد به دلیل وجود نویز در کلید که با هر با فشار دادن کلید تابع چندین بار فراخوانی می شود که با مدار زیر حذف می شود.

در مدار بالا می تونید مقاومت ۱ مگا اهم رو حذف کنید.

نوشته شده توسط امیر امرایی

وبسایت

دیدگاه خود را بیان کنید


انتشار نوشته هاي اين وبگاه در سايت ها و نشريات تنها با ذکر نام و درج لينک مجاز است.
طراحي شده توسط ميلاد دهقان عضو گروه رویین