نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
  • آموزش جامع AVR جلسه ۱۵ Timer Counter FAST PWM Mode2

    به نام خدا : سلام خدمت شما بزرگواران، قبلا یادمه یه مطلب درباره FAST PWM گزاشتم (آموزش جامع میکروکنترلر AVR جلسه۱۱)، که توی اون مطلب پروژه هایی از کنترل دور موتور DC با هر سه تایمر گزاشته بودم، حالا تو این مطلب از آموزش AVR، میخوام جلسه دوم مد FAST PWM رو بزارم و این بار بر خلاف جلسه قبل که همش پروژه بود، تو این جلسه علاوه بر گزاشتن پروژه های AVR ، میخوام توضیح هم تا جایی که میشه بدم، این مطلب آموزش تایمر رو دارم مینویسم تا حالا شده ۶ هزار تا واژه(حالا نمیدونم واژه با کلمه فرق داره یا نه sarcastic) این مطالبی که از تایمر میبینید پروژه های تایمر هستن و آموزشش جداس که دارم کم کم آمادش میکنم… heart
    آموزش جامع AVR جلسه ۱۵ Timer Counter FAST PWM Mode2

    آموزش جامع AVR جلسه ۱۵ Timer Counter FAST PWM Mode2


    خب با نام خدا شروع میکنیم به نوشتن مطلب :
    به نظرم اول پروژه ها رو بزارم و بعد شروع کنم به گفتن توضیحات و… این طور بهتره.
     
    شماتیک هر سه پروژه یکسان هستش، ۳ پروژه = تایمر ۰ و ۱ و ۲
     آموزش جامع میکروکنترلر AVR
     
     

    پروژه تغییر D.C با تایمر ۰ و مد FAST PWM

     
     

    پروژه تغییر D.C با تایمر ۱ و مد FAST PWM

     
     

    پروژه تغییر D.C با تایمر ۲ و مد FAST PWM

     

    دانلود پروژه FAST PWM با Avr | سه پروژه این مطلب

     
     

    محاسبه فرکانس و D.C در مد FAST PWM

    خب رسیدیم به بحث جالبی، تو دیتاشیت مگا ۱۶ برا محاسبه فرکانس تایمر تو مد FAST PWM مثل این که دو تا فرمول دارم، یکی برا تایمر ۱۶ بیتی(تایمر۱) و یه فرمول هم برا تایمر های ۸ بیتی(تایمر ۰ و ۲)، حالا این که چرا دو تا فرمول دارم و نه یه دونه و این که از کجا اومدن این فرمول ها، در ادامه میخوام دربارش صحبت کنیم.
    محاسبه فرکانس در مد FAST PWM
    تو تایمر ۰ و ۲، تو مد FAST PWM تایمر از BOTTOM (همون ۰) میشموره تا MAX (همون ۲۵۶) و بعد دوباره مقدار تایمر ۰ شده و از BOTTOM میشموره ….
    و تو این شمارش هر موقع مقدار تایمر (TCNTn) با مقدار ریجستر های مقایسه (OCRn) برابر بشه، پایه مقایسه ای(OCn) تغییر حلت داده(البته اگه روی toggle تنظیمش کرده باشین.) و تایمر به شمارش خودش ادامه میده و…
    ولی نکته اینجاس که تو تایمر ۱۶ بیتی یعنی تایمر ۱، تایمر از BOTTOM میشموره تا TOP، که برا هر سه تایمر میتونید این موضوع رو تو ۳ جدول زیر(+توضیحات داده شده من cool) ببینید.
     

    Waveform Generation Mode Bit Description
    جدول تعیین مد تایمر ۰
    همون طور که تو جدول تایمر ۰ و ۲ برا مد FAST PWM میبینید مقدار TOP برابر ۰XFF هستش؛ یعنی تو این مد تو تایمر ۰ و ۲ مقدار TOP با MAX برابره، لذا تو این مد برا این دو تایمر چه بگید شمارش از BOTTOM هستش تا MAX  و چه بگید BOTTOM تا TOP ، زیاد فرقی نداره.
    به نظرم بگیم شمارش از BOTTOM هستش تا TOP بهتر باشه، چون تو تایمر ۱ هم شمارش از BOTTOM هستش تا TOP، این طور دیگه قاطی نمیکنید و میدونید که تنها فرق این تایمر های ۸ بیتی با اون ۱۶ بیتی در اینه که تو تایمر های ۸ بیتی مقدار TOP همیشه برابر ۰XFF (همون MAX) هستش ولی تو تایمر ۱۶ بیتی(تایمر۱) میشه مقدار TOP رو تعیین کرد.
    اگه جدول مربوط به تایمر۱ رو در زیر ببینید، متوجه میشیدکه ۵ نوع حالت برا FAST PWM تو جدول هستش، و تفوت این ۵ حالت تو مقدار TOP شون هستش(همون طور که تو جدول انتخاب مد تایمر ۱ میبینید)، که در زیر هم براتون مینویسیم

    • حالت۱) TOP = ۰X00FF هستش (هشت بیت)
    • حالت۲) TOP = ۰X01FF هستش (نه بیت)
    • حالت۳) TOP = ۰X03FF هستش (ده بیت)
    • حالت۴) مقدار TOP برابر است با مقدار ریجستر ICR1
    • حالت۵) مقدار TOP برابر است با مقدار ریجستر OCR1A

    جدول تعیین مد تایمر 0
     
    جدول تعیین مد تایمر ۲
    جدول تعیین مد تایمر 2
     
    جدول تعیین مد تایمر ۱
    جدول تعیین مد تایمر 1






    2 سوال مهم و ۲ جواب !!!
    سوال ۱ : چرا تو تایمر ۱ برا مد FAST PWM ما ۵ تا حالت FAST PWM داریم که فقط مقدار TOP شون فرق داره؟ چرا تو تایمر ۱ ما میتونیم مقدار TOP رو تعیین کنیم؟  و  حالا بشه مقدار TOP رو تعیین کرد، چه فایده ای داره و چه فرقی داره؟
     
    جواب ۱ : علی یارت جون مرد، ترکوندی واقعا، رکورد طولانی ترین سوال المپیک رو زدی قهرمان، پلنگ مازندران laugh ، خوب سوال خوبی هستش، در زیر برات توضیح میدم :
    ۱) خوب ببین این که چرا تایمر ۱ ما ۵ تا حالت برا مد FAST PWM داریم و چرا ۶ تا و چرا ۴ تا و... نداریم رو نمیدونم.(اینو باس از سازنده AVR بپرسی sarcastic)
     
    ۲) حالا میپرسی فایده این که بشه مقدار TOP رو تعیین کرد چیه؟ این سوال خوبی هستش و در زیر توضیح میدم :
    و همون طور که قبلا گفتم ما از مد FAST PWM برای تولید یه موج (که بشه به آسونی مقدار D.C اش رو تغییر داد) استفاده میکنیم.
    ببین داش من یه کم فک کن، ما الان تو مد FAST PWM هستیم، مدی که تایمر از BOTTOM میشموره تا TOP و بعد مقدار تایمر صفر میشه و....
    حالا این اتفاق یعنی چی؟ >>> مثلا مقدار TOP رو بالا پایین کنیم و تغییرش بدیم>>>چی میشه مگه؟
    اگه با توجه به فرمول بخوام بگم : اون فرمولی که در بالا گزاشتم، فرمول مربوط به تایمر ۱، برید نگاش کنید، یه طرف فرکانس موج تولیدی توسط مد FAST PWM تایمر۱ هستش و اون طرف معادله تو مخرج، TOP رو مشاهده میکنید، لذا مقدار TOP بر فرکانس موج تولیدی توسط تایمر ۱(مد FAST PWM) تاثیر داره.
    و با بالا پایین کردن مقدار TOP مقدا فرکانس موج ما هم تغییر میکنه.(طبق فرمول بالا)
    حالا طبق محباسبات ذهنی : تایمر از BOTTOM میشموره تا TOP، حالا هر چی مقدار TOP بیشتر بشه، دوره تناوب(T) پالس تولیدی ما هم زیاد میشه، و با توجه به فرمول f=1/T میشه نتیجه گرفت که فرکانس کاهش پیدا میکنه و برعکس مقدار TOP کم بشه مقدار فرکانس زیاد میشه.
     
    سوال ۲ : خوب فرکانس تغییر کنه، به چه درد ما میخوره، ما تو این مد D.C موج برامون مهمه و نه مقدار فرکانسش؟؟؟
    جواب ۲ : جان داش میخواستم همین الان توضیحش بدم که سریع سوال پرسیدی dash  چقدر عجولی تو.... laugh
    با تغییر TOP یه اتفاق دیگه هم میوفته که در زیر توضیح میدم.
    همون طور که در بالا گفتم تایمر از bottom تا top میشموره و ت واین هین هر موقع مقدار TCNTn با OCRn  برابر بشه پایه مقایسه ای COn تغییر حالت میده(البته اگه رو toggle تنظیم شده باشه) و بعد تایمر به شمارش خودش ادامه میده.
    و اینم حتما میدونید که با تغییر D.C در واقع ولتاژ موج ما تغییر میکنه، حالا به نظرتون تاثیر مقدار TOP بر D.C چیه؟
    بله درست گفتید، تاثیرش اینه که هر چی مقدار TOP بیشتر بشه در واقع مقدار T(دوره تناوب) بیشتر شده و هر چی مقدار T بیشتر بشه مقدار f کمتر میشه(f = 1/T) و دقت ولتاژ تولیدی بیشتر میشه.(عکس زیر رو ببینید - فک کنم محاسبات زیر درست باشه، حالا اساتی اگه احیانا اشتباه گفتم لطف کنید و بگید....البته در عمل تست کردم و مشکلی نیست ولی...)
    تولید ولتاژ با PWM




     
     
    محاسبه دقت ولتاژ تولیدی با PWM
     





     
    دوستان میتونن دو مطلب زیر رو بخونن، حتما برید یه بار هم که شده نگاه کنید، خداییش مطالب خوبی هستن. heart
    PWM چیست؟!
    بررسی نحوه تولید امواج DTMF بوسیله خروجی PWM میکروکنترلر
     
    مطلب طولانی شد و طبق معمومل من باز غاط! زدم، اگه چیزی رو جا انداختم لطفا بگید.
    آها یادم اومد، این که اون فرمول بالا از کجا اومد رو نگفتم، در زیر الان توضیح میدم :
     









     

    فرمول محاسبه فرکانس در PWM

    تو بالا یه فرمولی(عکس) گزاشتم که در زیر هم میبینیدش، حالا میخوام نحوه محاسبه این فرمول رو بگم و این که این فرمول از کجا اومده و…
    محاسبه فرکانس در مد FAST PWM
    در زیر محاسبات رو انجام دادم(رو کاغذ) و براتون میزارم در زیر تا برید حالشو ببرید، میبینید چقدر به فکرتون هستم heart
    در شکل زیر منظور از
    Fm = فرکانس میکرو
    FT = فرکانس تایمر
    TT = دوره تناوب تایمر
    N = ضریب تقیسم فرکانسی
    TOP = تو تایمر ۰ و ۲ برابر MAX هستش و تو تایمر ۱ میشه تعینش کرد.
    فرمول محاسبه فرکانس در PWM
     
    بازم فک میکنم یه چیز رو جا انداختم laugh ، اگه فهمیدید بگید.  rtfm
    خب دیگه مطلب طولانی شد، منم حوصلم بیشتر از شما سر رفته. crazy
    اگه از این مطلب خوشتون اومد و مفید بود برا تعجیل در فرج آقا و سلامتی رهبر و علمای اسلام و مسئولین خدمت گزار به کشور و اسلام، ۳ تا صلوات بفرستید.
    زیاد مزاحمتون نمیشم.
    یا علی.

    پسورد فایل های سایت :
    www.dmf313.ir
    جنگ ما فتح قدس را در پی خواهد داشت (امام خمینی) >>>>>> اگر از صدام بگذریم، اگر مسأله قدس را فراموش کنیم، اگر از جنایت های امریکا بگذریم از آل سعود نخواهیم گذشت. ان‌شاالله اندوه دلمان را را در وقت مناسب با انتقام از امریکا و ال سعود برطرف خواهیم کرد و داغ و حسرت حلاوت این جنایت بزرگ را بر دلشان خواهیم گذاشت و با برپایی جشن پیروزی حق بر جنود کفر و نفاق و آزادی کعبه از دست نااهلان و نامحرمان به مسجد الحرام وارد خواهیم شد (امام خمینی)
    ارسال دیدگاه
    13

    1) تعداد حروف غیر فارسی از حروف فارسی بیشتر باشه دیدگاه به صورت خودکار حذف میشه.

    2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

    3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

    1. مهمان

      مهدی

      سلام اگر بخوایم یک سیگنال که دیوتی سایکلش تغییر میکنه رو اندازه گیری کنیم باید چکار کنیم

      1398/01/23
      12:50
    2. مهمان

      ساقی

      جزاکم الله خیرا

      1395/01/08
      02:41
    3. مهمان

      علی

      آقا مهدی سلام
      در مورد مدل ال سی دی گرافیکی که امر فرمودی KS0108 ممنوننت میشم راه اندازیش را داخل اردوینو هر وقت که فرصت داشتی یادم بدی
      با تشکر

      1394/07/08
      02:46
    4. مهمان

      علی

      سلام خسته نباشی
      میتونی یه زحمت بکشی داخل آموزش آردوینو یه آموزش راه اندازی ال سی دی گرافیکی هم بذاری
      با تشکر

      1394/07/06
      10:35
      • نویسنده این مطلب

        مهدی دمرچیلو

        سلام
        چه مدلی؟
        فعلا که دانشگاه هستم و قطعاتش پیشم نیست متاسفانه
        ولی رفتم خونه چشم
        فعلا شما مدل LCD رو بگید

        1394/07/07
        06:10
    5. مهمان

      علی قهرمانی

      آقا مهدی (رئیس بزرگ) سلام دوباره
      آقا آرم رو که یادمون ندادی .یه دردسر دیگه برات دارم.چه جوری میشه تو آردوینو ال سی دی گرافیکی را راه انداخت؟با توجه به کمبود پایه برد UNO چه کارش کنیم؟از برد مگا استفاده بشه؟ به چه صورت؟
      الهی تب کنم شاید پرستارم تو باشی
      با تشکر

      1394/07/03
      11:15
      • نویسنده این مطلب

        مهدی دمرچیلو

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

        1394/07/04
        07:40
    6. مهمان

      mbta

      هیچ منبع فارسی به این حجم کم ، کامل و عالی توضیح نداده است . ممنون ادامه دهید . من شخصا هر ۲ روز یک بار به سایت شما سر می زنم . شما عالی هستید . پردازش تصویر و کار با نرم افزار QT را هم کار کنید .

      1394/07/03
      08:16
      • نویسنده این مطلب

        مهدی دمرچیلو

        سلام
        والا چند روز نور بالا زده بودیم پی کاراش بودیم(البته الان هم نور بالا میزنیم)…..لذا وقت نکردم مطلب بزارم تو سایت
        اون دو تایی هم که گفتید توی برنامم هستش. laugh ….. فعلا دارم انگلیسیم رو قوی میکنم….چون مطلب فارسی برا دو مورد فوق کم هستش ب زبون فارسی

        1394/07/04
        07:42
    7. مهمان

      رضا

      تشکر

      1394/07/01
      08:09
      • نویسنده این مطلب

        مهدی دمرچیلو

        خواهش

        1394/07/01
        10:16
    8. مهمان

      محمد

      آقا مهدی کلا دستخطت داره شنا میکنه!^_^

      1394/06/30
      11:12
      • نویسنده این مطلب

        مهدی دمرچیلو

        laugh

        1394/06/31
        05:33