1. خانه
  2. آموزش
  3. جلسه بیست و سوم _ نحوه راه اندازی واحد PWM (بخش دوم)

جلسه بیست و سوم _ نحوه راه اندازی واحد PWM (بخش دوم)

نحوه راه اندازی PWM و برنامه آن در محیط STM32CubeIDE

در ادامه آموزش STM32 با استفاده از توابع HAL در این جلسه قصد داریم تا یک LED به پایه PWM فعال شده متصل نماییم و شدت نور آن را کنترل نماییم. در ابتدا به سراغ معرفی توابع و دستورات مربوط به PWM می رویم و پس از آن برنامه مربوط به کنترل نور LED را توضیح می دهیم.
در ابتدا به سراغ فایل main.c می رویم :

                                 htim1_var

htim1 استراکچر مربوط به تنظیمات تایمرها می باشد.

                                                                        TIM1_Init

معرفی تابع مربوط به تنظیم شرایط تایمر می باشد.

                                                                TIM1_Init_Fun

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

HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)

از این تابع برای فعال سازی واحد PWM استفاده می شود و دارای ۲ آرگومان ورودی می باشد که آرگومان اول اشاره گر به استراکچر تابع مورد نظر می باشد و آرگومان دوم با توجه به اینکه کدام کانال از PWM را استفاده می کنیم نام کانال مورد نظر را به تابع ارسال می کنیم.

     HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__)__

از این ماکرو برای تنظیم Duty Cycle استفاده می شود و بجای عبارت __HANDLE__ اشاره گر به استراکچر تایمر مورد نظر را قرار می دهیم و بجای عبارت __CHANNEL__ کانال خروجی PWM مورد نظر را قرار می دهیم و بجای __COMPARE__ عدد مورد نظر را قرار می دهیم که تغییر این عدد در Duty Cycle اثر می گذارد که نحوه محاسبه آن را می توانید در زیر مشاهده نمایید:

Formol

حال به سراغ برنامه کنترل نور LED می رویم :

Program

در ابتدا با استفاده از دستور HAL_TIM_PWM_Start ، PWM کانال ۱ از تایمر ۱ را فعال می کنیم و وارد یک حلقه بی نهایت می شویم که درون آن یک حلقه وجود دارد که با توجه به شرایط حلقه مقدار Duty_cycle از ۰ تا ۲۵۵ تغییر می کند تغییرات این رجیستر بصورت دیتا هر ۱۰ میلی ثانیه در CHANNEL قرار می گیرد و با توجه به این موضوع Duty Cycle از ۰ درصد تا ۱۰۰ درصد قابل تغیر است که این تغییرات موجب می شود تا LED از حالت خاموش تا روشنایی کامل تغییر نور دهد. این روند مدام تکرار می شود از نور LED از خاموش شروع می شود و تا بیشترین نوردهی می رسد و مجددا خاموش می شود.

در جلسه بعد به معرفی واحد Uart (سریال) می پردازیم.

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

محمد هادی دشتی

لینک های مرتبط با آموزش:
جلسه اول_معرفی هسته آرم و میکروکنترلرهای ۳۲ بیتی شرکت ST

جلسه دوم_معرفی نرم افزارهای مورد نیازجهت برنامه نویسی و پروگرام

جلسه سوم _ آموزش نحوه دانلود آخرین نسخه از نرم افزار STM32CubeIDE

جلسه چهارم _نصب نرم افزار STM32CubeIDE و نصب کتابخانه

جلسه پنجم _ نحوه انجام تنظیمات در نرم افزار STM32CubeMX برای تولید کد برنامه چشمک زن

جلسه ششم _ برنامه نویسی یک چشمک زن ساده با استفاده از نرم افزار STM32CubeIDE

جلسه هفتم _ نحوه انجام تنظیمات پایه به صورت ورودی در نرم افزار STM32CubeMX و برنامه نویسی یک کلید

جلسه هشتم _ معرفی نرم افزار STM32 Flash Loader Demonstrator (پروگرامر سریال) 

جلسه نهم _ نحوه راه اندازی ال سی دی کاراکتری (قسمت اول)

جلسه دهم _ نحوه راه اندازی ال سی دی کاراکتری _ افزودن کتابخانه (قسمت دوم)

جلسه یازدهم _ نحوه راه اندازی ال سی دی کاراکتری _ معرفی توابع (قسمت سوم)

جلسه دوازدهم _ دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد ADC(بخش اول)

جلسه سیزدهم_دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد ADC(بخش دوم)

جلسه چهاردهم_دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد تایمر(بخش اول)

جلسه پانزدهم_دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد تایمر(بخش دوم)

جلسه شانزدهم _ نحوه راه اندازی وقفه با تحریک خارجی(جلسه اول)

جلسه هفدهم _ راه اندازی وقفه با تحریک خارجی (بخش دوم)

جلسه هجدهم_دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی سون سگمنت(بخش اول)

جلسه نوزدهم _ نحوه راه اندازی سون سگمنت و برنامه آن در محیط STM32CubeIDE (بخش دوم)

جلسه بیستم _ نحوه راه اندازی واحد کانتر ونحوه انجام تنظیمات در محیط STM32CubeMX(بخش اول)

جلسه بیست و یکم _ نحوه راه اندازی کانتر و برنامه آن در محیط STM32CubeIDE (بخش دوم)

جلسه بیست و دوم _ نحوه راه اندازی واحد PWM (بخش اول) 

جلسه بیست و چهارم _ معرفی واحد UART و سطوح منطقی ولتاژ و انواع مبدل ها(بخش اول)

جلسه بیست پنجم _ نحوه راه اندازی واحد UART ونحوه انجام تنظیمات در محیط STM32CubeMX(بخش دوم)

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
برای ادامه، شما باید با قوانین موافقت کنید