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

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

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

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

 

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

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

 

 ایجاد پروژه

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

 

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

 

نوشتن کد

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

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

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

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

0 نفر

پــــســنــدیـده انـد

توجه

سیاوش
سیاوش

کارشناس ارشد الکترونیک دیجیتال، علاقه‌مند به یادگیری

دیدگاه ها

2 دیدگاه

  • محمد
    ۲۳ فروردین ۱۴۰۱

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

    • Sisoog Os
      Sisoog Os
      ۲۳ فروردین ۱۴۰۱

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

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه دوم : چالش برنامه نویسی به زبان C

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

Zeus ‌ Zeus ‌
  • 3 سال پیش
راه اندازی LCD گرافیکی Nokia 1661

راه اندازی LCD گرافیکی Nokia 1661

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش
ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش
همه چیز درباره ریموت کنترل‌های هاپینگ

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش
مسابقه سوم: استخراج داده از رشته ها در زبان C

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش
مسابقه ششم: بزن میکروکنترلر را بسوزون!

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 12 ماه پیش
آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش
ساخت ماینر با FPGA و ARM

ساخت ماینر با FPGA و ARM

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

Zeus ‌ Zeus ‌
  • 3 سال پیش
کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش
مسابقه چهارم: کدام حلقه سریع‌تر است؟

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 2 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک