نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
أَللّهُمَّ ارْزُقْنی شَفاعَةَ الْحُسَیْنِ یَومَ الْوُرُودِ
مهدی دمیرچیلو

آموزش جامع میکروکنترلر AVR جلسه۱۱

123

به نام خدا

آموزش جامع avr  جلسه ۱۱ : تو این جلسه  از آموزش AVR میخوام در مورد PWM  توضیح بدم که زیر مجموعه تایمر/کانتر هستش…..همون طور که میدونید تو تایمر/کانتر چندید مد داریم که مد PWM  یکی از این مد ها هستش…..به PWM  هم بعضا DAC  هم گفته میشه….یعنی به وسیله PWM  یا DAC  ما میایم و با میکروکنترلر avr ولتاژ ۰ تا ۵ ولت رو درست میکنیم….که مثلا برای کنترل نور یه LED  میتونیم از PWM  استفاده کنیم و با کم و زیاد کردن ولتاژ میتونیم شاهد تغییر نور LED رو کم و زیاد کنیم یا بازم مثلا (!) تو کنترل سرعت موتور های DC  میشه ازش استفاده کرد…..همون طور که (انشاالله) میدونید سرعت موتور های DC  وابسته به میزان ولتاژ اعمالی به اون ها هستش…یعنی هر چی ولتاژ بیشتر بهش بدیم سرعتش بیشتر و هر چی ولتاژ کمتر بدیم سرعت موتور DC  کمتر میشه…….امید وارم کاربرد این مطلبی که انشاالله میخوام در ادامه توضیح بدم رو فهمیده باشید( البته اگه متوجه نشدید بگید تا بیشتر توضیح بدم….)

آموزش جامع میکروکنترلر AVR جلسه11

انواع تایمر/کانتر در avr

تو avr و تو میکرو کنترلر مگا ۱۶ ما ۳ تا تایمر کانتر داریم که به اولی میگن “تایمر/کانتر ۸ بیتی صفر” و به دومی میگن “تایمر کانتر ۱۶ بیتی ۱” و به سومی میگن “تایمر کانتر ۸ بیتی ۲”
پس ۲ تا تایمر/کانتر ۸ بیتی داریم و یه دونه ۱۶ بیتی……

آموزش کار با DAC یا همون PWM در AVR

همون طور که تو عکس زیر میبینید تو  میکروکنترلر avr  یه ۴ تا پایه هستش که میشه به عنوان پایه های pwm  یا همون DAC  ازشون استفاده کرد…..مثلا اگه از تایمر کانتر ۸ بیتی ۰ یا ۲ استفاده کنید فقط یه پایه برای این کار وجود داره(هر تایمر یه دونه پایه) ولی تو تایمر/کانتر ۱۶ بیتی ۱ دو پایه به برای این کار وجود داره….که ما تو کنترل سرعت موتور مخصوصا برا ساخت ربات ها که معمولا به ۲ موتور و ۲ چرخ برا رباتشون نیاز دارن میان و از تایمر/کانتر ۱۶ بیتی ۱ استفاده میکنن تا سرعت ۲ تا موتور رو کنترل کنن….لذا دیگه از تایمر ۰ یا ۲ استفاده نمیکنن….
آموزش کار با PWM در AVR

توجه ۱ : تایمر کانتر ۰ و ۲ هشت بیتی هستن و تایمر/کانتر ۱ شانزده بیتی هستش.
توجه ۲ : تو حالت ۸ بیت ماکزیمم مقدار۰XFF  هستش که یعنی ۲۵۶ و تو حالت ۱۶ بیت ماکزیمم مقدار ۰XFFFF هستش که یعنی ۶۵۵۳۶ ولی باید توجه کرد که چون شمارش کلاک (و کلا شمارش هر چیزی تو AVR ) از صفر شروع میشه و نه یک ، لذا تو حالت ۸ بیت ماکزیمم مقدار ۲۵۵ هستش و تو حالت ۱۶ بیت ماکزیمم مقدار ۶۵۵۳۵ هستش.

ریجسترهای تایمر/کانتر

من حال توضیح دادن رو ندارم….جسله قبلی(جلسه۹) هم ریجستر ها رو توضیح ندادم….یه سایت هست که خوب توضیح داده…من لینک های اونو قرار میدم….شما برید ریجستر هاش رو بخونید….و من این جا چند تا پروژه ساده قرار میدم براتون.
جلسه۱  جلسه۲  جلسه۳  جلسه۴  جلسه۵  جلسه۶  جلسه۷  جلسه۸
منم در زیر سه تا پروژه ساده با هر کدوم از سه تا تایمر/کانتر موجود رو براتون میزارم.

پروژه کنترل دور موتور DC

پروژه avr یک ، با تایمر/کانتر صفر

مدار پروژه
پروژه avr

مدار پروژه

 

پروژه avr دو ، با تایمر/کانتر دو

مدار پروژه
 DAC در AVR

کدهای پروژه

 

پروژه avr سه ، با تایمر/کانتر یک

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

کدهای پروژه

 

دانلود ۳ پروژه این مطلب

 








 

پروژه هایی با تایمر در مد FAST PWM

توجه خیلی مهم : سه پروژه بالا رو من اصلا خوشم نمیاد، اگه از من میشنوید نگاشون هم نکینید در عوض پروژه های زیر رو ببینید که با هر سه تایمر نوشتم و هم کد هاش ساده هستش و هم اصولی و درست و حسابی

کنترل دور موتور DC با FAST PWM و تایمر ۰

این از شماتیک پروژه
پروژه کنترل دور موتور DC

اینم از کدهای پروژه

برا بحث نحوه مقدار دهی پورت ها و ریجستر ها میتونید مطلب مقابلرو بخونید : آموزش صحیح و خوانا نوشتن کد
بحث ریجستر ها هم میتونید اون لینک های بالا رو بخونید و یا این که تو مطالب بعد خودم توضیحشون میدم.

کنترل دور موتور DC با FAST PWM و تایمر ۱

شماتیک پروژه
پروژه کنترل دور موتور DC

اینم از کدهای پروژه

 

کنترل دور موتور DC با FAST PWM و تایمر ۲

شماتیک پروژه
پروژه کنترل دور موتور DC

اینم از کدهای پروژه

 

دانلود ۳ پروژه بالا

خوب این جلسه هم تموم شد، اگه سوالی بود حتما حتما بپرسید، تا حد توان پاسختون رو میدم. focus
در ضمن ممنون از دوستانی که اشتباهات تایپی/علمی و… رو بهم میگن. heart
فعلا یا علی.

تعداد مطالب : 367 تا
جنگ ما فتح قدس را به همراه خواهد داشت. [ امام خمینی (ره) ]
ارسال دیدگاه
18
نظرات این مطلب بسته شده است.
  1. سینا اکبری

    مهمان

    سینا اکبری

    سلام.
    دمت گرم با آموزش ها
    فقط یه چیزی من پروژه دانشگاهیم با استفاده از PWM هست، آموزش های شما و وبلاگ نویز رو خوندم، ولی خیلی متوجه نشدم، تایمر کانتر رو بهتر توضیح داده بودی victory

  2. علیرضا اهنی

    مهمان

    علیرضا اهنی

    سلام.
    فرمولی هست که ولتاژه تو بدی عدد ریجیسترOCRxبگیری؟

  3. علیرضا آهنی

    مهمان

    علیرضا آهنی

    سلام.
    ممنون پروزه های باهالی میزاری good
    با یکم تعغیر کد ها میشه تر کیب رنگ درست کرد mail

  4. هادی

    مهمان

    هادی

    سلام.
    با تشکر از اینکه علمتون رو در اختیار بقیه هم می گزارید.فقط ازتون می خوام که برا افرادی مث من که خیلی پایه هستم یکم پایه ای تر توضیح بدید. بازم ممنون.

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      والا فک کنم تقریبا تو همه مطلب من میگم اگه سوالی چیزی اگه بد گفتم اگه توضیح بیشتر میخواست و…. بهم بگید
      آخه من نمیدونم باید چطوری بگم و چیا رو بگم تا دوستان مبتدی به مشکل بر نخورن
      چون شما وقتی مبتدی باشی و بخوای یه چیزو کار کنی کوچک ترین چیز هم برات مهم میشه
      ولی وقتی اون چیزو یاد گرفتی میبینی اونایی که مشکل داشتی خیلی سادس و به مشکلات بزرگتری بر میخوری و …
      و همنی وطر که پیشرفت میکنی مشکلات و چیزای ساده برات عادی میشن
      انگار که جزو چیزای بدیهی هستش
      و اون موقع اگه بخوای اون مطلب رو به دیگران یاد بدی قطعا یه سری چیزا رو نمیگی
      نه این که نخوای بگی و یا حوصله نداشته باشی …. نه … چون اصلا یادت نیست، حواست نیست که اینا رو بگی و…
      امیدوارد منظورمو متوجه شده باشی و این که ما کوچیک شما هستیم و چیزی هم بارمون نیست و اگه چیزی هم بلدیم از اساتید یاد گرفتیم و همونو میزاریم سایت و… (گفتم شاید از خوندن متن بالا … بگذریم)
      در کل شما بگید کجا رو بیشتر توضیح بدم بنده در خدمتم. yes

  5. Mahdi.MM

    مهمان

    Mahdi.MM

    آقا دمه شما گرم با این سایته خوبتون
    جسارت نباشه ولی توجه ۲ یه ایراد کوچولو داره اوونم اینه که ۰XFFFF میشه ۶۵۵۳۵

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      بله درسته….اشتباه نوشتم
      ممنون از شما

  6. yashar

    مهمان

    yashar

    میشه که بدون درایو یا همون ال 298 موتور دی سی رو راه انداخت ؟

    مشاهده پاسخ ها (2)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      بله میشه ولی به شرطی که منبع تغزیت درست و حسابی باشه و برای زمان کم و فقط راه اندازی موتور و نه کار دیگه ای

      • علیرضا آهنی

        مهمان

        علیرضا آهنی

        سلام.
        میشه ترانزیستورم این کارو کرد. smile

  7. ایدین

    مهمان

    ایدین

    باورت میشه اقا مهدی بهترین سایتو داری .
    اگه از اموزش هایی که میزاری یه فایل پی دی اف بزاری دقیقا همینایی که توی سایت به عنوان مثال توی عمین صفحه هستش عالی میشه . دیگه چیزی از استادی کم نمی زاری برامون . heart give_rose

  8. مجید

    مهمان

    مجید

    سلام
    ممنون خیلی خوب بود.
    آقا مهدی درباره کپچر avr برنامه ای دارین؟
    اگه امکانش هست یه مقدار توضیح بدین با یه پروژه باشه که فقط با نحوه برنامه نویسیش و طرز کارش آشنا بشم.
    اگه منبعی هم معرفی کنید ممنون میشم.
    یا علی.

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      منبعی جز گوگل سراغ ندارم. wacko

  9. امین

    مهمان

    امین

    سلام
    واقعا کارت درسته داداش
    خدا خیرت بده
    امیدوارم موفق باشی
    خداخیرت بده
    ممنون

  10. امین

    مهمان

    امین

    من نظر دادم
    فقط ایمیلو اشتباهی وارد کردم.

  11. امین

    مهمان

    امین

    سلام
    خسته نباشی داداش
    واقعا دمتگرم
    خدا خیرت بده و موفق باشی.
    ممنون

  12. مهدی آوینی

    مهمان

    مهدی آوینی

    دمت گرم .
    آموزش کار با AVR studio هم بزارید

  13. رامین اصیلی

    نویسنده سایت

    رامین اصیلی

    خیلی باحاله … ممنون آقا مهدی…