فهرست مطالب:

UltraSonic Liquid Level Controller: 6 مرحله (همراه با تصاویر)
UltraSonic Liquid Level Controller: 6 مرحله (همراه با تصاویر)
Anonim
کنترل کننده سطح مایع UltraSonic
کنترل کننده سطح مایع UltraSonic

مقدمه همانطور که احتمالاً می دانید ، ایران دارای آب و هوای خشک است و در کشور من کمبود آب وجود دارد. گاهی اوقات ، به ویژه در تابستان ، می توان دید که دولت آب را قطع می کند. بنابراین اکثر آپارتمان ها دارای مخزن آب هستند. یک مخزن 1500 لیتری در آپارتمان ما وجود دارد که آب را تأمین می کند. همچنین ، 12 واحد مسکونی در آپارتمان ما وجود دارد. در نتیجه می توان انتظار داشت که مخزن خیلی زود خالی شود. یک پمپ آب متصل به مخزن وجود دارد که آب را به داخل ساختمان می فرستد. هرگاه مخزن خالی باشد ، پمپ بدون آب کار می کند. این وضعیت باعث افزایش دمای موتور می شود و در طول زمان می تواند باعث خرابی پمپ شود. چندی پیش ، این خرابی پمپ برای دومین بار برای ما اتفاق افتاد و پس از باز شدن موتور ، شاهد سوخته شدن سیم های سیم پیچ بودیم. پس از تعویض پمپ ، برای جلوگیری مجدد از این مشکل ، تصمیم گرفتم یک کنترل کننده سطح آب بسازم. من برنامه ریزی کردم که هر زمان که آب به پایین ترین حد در مخزن رسید ، منبع تغذیه پمپ را قطع کنم. تا زمانی که آب به حداکثر نرسد پمپ کار نمی کند. پس از عبور از حد بالا ، مدار دوباره منبع تغذیه را وصل می کند. در ابتدا ، من در اینترنت جستجو کردم تا ببینم آیا می توانم مدار مناسبی پیدا کنم. با این حال ، من چیزی مناسب پیدا نکردم. برخی از شاخص های آب مبتنی بر آردوینو وجود داشت ، اما مشکل من را حل نکرد. در نتیجه ، تصمیم گرفتم کنترل کننده سطح آب خود را طراحی کنم. یک بسته همه کاره با رابط کاربری گرافیکی ساده برای تنظیم پارامترها. همچنین ، من سعی کردم استانداردهای EMC را در نظر بگیرم تا مطمئن شوم که دستگاه در شرایط مختلف معتبر عمل می کند.

مرحله 1: اصل

اصل
اصل

احتمالاً اصل را قبلاً می دانید. هنگامی که سیگنال پالس اولتراسونیک به سمت یک جسم ساطع می شود ، توسط جسم منعکس می شود و اکو به فرستنده باز می گردد. اگر زمان پالس اولتراسونیک را محاسبه کنید ، می توانید فاصله جسم را پیدا کنید. در مورد ما ، مورد آب است.

توجه داشته باشید که وقتی فاصله تا آب را پیدا می کنید ، در حال محاسبه حجم فضای خالی در مخزن هستید. برای بدست آوردن حجم آب ، باید حجم محاسبه شده را از کل حجم مخزن کم کنید.

مرحله 2: سنسور ، منبع تغذیه و کنترل کننده

سنسور ، منبع تغذیه و کنترل کننده
سنسور ، منبع تغذیه و کنترل کننده
سنسور ، منبع تغذیه و کنترل کننده
سنسور ، منبع تغذیه و کنترل کننده
سنسور ، منبع تغذیه و کنترل کننده
سنسور ، منبع تغذیه و کنترل کننده
سنسور ، منبع تغذیه و کنترل کننده
سنسور ، منبع تغذیه و کنترل کننده

سخت افزار

برای سنسور ، از سنسور اولتراسونیک ضد آب JSN-SR04T استفاده کردم. روال کار مانند HC-SR04 (اکو و پین تریگ) است.

مشخصات:

  • فاصله: 25 تا 450 سانتی متر
  • ولتاژ کار: DC 3.0-5.5V
  • جریان کار: m 8mA
  • دقت: ± 1 سانتی متر
  • فرکانس: 40 کیلوهرتز
  • دمای کار: -20 ~ 70

توجه داشته باشید که این کنترل کننده محدودیت هایی دارد. به عنوان مثال: 1- JSN-SR04T نمی تواند فاصله زیر 25CM را اندازه گیری کند ، بنابراین باید سنسور را حداقل 25CM بالاتر از سطح آب نصب کنید. علاوه بر این ، حداکثر اندازه گیری فاصله 4.5M است. بنابراین این سنسور برای مخازن بزرگ مناسب نیست. 2- دقت 1CM برای این سنسور است. در نتیجه ، بر اساس قطر مخزن ، وضوح حجمی که دستگاه نشان می دهد می تواند متفاوت باشد. 3- سرعت صدا بر اساس دما می تواند متفاوت باشد. در نتیجه ، دقت می تواند تحت تأثیر مناطق مختلف قرار گیرد. با این حال ، این محدودیت ها برای من مهم نبود و دقت مناسب بود.

کنترل کننده

من از STM32F030K6T6 ARM Cortex M0 از STMicroelectronics استفاده کردم. در اینجا می توانید مشخصات این میکروکنترلر را بیابید.

منبع تغذیه

قسمت اول تبدیل 220V/50Hz (برق ایران) به 12VDC است. برای این منظور ، من از ماژول منبع تغذیه باک HLK-PM12 استفاده کردم. این مبدل AC/DC می تواند 90 ~ 264 VAC را با جریان خروجی 0.25A به 12VDC تبدیل کند.

همانطور که احتمالاً می دانید ، بار القایی روی رله می تواند مشکلات متعددی در مدار و منبع تغذیه ایجاد کند و مشکل در منبع تغذیه می تواند منجر به ناسازگاری ، به ویژه در میکروکنترلر شود. راه حل جدا کردن منابع تغذیه است. همچنین ، شما باید از یک مدار snubber در مخاطبین رله استفاده کنید. چندین روش برای جدا کردن منبع تغذیه وجود دارد. به عنوان مثال ، می توانید از ترانسفورماتور با دو خروجی استفاده کنید. علاوه بر این ، مبدلهای DC/DC جداگانه ای در اندازه کوچک وجود دارد که می تواند خروجی را از ورودی جدا کند. من برای این منظور از MINMAX MA03-12S09 استفاده کردم. این مبدل 3W DC/DC با ایزوله است.

مرحله 3: IC سرپرست

IC سرپرست
IC سرپرست

با توجه به نکته TI App: ناظر ولتاژ (که به آن مدار مجتمع بازنشانی (IC) نیز گفته می شود) نوعی مانیتور ولتاژ است که منبع تغذیه سیستم را کنترل می کند. ناظران ولتاژ اغلب با پردازنده ها ، تنظیم کننده های ولتاژ و ترتیب دهنده ها - به طور کلی ، در مواردی که نیاز به تشخیص ولتاژ یا جریان است ، استفاده می شود. سرپرستان ریل های ولتاژ را برای اطمینان از روشن بودن ، تشخیص خطاها و برقراری ارتباط با پردازنده های تعبیه شده برای اطمینان از سلامت سیستم کنترل می کنند. می توانید این یادداشت برنامه را در اینجا پیدا کنید. اگرچه میکروکنترلرهای STM32 دارای سرپرستان داخلی مانند مانیتور منبع تغذیه هستند ، اما من از یک تراشه ناظر خارجی استفاده کردم تا مطمئن شوم همه چیز خوب کار می کند. در مورد من ، من از TL7705 از TI استفاده کردم. توضیحات مربوط به این IC را می توانید از وب سایت Texas Instruments در زیر مشاهده کنید: خانواده TL77xxA سرپرستان ولتاژ تغذیه مدار یکپارچه به طور خاص برای استفاده به عنوان کنترل کننده تنظیم مجدد در سیستم های میکرو کامپیوتر و ریزپردازنده طراحی شده است. ناظر ولتاژ منبع تغذیه را تحت شرایط زیر ولتاژ در ورودی SENSE نظارت می کند. در حین روشن شدن ، خروجی RESET فعال می شود (کم) وقتی VCC به مقداری نزدیک به 3.6 ولت برسد. در این مرحله (با فرض اینکه SENSE بالاتر از VIT+است) ، عملکرد تایمر تاخیر یک تاخیر زمانی را فعال می کند ، پس از آن خروجی مجدد و بازنشانی (NOT) غیرفعال شوید (به ترتیب بالا و پایین). هنگامی که یک وضعیت زیر ولتاژ در حین عملکرد عادی رخ می دهد ، RESET و RESET (NOT) فعال می شوند.

مرحله 4: برد مدار چاپی (PCB)

برد مدار چاپی (PCB)
برد مدار چاپی (PCB)
برد مدار چاپی (PCB)
برد مدار چاپی (PCB)
برد مدار چاپی (PCB)
برد مدار چاپی (PCB)
برد مدار چاپی (PCB)
برد مدار چاپی (PCB)

من PCB را در دو قسمت طراحی کردم. اولین مورد PCB LCD است که با روبان/کابل تخت به صفحه اصلی متصل می شود. بخش دوم PCB کنترل کننده است. در این PCB ، منبع تغذیه ، میکروکنترلر ، سنسور اولتراسونیک و اجزای مربوطه را قرار دادم. و همچنین بخش قدرت که مدار رله ، واریستور و اسنابر است. همانطور که احتمالاً می دانید ، رله های مکانیکی مانند رله ای که من در مدار خود استفاده کردم ، اگر همیشه کار کنند ، می توانند خراب شوند. برای غلبه بر این مشکل ، از تماس معمولی نزدیک (NC) رله استفاده کردم. بنابراین در شرایط عادی ، رله فعال نیست و معمولاً تماس نزدیک می تواند قدرت پمپ را هدایت کند. هر زمان که آب به حد پایین برسد ، رله روشن می شود و این باعث قطع برق می شود. با این حال ، این دلیل آن است که من از مدار snubber در مخاطبین NC و COM استفاده کردم. با توجه به اینکه پمپ قدرت بالایی داشت ، از رله دوم 220 برای آن استفاده کردم و آن را با رله روی PCB هدایت می کنم.

شما می توانید فایل های PCB مانند فایل های Altium PCB و فایل های Gerber را از GitHub من در اینجا بارگیری کنید.

مرحله 5: کد

Image
Image
نصب بر روی مخزن
نصب بر روی مخزن

من از STM32Cube IDE استفاده کردم ، که یک راه حل همه کاره برای توسعه کد از STMicroelectronics است. این بر اساس Eclipse IDE با کامپایلر GCC ARM است. همچنین ، STM32CubeMX را در خود دارد. اطلاعات بیشتر را می توانید در اینجا بیابید. در ابتدا ، من یک کد نوشتم که شامل مشخصات مخزن ما (ارتفاع و قطر) بود. با این حال ، برای تنظیم پارامترها بر اساس مشخصات مختلف ، تصمیم گرفتم آن را به GUI تغییر دهم.

مرحله 6: نصب بر روی مخزن

نصب بر روی مخزن
نصب بر روی مخزن
نصب بر روی مخزن
نصب بر روی مخزن

در پایان ، من یک جعبه ساده برای آن تهیه کردم تا PCB را از آب محافظت کند. همچنین ، من یک سوراخ در بالای مخزن ایجاد کردم تا سنسور را روی آن قرار دهم.

توصیه شده: