درایور پمپ آب DC با ESP32 و برد بورد سفارشی
معمولا وقتی یه ایده الکترونیکی به ذهنمون میرسه، اولین کار بستن مدار روی برد بورده. اما وقتی مدار نهایی شد، انتقالش به بردهای سوراخدار معمولی هم ظاهر خستهکنندهای داره و هم دستمون رو برای پیادهسازی تمیز میبنده. تو این آموزش از آیسیمدار، میخوایم یه قدم فراتر بریم و با هم یه درایور پمپ آب DC بسازیم که روی یه برد بورد کاملا سفارشی و اختصاصی پیاده شده.
این پروژه فقط درباره روشن کردن یه پمپ نیست؛ بلکه قراره یاد بگیری چطور با کمک میکروکنترلر قدرتمند ESP32 و یه ماسفت، جریان مایعات رو با دقت کنترل کنی. مدار ما جوری طراحی شده که میتونی قطعات SMD رو به راحتی روش مونتاژ کنی و حتی تغذیه رو از طریق پورت USB Type-C تامین کنی.
اگه تو هم از سیمکشیهای شلوغ و بردهای نامرتب خسته شدی و دلت میخواد یه سیستم انتقال آب تر و تمیز و حرفهای بسازی، این پروژه دقیقا برای توئه. پس وسایلت رو آماده کن تا بریم سراغ ساخت این درایور پمپ کاربردی!
قطعات موردنیاز
- برد بورد مدار چاپی سفارشی (Custom PCB Breadboard)
- برد توسعه FireBeetle ESP32
- پمپ آب لرزشی 5 ولت DC
- ماسفت SMD با پکیج SOIC-8
- دیود M7
- پورت مادگی USB Type-C (نصب سطحی)
- مقاومت 10 کیلواهم
- سوکت و سیم JST
- خمیر قلع و ابزار لحیمکاری
طراحی یک برد بورد کاملاً اختصاصی
همونطور که میدونی، برای شروع هر پروژه الکترونیکی، اول مدار رو روی برد بورد میبندیم تا خیلی سریع ایده رو تست کنیم. بعد از اینکه از کارکرد مدار مطمئن شدیم، معمولا قطعات رو روی یه برد سوراخدار (Perf board) لحیم میکنیم تا مدارمون پایدارتر و دائمی بشه.
اما راستش رو بخوای، بردهای سوراخدار معمولی همیشه برام خستهکننده و محدودکننده بودن. اونا معمولا یکرو هستن و انعطافپذیری زیادی بهت نمیدن. برای همین تصمیم گرفتم خودم دست به کار بشم و یه برد بورد مدار چاپی (PCB) کاملا سفارشی طراحی کنم که دقیقا متناسب با نیازهای نمونهسازی خودم باشه.
اولین چیزی که بهش نیاز داشتم، یه ورودی تغذیه بیدردسر بود. پس یه پورت USB Type-C به همراه یه دیود M7 برای محافظت از مدار به طراحی اضافه کردم.
در قدم بعدی، یه جایگاه برای آیسیهای پکیج SOIC-8 در نظر گرفتم. این ویژگی بهت اجازه میده خیلی راحت با آیسیهای SMD کار کنی؛ مخصوصا وقتایی که قطعه مورد نظرت نسخه دیپ (DIP) نداره و مجبوری از قطعات نصب سطحی استفاده کنی.
برای اینکه مدار هم ظاهر جذابی داشته باشه و هم وضعیت کارکردش مشخص بشه، جایگاه یه الایدی آدرسپذیر مدل WS2812B رو روی برد قرار دادم. در کنار اون، یه پد هم برای نصب یه الایدی ساده سایز 0603 اضافه کردم تا به عنوان نشانگر وضعیت ازش استفاده کنیم.
چیدمان کلی این برد بورد سفارشی، شباهت زیادی به برد بوردهای سنتی داره. با این تفاوت که تو بخش میانی، به جای ستونهای متصل به هم، پدهای کاملا جداگانه و مستقل قرار گرفتن. این نوع طراحی بهت اجازه میده اتصالات رو دقیقا همونطور که خودت میخوای انجام بدی و دیگه محدود به خطوط عمودی ثابت نباشی.
البته خطوط تغذیه یعنی VCC و GND دقیقا مثل برد بوردهای معمولی طراحی شدن تا انتقال مدار از برد بورد کلاسیک به این برد بورد سفارشی، کاملا سریع و بدون گیجشدن انجام بشه.
چاپ مدار چاپی و بررسی طراحی
بعد از اینکه طراحی مدار تو نرمافزار تموم شد، فایلهای گربر (Gerber) رو آماده کردم و برای چاپ فرستادم. برای ظاهر برد، ترکیب چاپ سبز (سولدر ماسک) زرد با راهنمای قطعات (Silkscreen) سفید رو انتخاب کردم که ظاهر خیلی خاصی به مدار میده. وقتی بردها به دستم رسید، کیفیت چاپ و تمیزی پدها واقعا عالی بود.
تو پروژههای طراحی PCB، همیشه استفاده از ابزارهای بررسی و عیبیابی (DFM) خیلی کمککنندهست. این ابزارها قبل از اینکه مدارت رو برای تولید بفرستی، طرحت رو آنالیز میکنن و اگه مشکلی تو فاصلهها یا پدها باشه، بهت هشدار میدن.
حتما قبل از نهایی کردن سفارش، فایلهات رو با نرمافزارهای نمایش گربر چک کن تا خیالت راحت بشه هیچ اتصالی جا نیفتاده و همهچیز سر جای خودشه.
بررسی دقیق مدار باعث میشه از اشتباهات رایج تو فرآیند تولید جلوگیری کنی و بردی که به دستت میرسه کاملا بینقص باشه. مونتاژ قطعات SMD روی یه برد باکیفیت و بدون خطا، هم سرعت کارت رو بالا میبره و هم نتیجه نهایی رو به شدت تمیزتر درمیاره.
حالا که بردهای اختصاصی و زیبامون آماده شدن، دیگه وقتشه هویه و خمیر قلع رو بیاریم و بریم سراغ جذابترین بخش کار، یعنی مونتاژ قطعات!
اهمیت بررسی فایلهای گربر
نرمافزارهای نمایش گربر و تحلیل DFM، ابزارهای فوقالعادهای برای بهینهسازی طراحی هستن. به جای اینکه منتظر بمونی تا شرکت تولیدکننده ایرادات رو بهت بگه، میتونی خودت قبل از هر کاری یه خودآزمایی کامل روی فایلهات انجام بدی و خیالت رو راحت کنی.
نمایشگرهای آنلاین گربر معمولا برای یه نگاه سریع و کلی خیلی خوبن، اما جزئیات خیلی دقیق رو نشون نمیدن. اگه میخوای یه تحلیل عمیق و همهجانبه روی مدارت داشته باشی تا برای مونتاژ قطعات هیچ مشکلی پیش نیاد، بهتره از نسخههای دسکتاپ این نرمافزارها استفاده کنی.
نسخههای تحت وب معمولا فقط یه گزارش پایه و ساده از وضعیت برد بهت میدن. اما با استفاده از تحلیلهای پیشرفته، میتونی حتی کوچکترین تداخلها رو هم پیدا کنی.
بررسی فایلهای گربر با این ابزارها، بهت دید خیلی خوبی از فرآیند تولید صنعتی میده. وقتی مطمئن شدی فایلهات بینقص هستن، میتونی با خیال راحت قطعات رو روی برد لحیم کنی و یه نمونهسازی فوقالعاده پایدار و حرفهای داشته باشی.
مونتاژ قطعات SMD روی برد
- مونتاژ مدار رو با زدن خمیر قلع روی پدهای آیسی SOIC-8 و پورت Type-C شروع کردیم. برای این کار از خمیر قلع سربدار مدل 63/37 استفاده کردیم که دمای ذوبش حدودا 200 درجه سانتیگراده.
- حالا نوبت به قرار دادن قطعات SMD میرسه. اول پورت USB Type-C رو با دقت سر جاش گذاشتیم، بعد دیود M7 و در نهایت ماسفت پکیج SOIC-8 رو روی پدها قرار دادیم.
- وقتی همه قطعات رو دقیقا سر جاشون تنظیم کردیم، کل برد رو روی هاتپلیت (هیتر رومیزی) گذاشتیم. هاتپلیت برد رو از پایین گرم میکنه و آرومآروم دما رو به نقطه ذوب خمیر قلع میرسونه. به محض اینکه دما به حد نصاب برسه، خمیر ذوب میشه و قطعات کاملا محکم و تراز روی برد لحیم میشن.
- بعد از اینکه برد خنک شد، فرآیند مونتاژ قطعات نصب سطحی تموم میشه و مدارمون برای مراحل بعدی و سیمکشی آمادهست.
سیمکشی و اتصال میکروکنترلر ESP32
برای بخش کنترل مرکزی این پروژه، از یه برد FireBeetle ESP32 استفاده کردیم. اول این برد رو روی برد بورد سفارشی لحیم کردیم و بعدش با کمک سیمکشی، اتصالات لازم رو طبق نقشه مدار برقرار کردیم.
- پین گیت (Gate) آیسی ماسفت رو از طریق یه مقاومت 10 کیلواهم به پین GPIO27 میکروکنترلر ESP32 وصل کردیم. این مقاومت به عنوان مقاومت گیت عمل میکنه و باعث میشه سوئیچینگ ماسفت کاملا پایدار باشه. در ضمن، پینهای GND برد ESP32 و برد بورد سفارشی رو هم به هم وصل کردیم تا یه نقطه صفر مشترک برای کل مدار ایجاد بشه.
- برای اتصال پمپ، یه کانکتور JST روی برد بورد اضافه کردیم. پین مثبت این کانکتور به خط VCC برد بورد وصل میشه و پین منفی اون رو به پایه درین (Drain) ماسفت متصل میکنیم.
- پایه سورس (Source) ماسفت هم مستقیما به GND وصل میشه تا مدار سوئیچینگ سمت پایین (Low-side) تکمیل بشه.
- برای تامین تغذیه کل سیستم، خروجی 5 ولت برد ESP32 رو به خط VCC برد بورد سفارشی وصل کردیم تا برق پمپ و بقیه بخشهای مدار به راحتی تامین بشه.
با انجام این سیمکشیها، مدار ما کاملا سرهم شده و آمادهست تا بریم برای تست نهایی.
نصب و راهاندازی پمپ آب لرزشی
تو این پروژه از یه پمپ آب DC لرزشی (Vibrating pump) استفاده کردیم. این نوع پمپها برای انتقال مایعات از یه ظرف به ظرف دیگه بدون نیاز به نیروی جاذبه یا کمک خارجی، فوقالعاده هستن. پمپ با مکش فعال، مایع رو از ظرف مبدا میکشه و با فشار به ظرف مقصد میریزه؛ اینطوری جریان آب کاملا قابل پیشبینی و کنترل میشه.
پمپهایی که با این مکانیزم کار میکنن، معمولا تو دستگاههای اسپرسوساز دیده میشن. البته پمپهای صنعتی قهوهساز با برق AC کار میکردن، اما اصول کارشون دقیقا یکیه. پمپی که ما اینجا استفاده کردیم با ولتاژ 5 ولت DC کار میکنه و به همین خاطر بهترین گزینه برای پروژههای میکروکنترلری محسوب میشه.
برای اتصال پمپ به مدار، از سیمهای سوکتدار JST استفاده کردیم که مستقیما به کانکتور روی برد بورد وصل میشه. این کار باعث میشه اتصالات خیلی محکم و مطمئن باشن و در عین حال ظاهر پروژه هم ماژولار و تمیز بمونه. حالا که سیمکشی پمپ هم انجام شد، همهچیز برای تست کردن مدار مهیاست.
کدهای برنامه و نحوه عملکرد مدار
کدهای زیر رو روی برد FireBeetle ESP32 آپلود کردیم تا فرمانهای لازم رو به پمپ بده.
const int mosfetPin = 17; // GPIO17
const int ledPin = D9; // LED
const int buttonPin = 27; // Button
bool active = false;
unsigned long startTime = 0;
const unsigned long onTime = 5000; // 5 seconds
void setup() {
pinMode(mosfetPin, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
digitalWrite(mosfetPin, LOW);
digitalWrite(ledPin, LOW);
}
void loop() {
// Button pressed (LOW)
if (!active && digitalRead(buttonPin) == LOW) {
active = true;
startTime = millis();
digitalWrite(mosfetPin, HIGH); // MOSFET ON
digitalWrite(ledPin, HIGH); // LED ON
}
// After 5 seconds
if (active && millis() - startTime >= onTime) {
digitalWrite(mosfetPin, LOW); // MOSFET OFF
digitalWrite(ledPin, LOW); // LED OFF
active = false;
}
}
اینجا یه کد آزمایشی خیلی ساده نوشتیم که عملکردش به این شکله: وقتی دکمهای که به پین GPIO27 وصل شده رو فشار بدی، هم الایدی متصل به پین D9 و هم پین کنترل ماسفت روی GPIO17 روشن (HIGH) میشن.
بعد از فعال شدن، الایدی و ماسفت به مدت 5 ثانیه تو حالت روشن باقی میمونن. وقتی این 5 ثانیه تموم شد، وضعیت هر دو پین خاموش (LOW) میشه و پمپ از حرکت میایسته. این چرخه به همین ترتیب ادامه پیدا میکنه و به صورت یه حلقه تکرار میشه.
تست نهایی درایور پمپ و جمعبندی
اینم از نتیجه نهایی این پروژه ساده اما بهشدت کاربردی! ما تونستیم یه درایور پمپ آب DC بسازیم که روی یه برد بورد اختصاصی سوار شده، مغز متفکرش ESP32 هست و کار کردن باهاش بینهایت لذتبخشه.
تو این مدار فقط از یه ماسفت برای درایو کردن پمپ استفاده کردیم. به خاطر همین، پمپ فقط میتونه تو یه جهت کار کنه که البته کاملا هم منطقیه. وظیفه این پمپ انتقال آب از ظرف A به ظرف B هست، نه برعکس! پس همین چیدمان ساده کارمون رو به بهترین شکل راه میندازه.
یکی از بهترین ویژگیهای این برد بورد سفارشی، انعطافپذیری بالای اونه. اگه یه روزی نیاز داشتی جهت چرخش پمپ رو برعکس کنی، خیلی راحت میتونی ماسفتهای بیشتری به مدار اضافه کنی، یه پل اچ (H-Bridge) بسازی و با همون ESP32 کنترلش کنی.
به لطف طراحی این برد بورد، میتونی ازش تو پروژههای متنوعی مثل سیستمهای آبیاری هوشمند گیاهان، درایور انواع موتورها و حتی نمونهسازی مدارهای آنالوگ استفاده کنی.
با کمک این درایور پمپ، حالا میتونم آزمایشهای مختلفی انجام بدم. هدفم اینه که پمپ رو برای یه زمان مشخص روشن کنم و ببینم تو اون مدت چقدر آب جابهجا میکنه. با داشتن این اطلاعات، میتونم دقیقا محاسبه کنم که برای انتقال یه حجم خاص از آب به چقدر زمان نیازه و بعدا این مقادیر رو مستقیم تو کدهای پروژههای آیندم استفاده کنم.
خب، این پروژه هم با موفقیت به پایان رسید و نتیجه دقیقا همونی شد که انتظارش رو داشتیم. مرسی که تا آخر این آموزش با آیسیمدار همراه بودی. حتما نظرت رو درباره این مدار برامون بنویس و اگه سوالی داشتی تو کامنتها بپرس. خیلی زود با یه پروژه جذاب دیگه برمیگردم!
تو میتونی اولین سازنده باشی!
اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر
این آموزش با استانداردهای اختصاصی آیسیمدار بازنویسی و بهینهسازی شده و تمامی حقوق انتشار آن متعلق به این مجموعه است و در صورت کپی یا بازنشر پیگرد قانونی خواهد داشت.








































گفتگوهای کاربران
هنوز نظری ثبت نشده؛ تو شروع کن!
هنوز نظری ثبت نشده؛ تو شروع کن!