مقاله, آموزش, توصیه شده, STM32, STM, ARM, STM32_LL

آموزش STM32 با توابع LL قسمت بیست و یکم: راه‌اندازی PWM

در بخش‌های قبلی با تایمرها آشنا شدیم و برخی کاربردهای آن‌ها را دیدیم. یکی دیگر از کاربردهای تایمر، حالت PWM (Pluse width Modulation) یا همان مدولاسیون پهنای پالس است. در این بخش با نحوه استفاده از این حالت آشنا خواهیم شد.

 

همانطور که در شکل بالا مشخص است، به وسیله PWM میتوانیم از طریق کنترل Duty Cycle یا زمان on بودن و off بودن موج مربعی، ولتاژ متوسطی که اعمال می‌کنیم را کنترل کنیم. این عمل کاربردهای بسیار زیادی دارد که از جمله آن‌ها می‌توان به کنترل شدت روشنایی، کنترل سرعت موتور و .. اشاره کرد.

در ادامه این آموزش با چگونگی کنترل شدت روشنایی یک LED آشنا می‌شویم.

 

 ایجاد پروژه

مراحل ساخت پروژه را مانند قبل طی می‌کنیم، کلاک و دیباگ را تنظیم می‌کنیم. سپس تایمر1 را به صورت زیر در حالت PWM تنظیم می‌کنیم:

 

بعد از تنظیم تایمر، بقیه بخش‌ها را نیز مانند گذشته تنظیم می‌کنیم و وارد محیط Keil می‌شویم.

 

نوشتن کد

برای استفاده از PWM قبل از هر چیز ، باید شمارنده و خروجی تایمر1 را فعال کنیم، همچنین متغیرهای مورد نیاز را تعریف کنیم؛

درون متغیر Max مقدار رجیستر ARR به اضافه یک  را قرار داده‌ایم. اکنون به وسیله این مقدار، میتوانیم تعیین کنیم که به چه Duty Cycle ای نیاز داریم. به وسیله کد زیر، شدت نور LED به آرامی زیاد میشود تا به بیشترین مقدار خود برسد و این عمل تکرار می‌شود. همانطور که توضیح داده شد این عمل از طریق مدولاسیون پهنای پالس و کنترل میانگین ولتاژ اعمال شده به LED انجام می‌شود؛

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

لینک پروژه در گیت هاب

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

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

بازگشت به لیست

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

2 دیدگاه در “آموزش STM32 با توابع LL قسمت بیست و یکم: راه‌اندازی PWM

  1. محمد گفت:

    این آموزش خیلی کاربردی و مفید هست. مرسی.
    فقط مدتی هست که آموزش جدید نذاشتید، امیدوارم ادامه دار باشه این سری LL
    اگر پروتکل های ارتباطی دیگه مثل CAN و… هم بگید خیلی خوب میشه.
    واقعیت سیسوگ از همه جا بهتر مفاهیم رو توضیح میده، مشخصه که وقت زیادی صرف گردآوری مطالب و … میکنید.
    مرسی از تیم خوبتون.

    1. Sisoog Os Sisoog Os گفت:

      خواهش میکنم دوست عزیز
      شما لطف دارید
      ولی ما که داریم این آموزش را ادامه میدیم خیلی وفته و امیدواریم تمومش هم بکنیم :-))