سلام دوستان!
این جلسه خواهید دید که چطور توسط میکروکنترلر STM32 میشه موج PWM تولید کرد.
به همین منظور یه توضیح کوچیک از PWM برای شما میدیم:
در میکروکنترلر ها PWM برای مصارف مختلفی مانند کنترل نور LED ها ( Fade کردن نور LED ) ، کنترل سرعت موتور های DC , انتقال پیام ، مبدل های ولتاژ و …. استفاده می شود.
در اصل PWM موجی مربعی است که در برخی زمان ها ۰ و برخی زمان ها ۱ است و این ۰ و ۱ شدن ها با فرکانس ثابتی تکرار می شود. همانگونه که در شکل بالا مشاهده می کنید PWM مانند سایر امواج ، دارای دامنه یا Amplitude ، دور تناوب یا Period و فرکانس است. عبارت دیگری که در PWM مورد استفاده قرار می گیرد Duty Cycle است. دیوتی سایکل مدت زمان ۱ بودن به مدت زمان کل پریود در هر سیکل موج است که معمولا بر حسب درصد ( % ) نمایش داده می شود. به فرض مثال اگر Duty Cycle یک موج PWM برابر با ۴۰% باشد بدان معنی است که در هر سیکل ۴۰% ولتاژ برابر VCC و در ۶۰% اوقات ولتاژ برابر ۰ است. همانگونه که می دانید در چنین حالتی ولتاژ موثر یا Vrms برابر با ۴۰% VCC خواهد بود. به فرض مثال شما اگر با یک میکرو با تغذیه ۵V ، موج PWM با دیوتی سایکل ۵۰% ایجاد نمایید ولتاژ RMS شما برابر ۵۰% VCC یا به عبارتی ۲٫۵ ولت خواهد بود.
دانلود کدهای این پروژه !
منابع : diginic – STM32
سلام.مرسی اموزش خیلی مفید بود.چطور میشه inverted pwm ساخت؟ یعنی وقتی رجیستر با ۲۰۰ پر بشه نور خاموش بشه و وقتی با صفر پر شه نور led بیشترین بشه
سلام ممنون نظر لطف شماست 😊 راه های مختلفی هست یکیش اینه که پیشفرض حلقه رو از ۲۰۰ شروع کنید . for(pwm=200;pwm>0;pwm–) { pwm=200-pwm; . . }
سلام خیلی متشکرم که وقت گذاشتید و این اموزش ها رو رایگان در اختیار مردم گذاشتید. همیشه موفق باشید
سلام مهندس جان
با تشکر از آموزش خوبت
موفق باشی
با سلام اگر بخواهیم پالس pwm با میکرو بشماریم و با یک رجیستر مقایسه کنیم چکار باید انجام بدیم. با تشکر از راهنمائی خوبتون
سلام باید خروجی PWM را به پایه ی مربوط به کانتر میکرو وصل کنید
نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *
کليه حقوق اين سايت متعلق به سام نیک میباشد