خانه / چگونه بسازیم / الکترونیکی / فانشن ژنراتور یا تولید کننده شکل موج بسازید ! [ پروژه AVR ]

فانشن ژنراتور یا تولید کننده شکل موج بسازید ! [ پروژه AVR ]

اگر دانشجوی رشته الکترونیک ، یکی از دوست داران پروژه های الکترونیکی و یا در حال آموزش الکترونیک هستید و یا اگر دوست دارید در کارگاه شخصی خودتان یک دستگاه فانشن ژنراتور (Function Generator) داشته باشید این پروژه ساختنی را از دست ندهید !
در این مقاله ، آموزش ساخت یک دستگاه تولید کننده شکل موج یا فانشن ژنراتور با استفاده از میکرو کنترلر AVR را به شما آموزش خواهیم داد. اما قبل از شروع آموزش بد نیست اندکی در مورد فانشن ژنراتور ها بیشتر بدانید.

فانشن ژنراتور چیست ؟

این دستگاه در واقع تولید کننده سیگنال های مختلف الکترونیکی است که به شما اجازه می دهد شکل این سیگنال ها ، دامنه ولتاژ و فرکانس آن ها را با توجه به نیازتان تنظیم کنید. این دستگاه برای تست و تعمیر قطعات الکترونیکی ، پژوهش روی مدار های الکترونیکی ، آزمایش پاسخ مدار طراحی شده به ورودی های مختلف ، تست آمپلی فایر های ساخته شده و … به کار می رود. در واقع فانشن ژنراتور یک نوع نوسان ساز قابل تنظیم و پیشرفته با امکانات اضافی است.
در هر آزمایشگاه یا کارگاه الکترونیکی که قدم بگذارید ، دو دستگاه ضروری را روی میز کار خواهید دید. یک اسیلوسکوپ و یک فانشن ژنراتور ! هردو این دستگاه ها گرانقیمت هستند ، در حالی که ساختن نمونه های ساده و کاربردی آن ها تقریبا نیاز های عادی شما را کاملا برطرف می کند و نیازی به صرف هزینه های زیاد نیست. قبلا به شما آموزش داده ایم که چگونه یک اسیلوسکوپ بسازید ، حالا نوبت ساخت فانشن ژنراتور است !
این دستگاه می تواند شکل موج هایی نظیر مربعی ، سینوسی ، مثلثی و دندان اره ای تولید کند. برای ساخت فانشن ژنراتور از یک میکرو کنترلر AVR با مدل ATMEGA 32 ساخت شرکت ATMEL استفاده می کنیم . این تراشه میکروکنترلر دارای امکانات بسیار زیادی است و در مقایسه با میکرو کنترلر های هم رده اش ، دارای قیمت مناسب تری نیز هست.

ابزار مورد نیاز:

  • یک دستگاه برنامه ریزی میکرو کنترلر AVR
  • مدار تبدیل سیگنال دیجیتال به آنالوگ (ADC)
  • یک اسیلوسکوپ برای دیدن شکل موج خروجی
  • یک منبع تغذیه مانند آداپتور یا منبع تغذیه رو میزی
  • سیم برای اتصال قسمت های مختلف
  • پراب های CRO برای اسیلوسکوپ
  • برد PCB طراحی شده و یا برد برد (Bread Board)

قطعات مورد نیاز:

  • میکرو کنترلر AVR مدل ATMEGA 32
  • IC مبدل دیجیتال به آنالوگ DAC0808 یا ماژول DAC
  • IC تقویت کننده عملیاتی (Op-Amp) مدل LM741
  • کلید های فشاری
  • مقاومت و خازن به مقدار کافی !
نمونه آماده شده دستگاه فانشن ژنراتور روی برد آزمایشگاهی به همراه خروجی
نمونه آماده شده دستگاه فانشن ژنراتور روی برد آزمایشگاهی به همراه خروجی

از لحاظ تئوری ، برای تولید شکل موج های مختلف سیگنال های الکتریکی آنالوگ با استفاده از میکرو کنترلر با خروجی سیگنال دیجیتال ، باید خروجی دیجیتال میکروکنترلر را به یک مبدل دیجیتال به آنالوگ (DAC) وصل کرد که سیگنال دیجیتال را تبدیل به آنالوگ کند.
خروجی های DAC ها از از لحاظ جریان به ورودی ارتباط دارد. به عبارت ساده تر مبدل های آنالوگ به دیجیتال ، رقم های دیجیتال را گرفته و با توجه به بزرگی رقم ، مقدار جریان دهی در خروجی از آن ها بیشتر می شود. پس برای داشتن خروجی آنالوگ ما باید این جریان را تبدیل به ولتاژ کنیم. ساده ترین تبدیل کننده ولتاژ به جریان مقاومت تنها است . البته مقاومت به دلایل مختلفی از جمله خطای زیاد و اتلاف انرژی در عمل برای این منظور استفاده نمی شود.
در این پروژه با از یک تقویت کننده عملیاتی برای تبدیل خروجی جریان به ولتاژ استفاده کرده ایم. برای این منظور از آسی سی LM741 را به کار گرفته ایم که معروف ترین IC تقویت کننده عملیاتی موجود در بازار است.

در ساختنی بخوانید :  طرز ساخت یک دستبند با چنگال

توضیحات مدار فانشن ژنراتور

پورت A در میکرو کنترلر به عنوان ورودی و پورت C به عنوان خروجی تعریف شده است . چهار عدد کلید فشاری به درگاه A متصل شده اند (از پایه A0 تا پایه A3) ، بقیه پایه های درگاه A (یعنی از A4 تا A7) به ولتاژ Vcc متصل شده اند . همه 8 پایه پورت C به خروجی های A1 تا A8 مبدل دیجیتال به آنالوگ DAC0808 متصل هستند . پایه Vref تراشه DAC0808 به عنوان ولتاژ مرجع مقایسه به Vcc متصل شده است . پایه -Vref هم به ولتاژ زمین (صفر) متصل است. یک مقاومت 5 کیلو اهمی به عنوان واسطه در سر راه این اتصال قرار گرفته است که جریان Iref ، از مقدار مورد نیاز DAC0808 بالاتر نرود.

مدار فانشن ژنراتور را مشاهده می کنید :

نقشه مدار فانشن ژنراتور (Function generator) ساده و کاربردی با استفاده از میکروکنترلر Atmega32
نقشه مدار فانشن ژنراتور (Function generator) ساده و کاربردی با استفاده از میکروکنترلر Atmega32

مبدل دیجیتال به آنالوگ (DAC) چگونه کار می کند ؟

مبدل دیجیتال به آنالوگ DAC0808 دارای 8 پایه ورودی است که هر پایه معرف یک بیت (Bit) دیجیتال است. همان طور که می دانید هر بیت می تواند مقدار 1 یا 0 را داشته باشد یا به عبارتی هر کدام از این پایه ها می توانند خاموش یا روشن باشند . مجموع 8 پایه می تواند اطلاعاتی برابر با 8 بیت از 00000000 ( که معادل ولتاژ مرجع حد پایین است) و 11111111 (که معادل ولتاژ حد بالااست) را منتقل کند ، یعنی این 8 پایه می توانند به 256 حالت مختلف روشن و خاموش باشند. پس می توانیم بگوییم که بازه بین ولتاژ مرجع بالا و پایین را می توانیم به 256 قسمت تقسیم کنیم . یعنی ارزش هر شماره از 0 تا 255 برابر است با :

(5-0) / 256 =0.0195

یعنی اگر خروجی میکرو کنترلر عدد 01100100 را نشان داد ، DAC0808 میفهمد که این عدد متناظر 100 است . سپس محاسبه می کند :

100* 0.0195 = 1.95

و در خروجی 1.95 واحد از 5 واحد اجازه ایجاد جریان می دهد.
خروجی مبدل DAC که جریان Iout است به ورودی وارونگر (Inverting Output) آپ-امپ LM741 متصل است که قرار است این جریان را به ولتاژ تبدیل کند که برای ما قابل استفاده باشد. یک مقاومت 5 کیلو اهمی هم در خروجی این آپ-امپ قرار دارد که نقش نهایی در ایجاد ولتاژ را بازی می کند. مدار الکترونیکی فانشن ژنراتور سه ولتاژ تغذیه مختلف لازم دارد +5 ولت ، +12 و -12 ولت . این ولتاژ ها به این دلیل هستند که میکرو کنترلر Atmega32 و تراشه DAC0808 با ولتاژ 5 کار می کنند ولی تقویت کننده عملیاتی LM741 با ولتاژ های -12 و +12 به شکل متقارن کار می کند. این ولتاژ ها را می توانید با پروژه های مختلف منبع تغذیه که در ساختنی معرفی شده است تولید و استفاده کنید. همچنین منابع تغذیه متنوعی در فروشگاه های الکترونیک موجود است که می توانید از آن ها بهره ببرید.

کد میکرو کنترلر فانشن ژنراتور

برای این که بهتر از طرز کار مدار الکترونیکی فانش ژنراتور مطلع شویم باید بفهمیم که میکرو کنترلر چگونه اطلاعات مربوط به هر شکل موج را شبیه سازی و تولید می کند.

تولید موج مربعی :

برای تولید موج مربعی ، میکرو کنترلر باید به شکل متناوب همه پایه های خروجی را صفر کرده و پس از مدتی دوباره یک کند که در خروجی مدار به ترتیب ولتاژ+12 و -12 ولت به شکل متناوب دیده شود .

در ساختنی بخوانید :  حالا ربات ها میتوانند در کمتر از 2 دقیقه خودشان را تعمیر کنند

تولید موج پله ای :

برای تولید این شکل موج میکرو کنترلر باید در ابتدا خروجی صفر تولید کند و پس از ایجاد تاخیری کوتاه این مقدار را پله به پله افزایش دهد مثلا : 33h و 66h و 99h و CCh و FFh (عدد ها برای کوتاه شدن بر مبنای 16 نوشته شده اند که شما می توانید با استفاده از مبدل هگز به باینتری ، آن ها را تبدیل به 0 و1 کنید.) . خروجی مدار به شکل یک راه پله با چندین پله از -12 ولت تا +12 ولت خواهد بود.

تولید موج سینوسی :

برای تولید موج سینوسی قضیه کمی سخت تر می شود. برای این کار نیاز به یک جدول داده داریم که در آن سینوی زاویه های مختلف با معادله زیر برای زوایای 30 ، 60 ، 90 و … محاسبه و جا گذاری شده است.

Value = 5 + 5sin(?)

توجه کنید : در معادله بالا Value به معنای خروجی آنالوگ است. پس ورودی های دیجیتال باید متناظر با آن تولید شوند. وقتی این مقدار های تولید شده به مبدل دیجیتال به آنالوگ داده شد ، مقدار به دست آمده به شکل یک موج سینوسی خواهد بود.

تولید موج مثلثی :

برای تولید موج مثلثی ، کافی است میکرو کنترلر یک بار از صفر تا 255 بشمرد و در خروجی نشان دهد و سپس بلافاصله همین عمل را از 255 تا 0 به صورت معکوس انجام دهد.

تولید موج دندان اره ای یا موج رمپ (Ramp) :

این موج شبیه موج مثلثی است . فقط در تولید این موج ، میکرو کنترلر از صفر تا 255 می شمرد و سپس دوباره صفر شده و از اول شروع می کند ، اگر این عمل معکوس انجام شود دندانه های موج هم برعکس می شوند.
چهار کلید فشاری در مدار هم برای تولید همین شکل موج ها کار گذاشته شده اند :

  • با زدن کلید 1 موج مربعی تولید می شود.
  • اگر کلید 2 را به تعداد زوج فشار دهید پله های بالا و سپس پایین تولید می شود. اگر کلید 2 را به تعداد فرد فشار دهید پله ها فقط رو به بالا هستند.
  • کلید 3 موج سینوسی تولید می کند.
  • کلید 4 در فشار اول موج مثلثی ، در فشار دوم موج دندان اره ای مستقیم (رمپ مثبت) و در فشار سوم دندان اره ای معکوس (رمپ منفی) تولید می کند و پس از 4 بار دوباره موج مثلثی تولید می شود.

کد برنامه نویسی پروژه فانشن ژنراتور با میکروی AVR را در پایین می بینید . این برنامه به زبان برنامه نویسی C نوشته شده است :

در کد برنامه نویسی از دستور goto استفاده شده است که گرچه کار می کند اما زیاد باب طبع برنامه نویسان حرفه ای نیست، آیا شما می توانید کد برنامه را به شکل بهتری بنویسید ؟ نتایج کارتان را با ما در میان بگذارید.

در ساختنی بخوانید :  آموزش ساخت: پتو برقی گرمایشی بسیار کم مصرف

منبع

خلاصه مطلب
فانشن ژنراتور یا تولید کننده شکل موج بسازید ! [ پروژه AVR ]
عنوان مطلب
فانشن ژنراتور یا تولید کننده شکل موج بسازید ! [ پروژه AVR ]
توضیح کوتاه
آموزش ساخت دستگاه تولید کننده شکل موج یا فانشن ژنراتور (Function generator) .
نویسنده

بیشتر بخوانید:

آموزش ساخت: چراغ مطالعه ی باباقوری فلزی استیم پانک (Steampunk)... چراغ مطالعه کوچک استیم پانک یک چراغ مطالعه ی کوچک! این چراغ از لامپ قدیمی دوچرخه، فنر موتور ماشین، گیره چوب، لوله ی مسی و شارژر موبایل ساخته شده اس...
دستگاه تست باتری بسازید و ظرفیت باتری‌های قابل‌شارژ را اندازه بگیرید... اگر زیاد با دستگاه ها و پروژه های الکترونیکی کار می کنید، احتمالاً یک جعبه پر از باتری دارید. پیدا کردن باتری های قابل استفاده یا قابل شارژ بین بین آن...
با ماژول nRF24L01 آردوینو را به یک برد وایرلس تبدیل کنید... ماژول nRF24L01 یک ماژول فرستنده و گیرنده است که با استفاده از آن می توانید به صورت وایرلس با آردوینو ارتباط برقرار کنید. اتصال این ماژول به برد آردوین...
برد ArrDrownHo بسازید و از میکروکنترلر AVR به جای برد آردوینو استفاده ... در این مطلب یاد می گیرید چطور بجای برد آردوینو از میکروکنترر AVR در پروژه هایتان استفاده کنید. اگر نمی خواهید برای خرید برد آردوینو هزینه کنید، می توا...
آموزش آردوینو : روش ارتباط کارت خوان RFID با آردوینو... تکنولوژی RFID یا شناسایی با امواج رادیویی، تکنولوژی ارتباط کوتاه بردی است که با آن می توان افراد یا اشیای مختلف را به وسیله کارت ها برچسب ها یا همان ت...
آموزش روش ساخت پازل سه تکه گره ای چوبی http://www.aparat.com/v/vpBuI امروز در ساختنی آموزش ساخت یک سرگرمی جالب را برایتان آماده کرده ایم. ساختن این پازل بسیار ساده است اما حل کردن آن کمی د...

درباره مهرداد جمالی

مهرداد جمالی

مهرداد جمالی ، متولد 1367 ، دانش آموخته رشته لیسانس مهندسی مخابرات دانشگاه ملی زنجان و دانشجوی ارشد مدیریت صنعتی است. وی بنیان گذار اصلی پروژه ساختنی و یکی از مدیران ارشد وبسایت است.

پیشنهاد می کنیم

آموزش کنترل LED

آموزش کنترل LED با استفاده از میکروکنترلر AVR (سه پروژه ساده با LED)

این ساختنی یک گام دیگر در یادگیری بیشتر در مورد میکروکنترلر AVR است. ساختنی سه …

پاسخ دهید