سلام، من در استفاده از میکروکنترلر با رله ها تازه کار هستم. یک کیت خریدم و می خوام آن را با ESP8266 کنترل کنم. من توانستم برنامه را بر روی ESP8266 آپلود و پورت سریال را مانیتور کنم تا مقادیر اندازه گیری شده توسط سنسورهای رطوبت سنج خازنی را ببینم و نرم افزار را برای راه اندازی رله که پمپ را کنترل می کند، کالیبره کنم. اما وقتی که هم نرم افزار (از طریق پورت سریال) و هم رله (از طریق ال ای دی ها) نشان می دهند که من پمپ را روشن و خاموش می کنم، رله ها روشن باقی می مانند. من می توانم آن را توسط پایه “IN” یا توسط VCC خاموش کنم اما آن طور که انتظار دارم خاموش شود، خاموش نمیشود. برای تغذیه رله از پایه Vin استفاده کردم که 4.6 ولت است. حتی سعی کردم با استفاده از پایه 3.3 ولت ESP8266 برای تغذیه آن استفاده کنم ولی هر دو نتیجه مشابهی داشتند.
code
اولا، همانطور که در شماتیک خود نشان دادید، تغذیه رله باید 5 ولت باشد نه 3.3 ولت. 3.3 ولتی که شما استفاده کردید برای راه اندازی رله بسیار کم است و فقط می توانید با آن ال ای دی ها را روشن کنید. ثانیاً چیزی که باید بررسی کنید ولتاژ پایه Vin است، زمانی که روشن و خاموش می شود.
این ماژول به طور active low طراحی شده است. برای روشن شدن رله، ورودی باید pull down شود.
به نظر من روشی که برد رله کار می کند به این صورت است که زمانی که Vin به جایی وصل نشده رله خاموش است و زمانی که Vin به زمین متصل شود رله روشن می شود. بدون وصل کردن تغذیه ماژول MCU، رله خاموش خواهد بود. این در حقیقت active low نیست. من بر روی برد رله رگولاتور ولتاژ نمی بینم و فکر می کنم بیس یک ترانزیستور یا گیت یک ماسفت باید به زمین متصل شود تا رله فعال شود. در این حالت برای خاموش شدن رله، باید خروجی دیجیتال MCU به عنوان یک ورودی (امپدانس بالا) تنظیم شود و برای روشن شدن رله به عنوان خروجی تنظیم و به زمین متصل شود.