نویز | آموزش AVR | آموزش میکرو | میکروکنترلر

وبلاگ آموزشی احسان نوری ::: Ehsan Nouri's Weblog

نویز | آموزش AVR | آموزش میکرو | میکروکنترلر

وبلاگ آموزشی احسان نوری ::: Ehsan Nouri's Weblog

" نویز رسانه ای است برای آموزش آسان مفاهیم میکروکنترلر و الکترونیک "

دریافت مستندات
آخرین نظرات
  • ۲۰ خرداد ۰۰، ۲۰:۴۹ - حسام الدین سلطانی
    خعلی عالی
  • ۲ ارديبهشت ۰۰، ۱۸:۱۱ - حسام الدین سلطانی
    خیلی عالی

آشنایی با مُد PWM ؟ [27]

جمعه, ۱۰ بهمن ۱۳۹۳، ۰۲:۱۵ ب.ظ

 

در بیست و هفتمین پست آموزشی،به بررسی مد PWM میپردازیم.

 

پس با ما در ادامه مطلب همراه باشید...

 

سلام

برگشتم با یه پست جذاب دیگه !

 

پیشتر از این گفتیم که تایمر/کانتر چیه ؟

به چه دردی میخوره ؟

انواع تایمر/کانترها ؟

انواع مدهای کاری ؟

و ...

 

مدهای Normal و CTC رو هم بررسی کردیم و در حال حاضر رسیدیم به بررسی مد PWM.

 

پس اگه بر مطالب قبلی اشراف ندارید،این پستو نخونید که ممکنه درست مطالبو متوجه نشید ! ==> پس فحش هم به من ندید !!! laugh

 

PWM مخفف عبارت Pulse Width Modulation بوده و هست ! wink

مدولاسیون پهنای پالس !

مدولاسیونی که طبق اون میشه یک موج مربعی داشت که پهنای هر پالس و زمان های on و off بودنو میشه کنترل کرد.
از این مدولاسیون میشه جهت تولید موج سینوسی هم استفاده کرد که کاربردهای خاص خودشو در صنعت داره.

بیشتر از اینکه بخوایم به PWM به چشم یک مد خشک و خالی تایمر/کانتر نگاه کنیم،بهتره که به چشم یک تکنیک در مباحث کنترل ولتاژ،کنترل سرعت و حتی مخابرات نگاهش کنیم.

 

خب بریم با یه مثال طبق معمول قضیه رو بررسی کنیم و پیش ببریم !

 

در اینجا فرض میکنیم که یک موتور DC معمولی 5 ولت (آرمیچر 5 ولت) داریم.

فعلا فرض میکنیم که میکروکنترلری در کار نیست ! (آزمایش دوران دبستان cheeky)
میخوایم به این بابا (آرمیچر) ور بریم ؛

سه وضعیت داریم :

 

1.ولتاژ صفر بدیم ==> روشن نمیشه !

2.ولتاژ 5 ولت بدیم ==> روشن میشه و با بیشترین زوری که بهش فشار نیاد میچرخه !

3.ولتاژ بیشتر از 5 ولت بدیم ==> روشن میشه و با نهایت زوری که داره میچرخه و دیگه دست خودش نیست که بهش فشار بیاد یا نه! بسته به اون ولتاژی که اعمال میکنیم شروع به چرخش میکنه و دیگه حتما میدونین که احتمال آسیب دیدنش خیلی زیاد میشه در این حالت !

4.ولتاژ کمتر از 5 ولت بدیم ==> ؟؟؟

 

صبر کنید ...

 

بزارید این یه تیکه رو با شکل و نمودار هم بگیم :

 

 

شکل بالا یعنی 0 ولت خالص DC بدون ریپل !

 

این یکی هم یعنی 5 ولت خالص !

 

این هم 2.5 ولت !

 

حالا وقتشه که یه سوال مطرح کنم.

در مورد این یکی شکل نظرتون چیه ؟؟؟

 

 

Whats Your Idea? cool

 

اصلا مبحث ما هم در همین مورده !

 

اگه به شکل دقت کنید دیوتی سایکل 50 درصد مشاهده میشه !

یعنی در یک دوره،نصف دوره مقدار 5 ولت و نصف دوره مقدار صفر ولت را داریم !

 

 

حالا تصور کنید که بیایم این ولتاژ رو بدیم به موتورمون !

با فرض اینکه یک دوره برابر 10 میکروثانیه باشه (فرضه،،،،فـــــــــــرض !!!! indecision)

5 میکرو ثانیه ولتاژ 5 ولت و 5 میکروثانیه ولتاژ صفر ولته.

سوالم اینه که تکلیف موتور بدبخت ما این وسط چیه ؟!

بالاخره بچرخه یا نچرخه ؟frown

جواب اینه که موتور با وصل شدن 5 ولت شروع به چرخش میکنه،اما به محض صفر شدن ولتاژ،در همون لحظه از حرکت واینمیسته !

یعنی قبل از اینکه چرخش موتور بخواد قطع بشه مجددا وصل میشه و این چرخه همینطور ادامه پیدا میکنه ...

در واقع تا موتور یه مقدار سرعتش افت کرد،مجددا ولتاژ بهش میرسه و ...

خلاصه اینکه؛با دیوتی سایکل 50 درصد،مثه اینه که ولتاژ 2.5 ولت به موتور برسه و بنابراین موتور با نصف سرعت نامی اش میچرخه.

 

دیوتی سایکل میتونه هر مقداری باشه،اینجا برای مثال 50 درصد انتخاب شده.

مثلا اگه دیوتی سایکل 30 درصد باشه،سرعت موتور به 3/10 (سه دهم) سرعت نامی میرسه و ...

 

اصلا کاری به میکروکنترلر هم نداریم !

بریم ببینیم اگه خواستیم یه موج PWM بسازیم باید از چه راهکاری استفاده کنیم ؟!

 

چگونه یک موج PWM بسازیم ؟ :

 

ساده ترین راهی که برای تولید موج PWM وجود داره،استفاده از یک شکل موج مشخص و مقایسه اون با یک سطح ولتاژ ثابته !

شکل زیرو ببینید :

 

 

در شکل بالا یک سطح ولتاژ ثابت داریم که با یه موج دندان اره ای در حال مقایسه شدنه !

اما حاصل این مقایسه رو میشه در سه حالت جمع بندی کرد :

 

1.حالت Inverted ؛ حالت معکوس : در این حالت تا زمانی که موج دندان اره ای ما زیر خط سطح Compare هست،مقدار خروجی صفر و زمانی که موج بالاتر از سطح Compare قرار میگیره،خروجی ما یک میشه !

2.حالت Non-Inverted؛حالت غیر معکوس : دقیقا عکس حالت Invert است.

3.حالت Toggle : در این حالت خروجی Toggle میشه.یعنی وقته صفره میشه یک و وقتی یکه میشه صفر !

 

فعلا اینا رو در حد تعریف گوشه ذهنتون داشته باشید تا تو عمل بهتر باهاشون آشنا بشیم.

 

مدهای کاری PWM :

 

1.Fast PWM

2.Phase Correct PWM

3.Frequency and Phase Correct PWM

 

 

1.Fast PWM :

 

به این مد میگن،مد سریع !

چرا ؟!

 

حالا میبینید چرا ...

 

به شکل زیر نگاه کنید :

 

 

برید تو کف شکل ! laugh

 

یه دونه موج دندون اره ای داریم،و دو سطح مقایسه ای !

سطح A و سطح B

لازم به تذکره که این سطوح کاملا دلخواه و تصادفی انتخاب شده اند،در ضمن برای اینکه بهتر متوجه مطلب بشید از دو سطح A و B استفاده شده وگرنه یه سطحش کافیه ! wink

موج های مربعی هم که معلومه چجوری تشکیل داده شدند !

این همه توضیح دادم بالا !!!

 

در این مد،به محض رسیدن به سطح مقایسه ای ، سریعا سطح سیگنال خروجی عوض میشه(اگه خروجی یکه میشه صفر و اگه صفره میشه یک !)

 

حالا به شکل موج های خروجی نگاه کنید.

اگه دقت کنید نقاط پایانی شکل های A و B در یک دوره،دقیقا در یک مکان هستند.(هم فازند !)

اصلا مهم نیست که از کجا شروع شده اند اما در یه نقطه تموم شده اند ! (جل الخالق !!! laugh) == > این نکته رو داشته باشین تا بهتون بگم !

 

2.Phase Correct PWM :

 

به اینم میگن حالت تصحیح فاز !

 

چرا  ؟!

 

به شکل زیر نگاه کنید :

 

 

اینجا دیگه خبری از موج دندون اره ای نیست !

اینجا موج مثلثی داریم.
 

همه چیز مثله قبله !

اما اینجا نقاط پایانیمون مثل مد قبلی مکان یکسانی نداره !

مزیت این مد نسبت به مد قبلی،احاطه ای هست که روی فاز موج خروجی داریم.

 

نمیدونم تا الان رسیدین به اون چیزی که من دنبالش بودم یا نه !

PWM رو دیدینش ؟؟؟؟

تونستین تشخیصش بدین ؟

 

اگه نه،یعنی از موضوع پَرتِ پَرتییییید !!!! indecisionsurpriselaughcheeky

 

با توجه به این نکته که دوره با فرکانس نسبت معکوس داره،اگر دقت کنید متوجه میشید که فرکانس مد Fast ، دو برابر فرکانس مد Phase Correct است.(هر چه دوره کمتر بشه،فرکانس بیشتر میشه و بالعکس)

 

حالا با یه معضل دیگه مواجه شدیم،اونم فرکانسه !!!

 

3.Phase and Frequency Correct PWM :

 

این مد،دقیقا مشابه مد Phase Correct PWM بوده و تنها تفاوتش اینه که دارای نقاط TOP متغیره !

یعنی چه ؟!

 

یعنی اینکه اگه به شکل مد Phease Correct نگاه کنید،موج مثلثی ما از یک نقطه BOTTOM شروع میکنه و به یه نقطه TOP میرسه و همین روند مرتبا تکرار میشه ...

اما حالا فرض کنید که بتونیم هر سیکل نقطه TOP متفاوتی نسبت به سیکل های قبلی یا بعدیش داشته باشیم !

 

شکل زیرو ببینید تا دستتون بیاد چی به چیه :

البته من فقط برای دو سیکل این روند رو ادامه دادم.

 

 

شکل کاملا گویاست.

مثل قبل برای دو سطح مقایسه ای دلخواه A و B دو شکل موج خروجی مربعی شکل داریم.

موج مربعی B نکته جالبی داره که اگه یه کم دقت کنید متوجهش میشید.

 

همه چی مشخصه (همه چی آرومـــــه !!! cheeky)

 

تا اینجا صحبتی راجع به میکروکنترلر نکردیم و فقط گفتیم که چجوری میشه یه چنین موج مربعی را در خروجی داشت !

 

حالا اگه موج PWM مونو به یه LED بدیم،میتونیم نورشو کنترل کنیم.

مثلا اگه یه LED با 3 ولت کار کنه،با دادن ولتاژ 1 ولت بهش نور کمتری داره و نور 2 ولت نور بیشتری نسبت به 1 ولت داره و ...

و استفاده های دیگه ای که میشه از این تکنیک کرد ...

 

خب ...

 

هدفم از این بحث این بود که یاد بگیرین اصلا PWM چی هست و به چه دردی میخوره !

با توجه به اینکه PWM یکی از مدهای کاری تایمر/کانتر هست،و ما هم قبلنا خیلی راجع به تایمر/کانترها بحث کردیم،از توضیحات مربوط به تایمر/کانتر میکروکنترلر AVR صرفنظر کردم،چون فقط کافیه که تایمر/کانتر مونو مثل قبل برنامه ریزی کنیم و مُدشو  مد PWM رو انتخاب کنیم !

 

پس در پست بعدی که کارگاه عملی مبحث PWM خواهد بود،هم یه سری به تایمر/کانترها میزنیم و هم یه برنامه براش مینویسیم که دوباره کاری هم نشه !

 

نظر فراموش نشه دوست عزیزی که داره مطالبو میخونی و احیانا ازش استفاده ای میبری !

 

موفق باشید.

فعلا ...

سلام مهندس ،ایشالله موفق باشی .
پاسخ:
سلامت باشی
مثل همیشه عالییییییییییییییییییییییییییییییی
پاسخ:
ممنون
آقا احسان،ی دونه باشی
پاسخ:
واسه نمونه باشی !
خخخ...

سلام گلم پستات عالیه ممنون از این همه زحمت

پاسخ:
مرسی
۱۶ بهمن ۹۳ ، ۱۰:۳۴ مهدی رضائی
عالیه عالی
واقعا دستت درد نکنه خدا خیرت بده
پاسخ:
سپاس
درود خدمت اقا احسان
مثل همیشه عالی و روان و خوب و...
سپاس
پاسخ:
ممنون

داداش مرسی داری

دمت گرم خوب اموزش میدی.

فقط یه خواهش اگه ممکنه واست چنتا پست هم واسه اموزش زبان c بزار. نه اینکه بلد نباشیم !!!! بلدیم ولی مثل بچه ابتدای ها اگه میشه زبان c یه کم حرفه ای اموزش بزاری تشکر میشود.


پاسخ:
فعلا وقتش نیست !
مراجع زیادن برای یادگیری !!!
مث همیشه عالی و بینظیر
پاسخ:
ممنون
سلام.اقا احسان مثل همیشه مطالب و آموزشت حرفه ای بود .عاقبت به خیر باشی...
پاسخ:
مخلصم
سلام مطالب و آموزشایی که میزاری واقعا عالی  

خیلی خیلی خسته نباشی 
پاسخ:
تشکر

با سلام و احترام

دوست عزیز شیوه اموزش شما در رابطه با مد های PWM من را مبهوت کرد . دست شما درد نکنه . تازه مطلب برای من جا افتاد .

 

پاسخ:
ممنون از لطفتون

karet vaghean bozorgo arzesh mande


besiyar sepas gozaram

پاسخ:
سپاس
واقعا دستتون درد نکند 

سوال : در طراحی این نمودار ها از برنامه متلب کمک گرفته اید با برنامه دیگری استفاده کردید برام جالب بود  
پاسخ:
خیر،از متلب استفاده نشده !
اقا از مّردِشی
پاسخ:
وات ؟
توضیح بسیار روان.ممنون
پاسخ:
سپاس
سلام آقای نوری.
واقعا کارت درسته.
خسته نباشید.
برنامه نویسی هم یادتون نره لطفا.
خیلی باحالی

پاسخ:
تشکر
سلام
خدا قوت
بسیار عالی
خسته نباشید
پاسخ:
ممنون
سلام آقا احسان ممنون خیلی عالی بود . 
پاسخ:
ممنون
سلام
بسیار عالیییی
ممنون
پاسخ:
تشکر
آقا عالی توضیح دادی خدا خیرت بده 
پاسخ:
ممنون
بسیار عالی بود ..
حاجی واقعا دمت گرم انصافا تاحالا از اینترنت انقدر استفاده مفید نکرده بودم
مرسی از توضیحات خوبتون...
۰۶ مرداد ۹۴ ، ۰۹:۰۷ زهرا ولیزاده

سلام داداش دستت درد نکنه

کارت نظر دادن نمیخواد که عالیه عالی

سلام خدمت شما استاد عزیز خیلی خیلی ممنونم بابت آموزش های خوبتون...
من 17 سالمه و دارم یه ماشین کنترولی میسازم و برای کنترل فرمونش توسط سروو موتور باید با میکرو کار میکردم میخوام بگم که من قبل از این تقریبا هیچی از الکترونیک نمیدونستم و عزا گرفته بودم که چجوری میخوام این کارو بکنم هر کتاب یا آموزش دیگه هم که درباره میکرو پیدا کردم یا بدرد نخور بود یا خیلی طولانی....ولی آموزش های شما خداییش هم خیلی روون و ساده بود حتی برای من که چیزی از الکترونیک نمیدونستم و هم خیلی خلاصه و مفید بود من کل آموزشاتونو تو  2-3 روز خوندم و فهمیدم و میخواستم بگم که مشکلم حل شد و من خیلی خیلی ممنونم ایشالا که خدا هر چی میخواین بهتون بده...
یا علی
واقعاً عالی بود ، نه تنعا این قسمت بلکه تمامی مطالبی که میذارید ، که خیلی روون و خودمونی می نویسید و توضیح عالی و کاملی می دید که حتی یک بچه ی دبستانی هم قشنگ میتونه درکش کنه ، شما فوق العاده هستید.
سلام دوست عزیز
با تشکر از مطالب مفیدی که گذاشتی امیداورم همیشه در زندگیت موفق باشی

با سلام به شما دوست عزیز

واقعا کارتون درسته

ممنونم

بنده به نوبه خودم استفاده کردم

امیدوارم که همیشه موفق و سربلند باشید.


من بیشتر مطالب مربوط به میکروکنترلرها رو خوندم، عالی بود.
دستتون درد نکنه.
سلام آقا عالیه بلاگت
چطور میشه از وبلاگت حمایت مالی کرد...؟؟

خیلی بدردم خورد,ممنون
salam mohandes yani khoda kheiret bede ha va vaghan damet garm
ممنون
خیلی خیلی ممنون .خیلی کمکم کرد.
خیلی خوب توضیح میدید.
تشکر
خیلی خوب بود :)
سلام خیییییییییلییییی عالی بود خدا خیرتون بده دست شما درد نکنه
عالی و به زبان ساده 

TNX
خیلی ممنون.
باز هم مثل روال گذشته عالی و روان و GOOD و ... , ... , , ,
خدا قوت.خدا خیرتون بده.خیلی خوب توضیح دادید

سلام!
خیلی خوب بود!
سلام.ایشالا هرچی از خداوند میخواهی به شما بدهد که زکات علمت را میدهی.متشکر از اینکه وقتتون رو برای اموزش میگذارید.فقط یه خواهش.اگر میشود فایل اموزشی را در قالب پی دی اف هم در اختیار کاربر بگذارید.ممنون

بیو ایم نظر/...

خوب شد

؟

خیلی مردی همین

دنبال بستن مدار اپتوکانترم گیر کردم

 

خیلی خوب بود....یعنی عالی بود
خدا قوت
لطفا درباره تفاوت تصحیح فاز با تصحیح فرکانس دقیق تر توضیح بدین
توی تصحیح فرکانس مشکل ایجاد هارمونیک درلحظه تغییر مقایسه گر ها حل شده است
عالی مرسی واقعا

سلام، متشکرم!
حیف که ظاهرا دیگه ادامه نمیدید ...
tashakor
سلام
یه سوال داشتم می خواستم ببینم شما وقتی فرکانس 50 هرتز رو جایی وارد نمی کنی و فقط دیوتی رو روی OC0 قرار میدی چطوری فرکانس 50 هرتز با دیوتی 30 درصد میگیری؟؟؟
خواهشا جواب بدین خیلی مهمه!
عالی ولی بهتر هم میشه گفت
ممممممممنوووووون از اموزش عالیتون
مهندس دست درد نکنه
بسیار خوب
عالی زیبا جادار مطمئن.دمت آتشفشانی
 دمت گرم واقعا
آقا دمت گرم /خسته نباشی

تشکر و خدا قوت
عالی بود خیلی ممنونم...
آقا عاااالی بود .
کاش همه مثل شما آموزش بدن


خدا قوت، دمت گرم داداش.
بیان مطلبت خیلی عالیه...like...
tnx :-)
واقعا عالی و بی نظیر بود .
تشکر مهندس
سپاس از توضیح خوبتون .
پاینده باشید
سلام
خیلی عالی بود،فقط در شکل آخر یه مشکی وجود داره.اونم اینه که با تغییر مقدار TOP شیب صعود و نزول تغییر نمیکنه در نتیجه فرکانس تغییر پیدا میکنه.اما در شکلی که شما گذاشتین فرکانس ثابته.
سلام.
آموزشتون عالیه. اما تو مبحث pwm همواره آموزش ها به نحویه که این تصور اشتباه برای خوانندگان بوجود میاد که مثلا یه ولتاژ 2.5 ولت dc با یه ولتاژ 5 ولت pwm پنجاه درصد یکی هستند.
به نظر می رسه بهتره حتما گوشزد بشه که مثلا 5 ولت pwm پنجاه درصد تنها در صورتی که به موتور  dc وصل شود مانند 2.5 ولت عمل خواهد کرد.
به نظر میرسد بهتر باشد بحث pwm را با  مبحث شارژ و دشارژ سلف آغاز شود. به نظر من شارژ و دشارژ سلف از مباحث فوق العاده مهم در بخش صنعت است. که همواره مظلوم واقع شده و دردسرساز می شود.
ممنون بسیار روان و شیوا بود
واقعا دمت گرم . خیلی عالی بود
دیگه منبع درسیمون شده این سایت . واقعا ممنون . امید که ادامه داشته باشه
با سلام و خسته نباشید
مطالبتون مثل همیشه عالی, روان و کاربردی هست 
و تمام اطلاعاتی که واسه کار با میکروکنتر احتیاج داشتم در اختیارم قرار داد
ان شالله هر چی میخوای بهش برسی
من که واقعا لذت بردم از مطالب.
با آرزوی بهترین ها  
دست شما درد نکنه واقعا کار خیر کردن که شاخ و دم نداره واااااقعا ممنون
اموزش هاتون خیلی خوبه 
ادم دلشم نخواد هم تا اخرشو می خونه
من در شرایط بدی قرار گرفتم برای رباتیک یکی داره بهم برنامه نویسی بسکام یاد می ده 
مدرس هنرستان هستم و تو کتاب بچه ها یه بخشش کامل برنامه نویسیه و با کد وژن و از کد ویزارد می ره جلو 
صحبتای شیرین شمام در زمینه کد ویژن هست 
اصلا نمی دونم با خودم چند چندم 
لطفا یه راهنمایی کنید جااااااااااامع


اینم کتاب هنرستانه شاید دیدنش خالی از لطف نباشه
http://www.chap.sch.ir/books/6646
بسیار عالی بود. واقعا لذت بردم. خیلی خیلی ممنون.

مرسی بزرگوار - من هم یه مدت هست که دارم از سایتت استفاده میکنم و گفتم یه تشکر کرده باشم.

توضیحات عالی بود

عالی

ممنون خیلی به دردم خورد

خیلی ممنون، واقععا عالی توضیح دادین.

عالی بود

تشکر از شما. مهندس الان برای کار کردن در حوزه میکرو، چه پیشنهادی دارید؟ چه میکرویی کاربردی تره؟

 

سلام دوستان. ضمن تشکر از مطلب عالی و کامل جناب مهندس نوری، میخواستم از شما علاقمندان به حوزه الکترونیک و میکروکنترلر دعوت کنم به سایت من هم سر بزنید و از مقاله ها و پروژه هایی که با بورد های محبوبی همچون Raspberry Pi , ESP32 و ... که برای شما دوستان آماده کردم استفاده کنید.  از همه شما دوستان سپاسگذارم 😊

آدرس سایت: https://sasnam.ir/

عالی توضیح دادی . دستت درد نکنه .منبع این نوشته چه کتابی هست ؟

دمت گرم مهندس خیلی مفید بود

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی