02166766927 -02166703652
info@atrinelec.com تهران پاساژ امجد طبقه1 واحد 16
دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد PWM(بخش دوم)

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

2018-12-13 10:53:29

جلسه بیست و یکم _ نحوه راه اندازی PWM و برنامه آن در محیط Keil

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

در ابتدا به سراغ فایل main.c می رویم :

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

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

 

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

حال به سراغ توابع مورد استفاده در این برنامه می رویم:

(HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel

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

 

(__HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__

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

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

در ابتدا با استفاده از دستور HAL_TIM_PWM_Start  ، قسمت PWM کانال 1 از تایمر 1را فعال می کنیم و وارد یک حلقه بی نهایت می شویم که درون آن یک حلقه for  وجود دارد که با توجه به شرایط حلقه مقدار Duty_cycle از 0 تا 255 تغییر می کند تغییرات این رجیستر بصورت دیتا هر 10 میلی ثانیه در CHANNEL قرار می گیرد و با توجه به این موضوع Duty Cycle از 0 درصد تا 100 درصد قابل تغیر است، این تغییرات موجب می شود تا LED از حالت خاموش تا روشنایی تغییر نور دهد. این روند مدام تکرار می شود از نور LED از خاموش شروع می شود و تا بیشترین نوردهی می رسد و مجددا خاموش می شود.

در انتها می توانید شماتیک مربوط به این جلسه و برنامه (keil , STM32CubeMX)  آنرا دانلود نمایید.

 PWM_Code

 PWM_Schematic

                                                                                                                                                                    دلتون شاد و لبتون پرخنده

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

دیگر آموزش ها مرتبط با STM32:

برای مشاهده آموزش جلسه اول(معرفی هسته آرم و میکروکنترلرهای 32 بیتی شرکت ST  ) کلیک کنید.

برای مشاهده آموزش جلسه دوم( معرفی نرم افزارهای مورد نیازجهت برنامه نویسی و پروگرام  ) کلیک کنید.

برای مشاهده آموزش جلسه سوم( نحوه دانلود آخرین نسخه از نرم افزار STM32CubeMX   ) کلیک کنید.

برای مشاهده آموزش جلسه چهارم(نحوه انجام تنظیمات در نرم افزار STM32CubeMX  ) کلیک کنید.

برای مشاهده آموزش جلسه پنجم(نحوه برنامه نویسی پروژه چشمک زن با نرم افزار Keil ) کلیک کنید.

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

برای مشاهده آموزش جلسه هفتم(معرفی نرم افزار STM32 Flash Loader Demonstrator و نحوه دانلود برنامه و پروگرام کردن میکرو) کلیک کنید.

برای مشاهده آموزش جلسه هشتم( نحوه راه اندازی ال سی دی کاراکتری-قسمت اول) کلیک کنید.

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

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

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

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

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

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

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

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

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

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

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

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

به سبد خرید اضافه شد.
سبد خرید
Item removed. بازگرداندن