اپلیکیشن زینگ | باربری آنلاین
زینگ - سامانه جامع حمل و نقل

تماس تلفنی

دانلود زینگ
خانه اپلیکیشن زینگ سامانه صادرات و واردات فروشگاه خدمات اطلاعاتی
خدمات جانبی
تماس با ما
زینگ - سامانه جامع حمل و نقل کشوری

تماس تلفنی

دانلود زینگ

جستجو
عضویت در سامانه صادرات، واردات، تجارت
گروه بازرگانی هومان پویان

تولید سیگنال PWM با استفاده از تایمرهای AVR:

کدویژن2

در میکروکنترلرهای AVR، سیگنال های PWM توسط تایمرها تولید می شوند. دو روش برای تولید PWM از تایمرها وجود دارد:

  • PWM سریع.
  • PWM تصحیح فاز.

در ادامه این موارد را شرح می دهیم.

تولید PWM سریع:
ما از ساده ترین تایمر، یعنی TIMER0 برای تولید PWM استفاده می کنیم. بنابراین یک شمارنده 8 بیتی داریم که از 0 تا 255 شمارش می کند و سپس روی 0 و غیره تنظیم می شود. این را می توان به صورت شکل زیر نشان داد.

تولید PWM در کدویژن

دوره به تنظیمات مقسم بستگی دارد. در حال حاضر برای تولید PWM در کدویزن از این توالی شمارش از OCR0 (مقایسه خروجی رجیستر صفر) استفاده می شود (صفر به دلیل اینکه برای TIMER0 است و تعداد بیشتری از آن ها برای TIMER1 و TIMER2 وجود دارد).

می توانیم هر مقداری بین 0 تا 255 را در OCR0 ذخیره کنیم. به عنوان مثال، 64 را در OCR0 ذخیره می کنیم که به صورت شکل زیر نشان داده می شود (خط قرمز).

تولید PWM در کدویژن

وقتی TIMER0 برای حالت PWM سریع پیکربندی می شود، در حالی که تایمر در حال شمارش است، هر زمان که مقدار شمارنده TIMER0 با مقدار موجود در رجیستر OCR0 مطابقت داشته باشد، پین خروجی Low یا 0 می شود و هنگام شمارش مجدد دوباره از 0 شروع می شود و پس از آن، پین دوباره SET خواهد شد (VCC).

این موضوع در شکل زیر نشان داده شده است. این پین OC0 نام دارد و می توانید آن را در نقشه پین ATmega32 پیدا کنید.

PWM در کدویژن

در شکل بالا می بینید که موجی از چرخه وظیفه 25٪ = 64/256 با تنظیم OCR0 روی 64 تولید می شود. می توانید OCR0 را روی هر مقداری تنظیم کرده و یک PWM چرخه وظیفه OCR0/256 را به دست آورید.

هنگامی که آن را روی 0 تنظیم کنید، 0٪ چرخه وظیفه را دریافت می کنید، در حالی که اگر آن را روی 255 قرار دهید، 100٪ خروجی چرخه وظیفه را خواهید داشت.

بنابراین با تغییر چرخه کاری می توانید خروجی ولتاژ آنالوگ را از پین OC0 دریافت کنید.

در حالت معکوس، مقدار پین OC0 معکوس مقدار فوق است. بنابراین هرگاه مقدار شمارنده TIMER0 کمتر از مقدار OCR0 باشد، پین OC0 روی LOW است، در غیر این صورت HIGH خواهد بود. می توانید حالت معکوس یا غیرمعکوس را در قسمت "Output" در CodeWizard AVR انتخاب کنید.

حالت های معکوس و غیرمعکوس دارای چرخه های کاری متفاوتی به صورت زیر است:

dinv + dnon-inv = 100%

و خواهیم داشت:

tout = ttimer = 256 × tclock

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

تولید PWM تصحیح فاز 

مقدار پین فقط زمانی تغییر می کند که مقدار OCR0 با شمارنده TIMER0 مطابقت داشته باشد.

در اینجا، داریم:

tout = ttimer = 2 × tclock × OCR

و

fout = fclock / (2 × OCR)

در ادامه، روش تنظیم تایمر و PWM در کدویژن را شرح می دهیم.

کشتیرانی
حمل زمینی
وانت
حمل هوایی
نظر شما
نام و نام خانوادگی:

شماره تماس (نمایش داده نمی شود):

کد امنیتی: captcha

متن پیام: (نظر شما پس از بررسی منتشر خواهد شد)


مطالب مرتبط:
مخفی کردن >>