Warning: Declaration of tie_mega_menu_walker::start_el(&$output, $item, $depth, $args, $id = 0) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /home3/afgsaane/public_html/wp-content/themes/jarida/functions/theme-functions.php on line 1904
PWM بخش اول - سایت تخصصی مهندسی برق
خانه / رباتیک / PWM بخش اول

PWM بخش اول

مقدمه

در بسياري از موارد، ما نياز به كنترل ولتاژ بر روي پايه‌هاي خروجي ميكروكنترلر را داريم. مثلاً اگر بخواهيم سرعت موتور را كنترل كنيم، بايد ولتاژي كه بر روي موتور اعمال مي‌شود را كنترل كرد. در حقيقت سرعت موتور تقريباًً تابع مستقيمي از ولتاژي است كه بر روي آن اعمال مي‌شود. يعني اگر ولتاژ كاريِ موتوري (ولتاژ استاندارد براي فعال سازي موتور كه بر روي بدنه‌ي آن نوشته مي‌شود) 12 ولت باشد، با اعمال ولتاژ 6 ولت روي آن، مي‌توانيد سرعت چرخش آن(rpm) را حدوداً به نصف كاهش دهيد.
كنترل سرعت ربات، در همه‌ي سطوح رباتيك اهميت بسيار زيادي دارد، از ربات‌هاي مسيرياب ساده گرفته تا ربات‌هاي فوتباليست. ما تا كنون ياد گرفته‌ايم كه چگونه مي‌توان به موتور دستور حركت يا توقف داد، اما راهي براي كنترل سرعت موتور ياد نگرفته‌ايم.

سطح ولتاژ پايه‌هاي خروجي ميكروكنترلر منطقي است، يعني يك پايه‌اي كه براي كنترل موتور ربات استفاده مي‌شود فقط مي‌تواند 0 يا 1 باشد. ما 2 پايه از ميكروكنترلر را به حركت ربات اختصاص مي‌دهيم، براي صدور دستور حركت، بايد يك پايه را 0 و پايه‌ي ديگر را 1 كنيم، در اين حالت بين 2 پايه‌ي موتور اختلاف پتانسيل برقرار مي‌شود و حركت مي‌كند. اگر هم بخواهيم موتور معكوس بچرخد، بايد پايه‌اي كه 1 بود 0 ، و پايه‌اي كه 0 بود را 1 كنيم؛ و براي توقف موتور، بايد هر دو پايه را 0 يا هر دو پايه را 1 كنيم (تا بين 2 پايه‌ي موتور اختلاف پتانسيل 0 ولت باشد). در نتيجه در حالت عادي ما فقط 2 فرمان “حركت” و “توقف” را مي‌توانيم به موتورها بدهيم، و ما هيچ كنترلي بر روي سرعت موتور نداريم.
PWM تكنيكي است كه به كمك آن مي‌توانيم ولتاژ پايه‌هاي خروجي ميكروكنترلر، و در نتيجه سرعت موتور يا ساير قطعات جانبي كه به ميكروكنترلر متصل مي‌شود را كنترل كنيم.

PWM مخفف واژه‌ي Pulse Width Modulation و به معناي “مدولاسيون پهناي پالس” است. همانطور كه گفتيم PWM تكنيكي براي كنترل ولتاژِ پايه‌ي خروجي است. حال ببينيم چگونه با اين تكنيك مي‌توان ولتاژ خروجي را كنترل كرد.
مي‌دانيم كه ولتاژ در پايه‌هاي خروجي ميكروكنترلر يا 0 است يا 5 ولت، اما براي كنترل سرعت موتور، بايد بتوانيم حداقل ولتاژ يكي از پايه‌ها را بين 0 تا 5 تغيير دهيم. PWM روشي است تا ما بتوانيم با استفاده از همين پايه‌ي خروجي معمولي، به نوعي ولتاژ را بين 0 تا 5 ولت تغيير دهيم.
در اين روش، ما با سرعت بالايي سطح ولتاژ خروجي را 0 و بلافاصله 1 مي‌كنيم(مثلاً هزار بار در ثانيه)، نمودار ولتاژ خروجي بر حسب زمان به شكل زير مي‌شود.

در شكل بالا جمع 2 بازه‌اي كه با فلش‌هاي 2طرفه نشان داده شده است، (به عنوان مثال) 10 ميكرو ثانيه است. كه 5ميكرو ثانيه خروجي 1 و سپس 5ميكرو ثانيه 0 مي‌شود. اما همانطور كه گفته شد، اين عمل هزاران بار در ثانيه تكرار مي‌شود، اما آيا موتور نيز به همين تعداد در ثانيه روشن و خاموش مي‌شود؟
جواب منفيست، اتفاقي كه روي مي‌دهد اين است كه موتور، اين موج را در درون خود به نوعي ميانگين گيري مي‌كند و در حقيقت آنرا به شكل زير مي بيند:

يعني در واقع موتور اين موج را به صورت يك ولتاژ 2.5 ولت معمولي دريافت مي‌كند.
به همين ترتيب مي‌توان هر ولتاژي بين 0 تا 5 ولت را بر روي خروجي‌ مورد نظر ايجاد كرد. اگر بخواهيم ولتاژي بالاتر از 2.5 ولت داشته باشيم، بايد طول بازه‌هاي زماني‌اي كه خروجي 1 است را نسبت به بازه‌هايي كه خروجي 0 است بيشتر كنيم. به عنوان مثال براي ايجاد ولتاژ 2.5 ولت، بايد 5 ميكرو ثانيه سطح ولتاژ خروجي 1 باشد، سپس 5 ميكرو ثانيه سطح ولتاژ 0 شود تا موجي به شكل بالا ايجاد شود.
يا به عنوان مثالي ديگر، اگر بخواهيم در خروجي ولتاژ 4 ولت داشته باشيم، بايد بايد 8 ميكرو ثانيه سطح ولتاژ خروجي 1 باشد، سپس 2 ميكرو ثانيه سطح ولتاژ 0 شود، تا ولتاژ پايه‌ي خروجي مورد نظر 4 ولت باشد.
در حقيقت ولتاژ خروجي از رابطه‌ي ساده‌ي زير به دست مي‌ايد:

(طول كل بازه)  / ( طول بازه‌اي كه خروجي 1 است)

پس طبق رابطه‌ي بالا،براي ايجاد ولتاژ 4 ولت، مي‌توان به جاي استفاده از بازه‌هاي 8 و 2 ميكرو ثانيه‌اي، از بازه‌هاي 4 و 1 ميكرو‌ ثانيه‌اي استفاده كرد. (يعني 4ميكرو ثانيه 5ولت، 1 ميكرو ثانيه 0 ولت)

زيرا:   2÷ 8 = 1÷4

نمودار ولتاژ‌هاي 4 ولت و 1 ولت در زير نشان داده شده است:

 

PWM

نمودار نحوه‌ي توليد ولتاژ 4 ولت با تكنيك PWM

PWM

نمودار نحوه‌ي توليد ولتاژ 1 ولت با تكنيك PWM.

 

منبع :  mechatronic-lab.com

درباره محمد جواد صالحی

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

theme
رفتن به بالا

Warning: Parameter 1 to W3_Plugin_TotalCache::ob_callback() expected to be a reference, value given in /home3/afgsaane/public_html/wp-includes/functions.php on line 3510