نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

آموزش جامع AVR جلسه 24 Timer Counter FAST PWM Mode3

به نام خدا : سلام خدمت شما بزرگواران، تو این مطلب از آموزش AVR ، قراره قسمت سوم مطلب آموزش PWM رو قرار بدم.
هدف این مطلب : ما موجی که با pwm تولید میکنیم به صورت مربعی هستش، یعنی اگه موج سینوسی هم تولید کنید بازم به صورت مربعی هستش!، حالا من میخوام انواع روش این کار رو بگم، البته مورد ۳(فیلتر) فقط بدرد pwm میخوره، و اون ۳ حالت دیگه که گفتم برا این که مطلب کامل بشه، چون همین مورد ۳(فیلتر) کار DAC هستش که اون ۳ تای دیگه هم DAC هم هستن، فقط دیگه تو اون ۳ حالت دیگه از PWM و تایمر خبری نیست و از پایه های ورودی خروجی میکرو استفاده میکنیم.
خوب همین اول بگم که میتونید مطالب زیر رو هم بخونید که مطالب قبلیش رو من قبلا دیده بودم خوب توضیح داده بود، اینا رو هم فک کنم خوب توضیح داده باشه، نگاه کنید ظرر نداره، حالا مطالب دیگه سایتش که مربوط به pwm هست رو هم بخونید، من این دو تا رو دیدم :
آشنایی با مُد PWM ؟ [۲۷]
کانتر صفر در مد PWM ؟ [۲۸]
آموزش جامع AVR جلسه 24 Timer Counter FAST PWM Mode3

آموزش جامع AVR جلسه 24 Timer Counter FAST PWM Mode3

توجه : اگه میبینید من یه جاهایی رو توضح نمیدم به این خاطره که فک میکنم نیاز به توضیح دادن نداره ولی ممکنه یه قسمتش رو باید بگم برا تازه کاره ولی چون مثلا خودم اون مورد و میدونم فک میکنم شما هم میدونید اون موضوع رو، لذا به همین خاطر و به این دلیل ممکنه بعضی چیزا رو نگم لذا اگه به موردی برخوردید که توضیح نداده بودم بگید تا توضیح بدم.(در ضمن من کوچیک همتون هستم و ادعایی ندارم که چیزی بلدم یا نیستم blush – قربون همتون…..دعام کنید. smile – یادتون نره sarcastic )

روش های تبدیل سیگنال دیجیتال به آنالوگ – DAC

۱) RESISTOR LADDER

والا این “RESISTOR LADDER” که بهش “پل مقاومتی” هم میگن که اثاثش همون تقسیم ولتاژ هستش و فرم کلیش به صورت زیر هستش.
که هر چی این تعداد مقاومت ها بیشتر باشه دقت ولتاژ تولیدی میره بالا، مثلا اگه بخواین ولتاژ با دقت ۰٫۱ تولید کنید نیاز به n تا ردیف از این مقاومت ها دارین.(ک در زیر n ردیف از پل مقاومتی رو مشاهده میکنید.)…………
پل مقاومتی
توجه : اون a0 رو بهش میگن LSB (کم ارزش ترین بیت) و هر چی به سمت an-1 میریم ارزش بیت ها زیاد میشه و اون آخری که an-1 باشه رو بهش میگن MSB (پر ارزش ترین بیت)…..مثلا تو پروژه هایی که در زیر میزارم (اون پروژه ای که از میکرو استفاده نکردم) میبینید که وقتی اون ولتاژ مربوط به بیت پر ارزش رو فعال میکنید و بقیه غیر فعال ولتاژ ۲٫۵ ولت میوفته رو خروجی مثلا و وقتی اون بیت کم ارزش رو ولتاژش رو فعال میکنید ولتاژ ۰٫۱ میوفته رو خروجی.

محاسبات پل مقاومتی

در زیر محاسبات محاسبات پل مقاومتی رو براتون میزارم که نحوه کار مدار بالا چطور هستش، البته قبلش برا این که نحوه محاسبات رو متوجه بشید باید کتاب های مدار ۱ و ۲ رو فک کنم باید خونده باشید، فک کنم تو این تو تا درس این موضوع آموزش داده میشه….حالا کاری ندارم، در زیر محاسبات رو نوشتم و براتون گزاشتم.
محاسبات پل مقاومتی
خوب همون طور که میبینید اگه مراحل رو بازم تا یه مرحله جلوتری پیش برید میبینید که یه فرم خاصی داره و از یه فرمول خاصی پیروی میکنه که تا همین ۳ مرحله ای که من رفتم میتونید فرمول رو تشخیص بدید که اگه تا n مرحله پیش بریم ولتاژ خروجی فرمولش چطوری میشه، من فرمول نهایی رو در زیر براتون میزارم.
همون طور که در فرمول زیر میبینید به ازای n های کوچیک اون ولتاژ مورد نظر تاثیر کمی در ولتاژ نهایی داره و در n های بزرگ تر، هر چی مقدار n بزرگتر میشه تاثیر اون ولتاژ در ولتاژ نهایی بیشتر میشه……مثلا اگه n=50 باشه و اگه V1 رو بر ۲ به توان ۵۰ تقسیم کنیم، مقدار کمی از V1 در ولتاز نهایی (ولتاژ ما) قرار میگیره ولی برا V50 که تقسیم بر ۲ میشه، نصف V50 در ولتاژ نهایی قرار میگیره و به همین خاطر بهش میگن MSB چون تاثیر بیشتر در ولتاژ نهایی میزاره…..حالا تو فایل پروتئوسی که گزاشتم یکم با اون LOGIC STATE ها ور برید متوجه موضوع میشید.(LOGIC STATE به عنوان منبع ولـتاژ ازشون استفاده کردم…..حالا بیا گو لاجیک استیت چیه dash ….تو پروتئوس یکم با قطعات ور بری کاربردش رو متوجه میشی shout )
RESISTOR LADDER

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

شماتیک پروژه
همون طور که تو شماتیک میبینید من ۴ نوع مدار پل مقاومتی رو براتون گزاشتم که ۸ و ۱۲ و ۱۶ و ۲۴ رو براتون گزاشتم که هر چی تعداد بیت ها بیش تر بشه دقت کار میره بالاتر، برید اون ولتاژ ها رو فعال و غیر فعال کنید و ببینید به ازای هر کدوم چه ولتاژی در خروجی ظاهر میشه.(فایل کل پروژه ها و کل مطالب در ته مطلب به صورت یک جا قرار داده شده heart )
پروژه پل مقاومتی بدون میکرو

پروژه پل مقاومتی با میکرو

خوب این قسمت دو تا پروژه براوت میزارم یکی ۸ بیتی و یکی ۱۶ بیتی که تو این پروژه من میخوام یه موج سینوسی تولید کنم، حالا همون طور که و کد های ۲ پروژه زیر میبینید، شاید براتون سوال باشه که اون مقادیر آرایه از کجا اومده که اینو در ادامه و در قسمت مربوط به نرم افزار #C براتون میگم….نگران نباشید….فکر همه جاش رو کردم focus
شماتیک پروژه ۸ بیتی
تولید موج سینوسی با پل مقاومتی
کدهای پروژه ۸ بیتی

 





شماتیک پروژه ۱۶ بیتی

تولید موج سینوسی با پل مقاومتی
کدهای پروژه ۱۶ بیتی

۲) IC DAC

خب یه سری IC هستن برای این کار که دیجیتال رو به آنالوگ تبدیل میکنن، حالا توی این مطلب زیاد نمیخوام روش بحث کنم، که هر کدوم از این آی سی ها خودش میشه یه مطلب و این مطلب هم همین طوریش داره طولانی میشه و اصلا هدف این مطلب آموزش AVR  هستش و نه آموزش کار با IC
حالا این IC ها بسته به مدلشون مدارات داخلیشون متفاومت هستش، یکی دو تا از این IC ها رو که من میدیدم مدار داخلیشون مثل همین پل مقاومتی بود حالا بقیه IC ها رو مدار داخلیش از چیه خدا میدونه.(یعنی باید برید داخل دیتاشیت اون IC ها مدار داخلیش رو ببینید و من اطلاعی ندارم :-D)
چون این پروتئوس این IC ها رو شبیه سازی نمیکنه و من هم فعلا قطعاتش رو ندارم تا در عمل مدار رو ببندم لذا فعلا کاری ندارم بهش تا سر وقت و تو یه مطلب جداگانه اگه یادم بود بهشون بپردازم(یادم بندازید pardon)، االبته پروتئوس یکی از این IC ها رو شبیه سازی میکنه که در زیر براتون پروژش رو میزارم.
این آی سی هم بعید میدونم در عمل وجود داشته باشه….اسم آی سیش یه جوریه laugh … تو فایل ته مطلب دیتاشیت جند تا از این IC DAC ها رو گزاشتم…شاید بدردتون بخوره(البته هم من میدونم و هم خودتون که این دیتاشیت ها رو عمرا نگاه نمی کنید. diablo )
IC DAC

۳) DAC and Filter

۴) DAC and Op Amp

خب چقدر روش laugh ، همون طور که میدونید با مدار جمع کننده با اپ امپ  هم میشه یه دونه DAC ساخت، و ماشاالله کتاب و جزوه در زمینه اپ امپ تو نت کم نیستش، لذا با یه سرچ کوچولو میتونید مطالب زیادی درباره مدار های جمع کننده با اپ امپ پیدا کنید.
در زیر یه پروژه DAC با اپ امپ و چند تا لینک مرتبط با این قسمت براتون میزارم، و کتاب برای مطالعه اپ امپ رو هم خودتون زحمت بکشید و بسرچید.(البته به زودی یه مطلب جامع درباره اپ امپ سعی میکنم بزارم تو سایت، قبلا یه دونه مطلب چرت درباره اپ امپ گزاشته بودم تو سایت که اونم به خاطر گل روی گوگل حذفش نکردم تا حالا وگرنه اون مطلب چرند رو تا حالا حذف کرده بودم – از فردا برم آزمایشگاه دانشگومون ببینم میتونم مدارات اپ امپ رو عملی ببندم و توی اون مطلب رویاییی O_o قرارش بدم یا نه laugh – امروز رفتم آمار ساعت هایی که میتونم برم آزمایگاه و کار کنم رو در ابردم، انشاالله از فردا شروع میکنیم. :-)).
در شماتیک زیر اون کلید ها یا روی منبع تغزیه Vref قرار میگیره یا روی زمین قرار میگیره، که با تغییر وضعیت این کلید ها(صفر و یک کردن پایه ها) ولتاژ خروجی تغییر میکنه و همانند یه Dac عمل کنیه این اپ امپ، برا راه اندازی این مدار با avr یا هر میکروی دیگه هم میتونید اون سر مقاومت هایی که به ایون کلید ها وصل هستن رو به میکرو وصل کنید و ۰ و ۱ شون کنید و ولتاژ خروجی رو تغییر بدید، البته ولتاژ Vref و اون ولتاژ های + و – ۱۲ ولت رو باید طوری تنظیم کنید که… laugh برید خودتون مطالعه کنید،
پروژه DAC با اپ امپ

فرمول محاسبه ولتاژ DAC با اپ امپ : 
فرمول کلی مدار بالا به صورت زیر هستش ولی تو مدار بالا من اومدم R2 رو دو برابر R1 دادم تا ولتاژ خروجی حداکثر برابر ولتاژ ورودی باشه(Vref)، این ولتاژ که برا خروجی انتظار دارید وقتی تولید میشه که اون ولتاژ های + و – اپ امپ یعنی پایه های ۴ و ۷ رو بالا بدید، چندیدن ولت بالاتر از ولتاژ خروجی، تو مدار بالا اون قطعه ای که اسمش (U1(OP هستش در واقع همون ولتاژ خروجی یا همو Vout هستش که من هواسم نبود اسمش رو تغییر بدم.DAC and Op Amp

۵) نرم افزار تولید موج سینوسی !!!

آموزش PWM
به کمک این نرم افزار که با #C نوشته شده ما میایم و اون مقادیری که تو پروژه های بالا، تو اون آرایه ها هستن رو محاسبه میکنیم.
توجه : در زیر من توضیحات رو بر مبنای ۸ بیتی میگم، تو پروژه مربوط به filter من از تایمر ۱ استفاده کردم ولی شما میتونید از هر تایمری که دوست دارید استفاده کنید.
من برا تولید موج sin ایی مبنای کار رو بر دایره مثلثانی گزاشتم، که از درجه ۰ تا ۳۵۹ درجه مقدار Sin و محاسبه کردم(چون ۳۶۰ درجه همون ۰ درجه میشه به همین خاطر تا ۲۵۹ درجه محاسبه کردم.)، و خمون طور که میدونید مقادار Sin یه چیزی بین ۱- تا ۱+ میشه، که من میام این مقدار Sin رو با ۱ جمع میکنم تا مقدار Sin ّشه بین ۰ تا ۲ و بعد در ۲٫۵ ضرب میکنم تا مقدار Sin بشه بین ۰ تا ۵، و بعد با توجه به این که ما از مد ۸ بیتی استفاده میکنیم یعنی ۰ تا ۲۵۵ که ما میایم این مقدار SIN که بین ۰ تا ۵ هستش رو به عددی بین ۰ تا ۲۵۵ تبدیل میکنیم، یعنی اگه مقدار sIN برابر ۰ بشه مقدار ۰ به ریجستر مربوطه میدیم، اگه مقدار SIN برابر ۵ بشه مقدار ۲۵۵ میدیم به ریجستر مربوطه، اگه مقدار sIN برابر ۲٫۵ ّشه مقدار ۱۲۷ به ریجستر مربوطه میدیم، میشه گفت مقدار sIN که بین ۰ تا ۵ هستش رو به عددی بین ۰ تا ۲۵۵ تبدیل میکنیم و این عدد رو به ریجستر مربوطه میدیم. (که حالا بسته به تایمر مورد استفاده این ریجستر مربوطه! laugh میتونه OC0، OCR1A، OC2 باشه)
فکر کنید ۱ o_O : برید فک کنید که برای تولید هر یک از دو موج سیاه و قرمز رنگ عکس بالا باس چیکار کرد و چه فرقی با هم دارن.(البته برا SIN رو که گفتم.)
فک کنید ۲ ^_^ : برید تحقیق کنید که برای تولید موج با شکل های دیگه باید چیکار کرد و ببینید میتونید اشکال دیگه ای رو تولید کنید یا نه.(عمرا کسی ببره و تحقیق کنه dash)

محیط نرم افزار
نرم افزار تولید موج سینوسی

کدهای نرم افزار

 

دانلود نرم افزار تولید موج سینوسی با #C

جدیدا چقدر برای مطالب من وقت صرف میکنم، قبلنا مطالب رو سریع تر مینوشتم، الان برا هر یک از ۵ مورد بالا من چند روز وقت گزاشتم تا بشه این مطلب و نمیخواستم ماستمالی کنم، حالا نمیدونم کلیفیت مطلب مناسبه یا نه و مفید هستش یا نه، امیدوارl که مفید باشه براتون.
با توجه به این که این مطلب یه روزه نوشته نشده، ممکنه اشتباهاتی توش رخ داده باشه یا کم و کسری هایی باشه توش، لطفا اینا رو اعلام کنید، اگه اشتباهی چیزی هم کرده بودم اونم اعلام کنید.

این مطلب رو من خیلی خیلی خیلی وقت پیش نوشتم، الان که نگاه میکنم در ظاهر جامع هستش، حالا مشکل کارش کجاس که من قبلا منتشرش نکردم رو نمیدونم، اگه کسی فهمید بگه laugh
بیش از این مزاحمتون نمیشم. laugh
فعلا یا علی. bye

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو گوگل میفرماید : إِنَّ اللّه مَعَ السارِچین ( خداوند با سرچ کنندگان است )
ارسال دیدگاه
28

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

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

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    ثریا

    سلام خسته نباشید ببخشید برا پروگرم کردن میکروهای original باید چه کار کنیم؟ پروگرمر یا سوکت خاثی هست؟

    • مهدی دمیرچیلو

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

      مهدی دمیرچیلو

      سلام – انواع پروگرامر رو میتونی تو گوگل پیدا کنی – من خودم برا سری AVR از هاتل و برا ARM از J-LINK استفاده میکنم.

      • Avatar

        مهمان

        ثریا

        ممنونم خدا قوت

  2. Avatar

    مهمان

    امین

    شما همه راه های قدیمی 40 سال پیش رو بررسی کردید ولی چرا از ای سی های DAC مثلا DAC0800 استفاده نکردید؟ ضمنا خروجی ای سی های DAC0800 جریان هست و شما باید با استفاده از یک اپ امپ جریان رو به ولتاژ تبدیل کنید

  3. Avatar

    مهمان

    حمید سعیدی

    سلام آقا این پل مقاومتی رو من توی پروتئوس بستم و نشد ( سیگنال صوت دیجیتال به آنالوگ) ولی dac جواب داد و همون طوری که فرمودید ( تو همین مطلب) این dac وجود خارجی نداره ولی یه dac0800 گرفتم موندم دستش توی دیتاشیت هم مدارش رو دیدم چیز میز زیاد می خواد ولی توی پروتئوس اصلا کار نمیکنه کمک بدید تو رو خدا
    با تشکر یک دانشجوی مهندسی برق اواره
    help

  4. Avatar

    مهمان

    حمید سعیدی

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

  5. Avatar

    مهمان

    mohammad

    سلام یلی ممنون بابت توضیحات عالیتون
    فقط دو تا سوال برام پیش اومده که خیلی جوابشون برام مهمه
    1- فرکانس رو چجوری می شه تغییر داد؟
    2- این نرم افزاری که سینوسی رو تبدیل به آرایه می کنه برای شکل موج های دیگه ای مثل مثلثی و مربعی هم هست؟اسمش چیه؟

  6. Avatar

    مهمان

    Michel

    سلام
    توى اون ٨ بیتى و ٣٢ بیتى با یکم تغییر میشه یه موج مربعى با فرکانس و دامنه دلخواه ساخت درسته؟
    مثلا بجاى این که i به ترتیب بره، بپره

  7. Avatar

    مهمان

    هابیل

    دمت گرم خیلی باحالی اسمی

  8. Avatar

    مهمان

    مجتبی

    با سلام
    لطفا در مورد اتصال ماژول دوربین به میکرو آموزش بدین ممنون

    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      فعلا دارم آموزش avr رو آماده میکنم – وقت ندارم تا آخر ماه رمضون احتمالا

  9. Avatar

    مهمان

    حامد

    سلام
    با pwm همیشه اثر سینوسی ایجاد کرد دگ؟ولی در اصل شکل موج خروجی همون مربعی خودمونه که D.Cتغییرمیکنه ولی تاثیرش سینوسیه؟درسته؟

    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      آره دیگه، PWM ِعنی فقط مربعی، ولی چون تغیرات زیاده ما مثلا شکل سینوسی میبینیم.

  10. Avatar

    مهمان

    حامد

    برا اون ولتازهای +-12ولت آپ امپ دو تا منبع ولتاز لازم داریم؟

    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      در ظاهر آره ولی یادمه یه روش بود که + رو به – وصل میکردی یه چیز تو این مایه ها – تو نت بسرچی پیدا میکنی اموزشش رو (این طوری دیگه نیاز به ولتاژ منفی نداره، الباه به کمک برخی آی سی ها میشه ولتاژ منفی تولید کرد و…)

  11. Avatar

    مهمان

    حامد

    یاشاسییییییییییییییین!!!!!
    همون منظورم تشکر بود D:

  12. Avatar

    مهمان

    حامد

    خب نرم افار تولید کد رو نمیذاری؟

    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      اضاف کردم به مطلب

  13. Avatar

    مهمان

    sajad12365

    ایا با این میشه یه ولتاژ متناوب 50 هرتز سینوسی خالص تولید کرد؟

    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      با کدوم روش؟

  14. Avatar

    مهمان

    sajad12365

    دمت گرم خیلی باحال بود راستی سایت هم خیلی کامله تو گوگل هر چی سرچ میکنم سایتت تو اولین ردیف میاد
    ادامه بده

  15. Avatar

    مهمان

    حسین

    *کنترل

  16. Avatar

    مهمان

    حسین

    سلام
    من میخوام برای سیستم قطره ای باغ مداری طراحی کنم که چند ساعت از روز رو با شیر برقی 12 ولت ابیاری کنه بع د قطع بشه تا روز بعد دو تا سوال 1.چجوری زمانشو تنظیم کنم 2.برای کلید قطع و وصل شیر برقی از چه کلیدی اسفاده کنم که با میکرو کنرل بشه .
    ممنون از سایت خوبت

    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      زمان : زمان Rtc میکرو یا ماژول ساعت یا گرفتن زمان از کامپیوتر یا هر چیزی که فک کنی
      این شیر به چه صورتی هستش؟ یه عکسی میتونی بدی

      • Avatar

        مهمان

        حسین

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

        • مهدی دمرچیلو

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

          مهدی دمرچیلو

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

    • Avatar

      نویسنده سایت

      mitavanim

      سلام خدمت شما
      شیرهای برقی 12 ولتی دارای یک سیم پیچ هستند که وقتی به میزان لازم به آن جریان برق و ولتاژ اعمال شود یک تکه فلزی به داخل جذب شده و مسیر آب باز می شود و موقعی که برق قطع می شود آن تکه فلزی با کمک یک فنر که در زیرش قرار دارد به مکان اولیه خود باز می گردد.
      در انتخاب شیر برقی باید دقت کنید که بتواند میزان جریان آب مورد نظر شما را در واحد زمان از خود عبور دهد.
      برای روشن و خاموش کردن این شیرهای آب می تواند جریان و ولتاژ خروجی Micro controller را توسط Transistor مناسب تقویت نمایید و سپس آن به شیر برقی اعمال کنید.

  17. Avatar

    مهمان

    محمد صافی پور

    بسیار سایت خوبی دارید همیشه موفق باشید