تايمر در مد pwm

سلام دوستان 



pwm يا مدولاسيون پهناي باند يكي از امكانات ميكرو هست كه از آن براي توليد پالس مربعي و ديگر پالس ها استفاده ميكنند در اين مدولاسيون دامنه پالس ثابت هست يعني دامنه 5 ولت  و فقط نسبت زمان صفر به يك آن تغيير ميكند .يا همون پهناي پالس تغيير ميكند.

براي درست كردن پالس pwm  ميشود  از تايمر هاي يك و دو استفاده كرد . 

هر كدوم از تايمر ها پيكره بندي خاص مربوط به خودشون را دارند كه يكي يكي اونارو ميگم .

فرض كنيم ميخواهيم از تايمر يك آيسي  استفاده كنيم  پايه هاي خروجي موج pwm مربوط به اين تايمر پايه هاي oc1a و oc1b هست .اين تايمر دو خروجي دارد كه هر كدوم را به طور جداگانه ميشود تنظيم كرد . يعني پالس را فقط ميتوانيم از اين پايه ها دريافت كنيم .

نحوه پيكره بندي تايمر يك در مد pwm به صورت زير هست.

Config Timer1 = Pwm , Prescale = 1 , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down 

pwm1a=100

pwm1b=200



config timer1=pwm يعني ميكرو جان تايمر يك را براي ايجاد موج pwm ميخوام 

prescale=1 كه اين گزينه ميتواند 1 يا 8 يا 64 يا 256 يا 1024 باشد كه براي تنظيم فركانس موج pwm هست.

pwm=8  ميتواند 9 يا 10 بيتي  باشد هر چه اين بيت ها بيشتر باشد دقت موج بيشتر هست اگر 8 بيتي باشد شما 256 واحد آن را كم و زياد كنيد  اگر 9 باشد 512و 10 بيتي 1024 .

compare a pwm=clear up ميتواند clear down هم باشد اگر clear up باشد سطح پالس  پايه oc1a از يك شروع ميشود و اگر clear down باشد از سطح صفر شروع مشود .

 compare b pwm=clear up ميتواند clear down هم باشد اگر clear up باشد سطح پالس  پايه oc1b از يك شروع ميشود و اگر clear down باشد از سطح صفر شروع مشود .

حالا در خط بعد با قرار دادن عدد در جلوي pwm1a و pwm1b پهناي پالس خروجي روي پايه هاي oc1a و oc1b را مشخص ميكنيم . به اين ترتيب كه عدد جلوي pwm1a مربوط به پايه oc1a و عدد جلوي pwm1b مربوط به oc1b هست.

براي اينكه بهتر متوجه بشين يك مثال عملي ميزنم كه بهتر متوجه بشين اگر بخواين هم ميتوانيد با وصل كردن اسيلوسكوپ در پروتيوس به پايه هاي oc1a و oc1b شكل موج pwm را مشاهده كنيد.

مثال عملي: ميخواهيم با بازي كردن با pwm نور led را كم و زياد كنيم. در اين مثال فقط از پايه oc1a استفاده شده.(توي پروتيوس كم و زياد شدن نور led قابل ملاحضه نيست بايد به صورت عملي مدار را ببنديد)



نقشه مدار (فقط آند led به پايه 15 وصل ميكنيد و كاتد را به زمين تغذيه ميكرو هم كه ايشالا وصل ميكنيد)

یک مثال با تایمر یک نوشته شده است که میتوانید در عکس زیر ببینید.




خوب حالا ميريم سربخت تايمر دو 

فقط يك پايه خروجي پالس pwm به اين تايمر مربوطه انم پايه oc2 ميكرو هست كه پالس را فقط ميتوانيم از اين پايه دريافت كنيم.

پيكره بندي اين تايمر در مد pwm : 


Config Timer2 = Pwm ,Pwm =ON , Compare Pwm=Clear Up,Prescale=1

ocr2=200

config timer2=pwm يعني جناب ميكرو تايمر 2 را براي توليد پالس ميخوام.

pwm =on ميتواند off باشد كه حتما بايد on باشد من نميدونم چه لزومي داره اين گزينه!!!

compare pwm=clear up ميتواند clera down باشد كه سطح پالس روي پايه oc2 از يك شروع شود يا صفر با انتخاب clear up از سطح يك شروع ميشود و با انتخاب clear down از سطح صفر 

prescale=1 ميتواند 8 يا 64 يا 128 يا 256 يا 1024 باشد براي تعيين فركانس پالس نسبت به كريستال و بيت تايمر.

ocr2=200 ميتواند هر عدد ديگه اي باشد با تغيير اين عدد پهناي پالس را كم و زياد ميكنيم.

يه مثال:


دانلود مثال شبیه سازی شده در پروتیوس

 

 



سوالي بود در قسمت نظرات بگين.

>>>>>>>>>>موفق باشين <<<<<<<<<<<<




 


مطالب مشابه :


دانلود پروژه اسیلوسکوپ

با سلام خدمت دوستان این پروژه یک اسیلوسکوپ هست که با atmega 32 و lcd گرافیکی 128*64 درست شده برنامه




پروژه های میکروکنترلر AVR

پروژه های avr ۱۳۹۳ (avr) قفل درب کنترل از راه دور با برد و امنیت بالا




AVR USB Programmer

پروژه هاي ميكروكنترولري - AVR USB Programmer - AVR , 8051 , CPLD , C , BASIC , ASM ,C#,GSM, PCB , تابلو روان




پروژه ساعت با AVR Mega32

پروژه ساعت با AVR Mega32 با قابلیت تنظیم تایمر در ساعت و روز مشخص. شماتیک مدار. دریافت تصویر مدار




تايمر در مد pwm

آموزش برنامه نویسی بیسیک میکروکنترلر AVR - تايمر در مد pwm - سایتی برای دانلود پروژه های رایگان




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

Techweb - دانلود پروژه های کتاب 11 پروژه با avr - - Techweb




برچسب :