در این آموزش، ما یاد خواهیم گرفت که چگونه یک پمپ آب 5 ولتی را با استفاده از میکروکنترلر ESP32 و درایور موتور L293D کنترل کنیم. این پروژه مقدمهای عالی برای استفاده از درایورهای موتور با میکروکنترلرها است و به شما این امکان را میدهد که دستگاههایی را کنترل کنید که به جریان بیشتری از آنچه میکروکنترلر میتواند بهطور مستقیم تأمین کند، نیاز دارند. در پایان این آموزش، شما یک پمپ آب عملی خواهید داشت که میتواند بهطور برنامهنویسی فعال و غیر فعال شود.
ESP32 یک میکروکنترلر قدرتمند است که با قابلیتهای Wi-Fi و بلوتوث داخلی ارائه میشود، و آن را برای برنامههای اینترنت اشیا مناسب میسازد. درایور موتور L293D برای کنترل پمپ آب استفاده میشود با مدیریت جریان بالاتر مورد نیاز برای راهاندازی موتور. این تنظیمات به ما اجازه میدهد تا پمپ را روشن و خاموش کنیم در حالی که اطمینان حاصل میکنیم که ESP32 از کشش جریان بیش از حد مصون بماند.
توضیحات سختافزار
در این پروژه، از میکروکنترلر ESP32 استفاده میکنیم که به خاطر چندکاره بودن و گزینههای اتصالش شناخته شده است. این میکروکنترلر میتواند همانند یک آردوینو عمل کند در حالی که ویژگیهای اضافی مانند Wi-Fi و بلوتوث را ارائه میدهد. درایور موتور L293D به عنوان یک رابط بین ESP32 و پمپ آب عمل میکند و امکان کنترل عملیات پمپ را بدون بارگذاری بیش از حد میکروکنترلر فراهم میکند.
مدل L293D دارای دو H-bridge است که به آن امکان کنترل جهت و سرعت موتور را میدهد. هر H-bridge میتواند یک موتور را در هر دو جهت هدایت کند که آن را برای کاربریهایی که نیاز به کنترل موتور دارند، مناسب میسازد. در این مورد، ما تنها نیاز داریم پمپ را برای کار کردن در یک جهت فعال کنیم.
جزئیات برگه داده
سازنده
تگزاس اینسترومنتس
شماره قطعه
L293D
ولتاژ منطقی/ورودی-خروجی
۴.۵ - ۳۶ ولت
ولتاژ تغذیه
۴.۵ - ۳۶ ولت
جریان خروجی (برای هر کانال)
600 میلیآمپر
جریان اوج (به ازای هر کانال)
۱.۲ الف
راهنمایی فرکانس PWM
۱ کیلوهرتز - ۱۰ کیلوهرتز
محدودههای منطق ورودی
۲ ولت (بالا)، ۰.۸ ولت (پایین)
افت ولتاژ / RDS(on)/ اشباع
1.5 ولت (حداکثر)
محدودیتهای حرارتی
+150 درجه سانتیگراد (حداکثر)
بسته
DIP-16
یادداشتها / متغیرها
شامل دیودهای داخلی برای حفاظت از بار القایی
اطمینان حاصل کنید که پخش مناسب حرارت برای عملکرد پیوسته انجام شود.
از خازنهای جداکننده برای تأمین منبع تغذیه پایدار استفاده کنید.
از ولتاژ ورودی احتیاط کنید تا از آسیب جلوگیری شود.
در صورت نیاز از PWM برای کنترل سرعت استفاده کنید.
واردات سیمکشی را برای جلوگیری از اتصال کوتاه بررسی کنید، بهویژه با بارهای القایی.
دستورالعملهای سیمکشی
ESP32-16-motor-pump_wiring
برای اتصال ESP32 و درایور موتور L293D به پمپ آب، این مراحل را به دقت دنبال کنید. ابتدا، منبع تغذیه را به L293D وصل کنید. پایه ۱ (پایه فعالسازی برای موتور A) و پایه ۸ (Vcc2) را به منبع ولتاژ مثبت (۵V) وصل کنید. پایه ۴ (زمین) را به زمین مدار خود وصل کنید.
سپس ESP32 را به L293D متصل کنید. پایه GPIO 13 را از ESP32 به پایه 2 (ورودی 1) روی L293D وصل کنید و پایه GPIO 14 را به پایه 7 (ورودی 2) متصل کنید. در نهایت، پمپ آب را به پایه 3 (خروجی 1) و پایه 6 (خروجی 2) L293D وصل کنید. اطمینان حاصل کنید که تمام اتصالات زمین به درستی به هم متصل شدهاند تا عملکرد مناسب داشته باشند. اگر این دستورالعملها را دنبال کنید، سیمکشی شما باید ساده و کاربردی باشد.
نمونههای شِفر (کود) و راهنمایی
در شِفر (کود)، اتصالات پایه را برای کنترل موتور تعریف میکنیم. شناساییکنندههاmotor1Aوmotor2Aاین پایهها به ترتیب به پایههای GPIO شماره ۱۳ و ۱۴ روی ESP32 مربوط میشوند. این پایهها پمپ آب را از طریق درایور L293D کنترل خواهند کرد.
درsetup()این تابع، پایههای کنترل موتور را به عنوان خروجی مقداردهی اولیه میکند. این اطمینان میدهد که میتوانیم سیگنالها را به درایور L293D ارسال کنیم تا پمپ را کنترل کنیم.loop()عملکرد سپس کنترل عملیات پمپ را انجام میدهد.
void loop() {
digitalWrite(motor1A, HIGH);
digitalWrite(motor2A, LOW);
delay(5);
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, LOW);
delay(2000); // wait for a second
}
در داخلloop()عملکرد، ما تنظیم می کنیمmotor1Aبه HIGH وmotor2Aبرای شروع پمپ، کم است. پس از یک تأخیر کوتاه، با قرار دادن هر دو پایه بر روی LOW، پمپ را متوقف میکنیم. این چرخه به طور نامحدود تکرار میشود و اجازه میدهد پمپ برای مدت کوتاهی کار کند و سپس متوقف شود.
نمایشگاه / چه انتظاری داشته باشید
پس از اینکه سیمکشی را کامل کرده و شِفر (کود) را بارگذاری کردید، باید ببینید که پمپ آب در یک چرخه فعال و غیرفعال میشود. پمپ برای مدت کوتاهی کار خواهد کرد و سپس متوقف میشود و یک الگوی روشن-خاموش ایجاد میکند. اطمینان حاصل کنید که منبع تغذیه شما برای نیازهای پمپ کافی است تا از هرگونه مشکل جلوگیری شود (در ویدئو در ۰۹:۳۰).
برچسبهای ویدیو
۰۰:۰۰ شروع
معرفی پروژه 1:50
۳:۱۷ چرا به L293D با آردوینو نیاز داریم؟
5:47 توضیحات درباره سیمکشی پمپ آب
۱۰:۰۱ توضیح شِفر (کود) آردوینو
انتخاب پورت COM برای ESp32 در Arduino IDE ساعت ۱۲:۲۱
۱۴:۰۳ نمایش راهاندازی پمپ
۱۵:۲۵ نمایش با آب
تصاویر
ESP32-15_L293D_motor_schematic
ESP32-16-motor-pump_wiring
5V DC water pump
ESP32-15_L293D_motor_schematic
ESP32-16-motor-pump_wiring
5V DC water pump
815-ESP32 Tutorial 16/55 - Arduino code to control DC water pump