U BOARD ir.

ورود به حساب کاربری
مرا بخاطر بسپار
گذرواژه را فراموش کرده اید؟
هنوز ثبت نام نکرده اید؟ تنها سه گزینه برای ثبت نام ثبت نام

U BOARD ir.

ثبت نام
ثبت نام
لطفا تمامی موارد خواسته شده را تکمیل نمایید لطفا ایمیل معتبر وارد نمایید لطفا گذرواژه را بیشتر از 6 کاراکتر وارد نمایید لطفا گذرواژه را مجددا بیشتر از 6 کاراکتر وارد نمایید
تولید موج سینوسی با آی سی DAC0800 و میکروکنترلر AVR با فرکانس متغیر

مبدل دیجیتال به آنالوگ DAC0800، مدار راه اندازی مبدل دیجیتال به آنالوگ DAC0800، ساخت شکل موج سینوسی DAC0800، محاسبه فرکانس موج سینوسی خروجی DAC0800، تولید موج سینوسی فرکانس متغیر DAC0800 میکروکنترلر AVR، تغییر فرکانس موج سینوسی خروجی DAC0800، محاسبه دامنۀ ولتاژ موج سینوسی خروجی DAC0800، شماتیک مدار تولید موج سینوسی

تولید موج سینوسی با آی سی DAC0800 و میکروکنترلر AVR با فرکانس متغیر
data:image/jpeg;base64,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
رضا بداغی ۹۸/۱۲/۱۰ زمان موردنیاز برای مطالعه ۳۵ دقیقه

موج سینوسی به روش های مختلف ساخته می شود. یکی از روش های معمول ساخت موج سینوسی، ژنراتور الکتریکی است. در این روش یک موج سینوسی 220 ولت (مؤثر) با فرکانس 50 هرتز به وسیلۀ چرخش روتور  در ژنراتور ساخته می شود. نمونۀ بارز آن ژنراتورهایی است که چرخش روتور آن از طریق موتورهای بنزینی تأمین می شود. این ژنراتورها که به آنها موتور برق نیز می گوییم در توان های مختلف ساخته می شوند. یک روش دیگر ساخت موج سینوسی، استفاده از اسیلاتور است. در مدارهای مخابراتی برای ساخت موج سینوسی از اسیلاتور استفاده می کنند. انواع و اقسام اسیلاتور برای ساخت موج سینوسی وجود دارد که اسیلاتور Colpitts، اسیلاتور Wien Bridge و اسیلاتور Hartley از این جمله اند. یک روش دیگر برای ساخت شکل موج سینوسی، تغییر ولتاژ نسبت به زمان به شکل سینوسی است که این روش با مبدل دیجیتال به آنالوگ (DAC) به سادگی قابل پیاده سازی است. در این روش به ورودی DAC در فاصله های زمانی مشخص داده هایی می دهیم که خروجی DAC به صورت سینوسی دربیاید. در این نوشته به شرح روش ساخت موج سینوسی با میکروکنترلر AVR و آی سی DAC0800 می پردازیم. برای درک مطالب این نوشته لازم است به مبحث پورت های I/O، تایمر و وقفه های خارجی تسلط داشته باشید. برای مطالعۀ مطالب پورت های I/O و تایمر 1 میکروکنترلرهای AVR می توانید به نوشته های «آموزش پورت های IO در میکروکنترلرهای AVR پورت های IO در ATmega128A» و «آموزش تایمر کانتر میکروکنترلرهای AVR تایمر کانتر 1 و 3 در ATmega128A» مراجعه کنید.

 

مبدل دیجیتال به آنالوگ DAC0800

مبدل دیجیتال به آنالوگ DAC0800 یک DAC هشت بیتی است که می تواند ورودی دیجیتال 8 بیتی را به سیگنال آنالوگ معادل تبدیل کند. سطح سیگنال آنالوگ معادل از یک فرمول به دست می آید که در ادامه بررسی می شود. خروجی DAC0800 به صورت جریان Sink است که با استفاده از مقاومت پول آپ به ولتاژ تبدیل می شود. خروجی DAC0800 به صورت دو جریان است که جهت این دو جریان بر خلاف همدیگر است. می توان هر دو خروجی را پول آپ کرد و از آنها ولتاژ گرفت. در این نوشته می بینیم که با استفاده از یک تقویت کنندۀ تفاضلی، تفاضل دو ولتاژ خروجی را می گیریم و آن را به یک موج سینوسی تبدیل می کنیم.

پایه های مبدل دیجیتال به آنالوگ DAC0800

مبدل دیجیتال به آنالوگ DAC0800 دارای 16 پایه است که هشت پایۀ آن برای دادۀ دیجیتال ورودی، دو پایه برای خروجی آنالوگ، دو پایه برای ولتاژهای مرجع، دو پایه برای تغذیۀ آی سی و دو پایه به نام های Threshold Control و Compensation است. ترتیب پایه های مبدل دیجیتال به آنالوگ را در تصویر زیر می بینید.

تصویر 1 – ترتیب و نام پایه های مبدل دیجیتال به آنالوگ DAC0800 پکیج DIP و SOIC

 

مدار راه اندازی مبدل دیجیتال به آنالوگ DAC0800

در دیتاشیت مبدل دیجیتال به آنالوگ DAC0800 مدار زیر برای راه اندازی DAC0800 پیشنهاد شده است.

تصویر 2 – مدار خارجی DAC0800 پیشنهادی دیتاشیت

 

دقت شود که پایۀ B1 پایۀ مربوط به بیت پر ارزش و پایۀ B8 پایۀ مربوط به بیت کم ارزش دیتا است. یعنی پایۀ B1 برای MSB و پایۀ B8 برای LSB است.

مدار راه اندازی مبدل دیجیتال به آنالوگ DAC0800 در این پروژه

در این پروژه از ولتاژهای 15 ولت مثبت و 15 ولت منفی برای تغذیۀ مبدل دیجیتال به آنالوگ DAC0800 (پایه های 13 و 3) استفاده کرده ایم. ولتاژ مرجع مثبت (پایۀ 14) را 5 ولت در نظر گرفته ایم و ولتاژ مرجع منفی (پایۀ 15) را به زمین متصل کرده ایم. پایه های 14 و 15 که پایه های ولتاژ مرجع هستند با مقاومت 5 کیلو اهم (یا 5.1 کیلو اهم) به زمین متصل شده اند. با دو مقاومت 10 کیلو اهم نیز پایه های خروجی مثبت و منفی (پایه های 4 و 2) را پول آپ کرده ایم. پایه های 5 تا 12 به ترتیب به پایه های PA7 تا PA0 میکروکنترلر ATmega64 متصل می شوند. پایۀ 1 به همان شکلی که در دیتاشیت گفته شده به زمین وصل شده و پایۀ 16 نیز مطابق مطالب دیتاشیت با یک خازن به تغذیۀ 15 ولت منفی متصل شده است. شمارۀ پایه های ذکر شده بر اساس پکیج DIP این تراشه است. خازن های C2 و C3 نیز روی تغذیۀ مثبت و منفی 15 ولت قرار گرفته اند. مدار راه اندازی مبدل دیجیتال به آنالوگ DAC0800 استفاده شده در این پروژه را در تصویر 3 می بینید.

تصویر 3 – مدار راه اندازی مبدل دیجیتال به آنالوگ DAC0800

 

مدار داخلی مبدل دیجیتال به آنالوگ DAC0800

مدار داخلی مبدل دیجیتال به آنالوگ DAC0800 به صورت زیر است.

تصویر 4 – مدار داخلی معادل مبدل دیجیتال به آنالوگ DAC0800

 

نحوه ساخت شکل موج سینوسی با DAC و میکروکنترلر AVR

اگر خروجی یک شمارندۀ 8 بیتی را به ورودی مبدل دیجیتال به آنالوگ متصل کنیم، طی 256 پله ولتاژ خروجی آن از صفر به مقدار ماکزیمم می رسد. این افزایش ولتاژ خطی است که آن را در تصویر زیر می بینید.

تصویر 5 – خروجی DAC نسبت به ورودی خطی

 

نحوه ساخت شکل موج سینوسی با DAC0800

برای ساخت شکل موج سینوسی با DAC0800 کافی است به ورودی دیجیتال DAC0800 الگوی خاصی از اعداد 0 تا 255 را در زمان های مساوی بدهیم تا به جای آن که اعداد از 0 تا 255 به صورت خطی افزایش یابد، به صورت الگوی سینوسی کم و زیاد شود. این کار را با میکروکنترلر AVR ATmega64 می کنیم. برای تولید موج سینوسی با AVR ATmega64، پورت A این میکروکنترلر را به ورودی DAC0800 وصل می کنیم. مطابق الگوی زیر پایه های ورودی DAC0800 را با فواصل زمانی معین صفر و یک می کنیم. در این صورت در خروجی مبدل دیجیتال به آنالوگ DAC0800 یک شکل موج سینوسی خواهیم داشت. برای داشتن موج سینوسی با فرکانس ثابت باید این داده ها با فواصل زمانی ثابت به ورودی DAC داده شود، اما ما می خواهیم یک شکل موج سینوسی با فرکانس قابل تغییر داشته باشیم. در ادامۀ این نوشته نحوۀ تغییر فرکانس موج سینوسی خروجی گفته خواهد شد.

131 , 134 , 137 , 140 , 144 , 147 , 150 , 153 , 156 , 159 ,
162 , 165 , 168 , 171 , 174 , 177 , 180 , 183 , 185 , 188 ,
191 , 194 , 196 , 199 , 201 , 204 , 206 , 209 , 211 , 214 ,
216 , 218 , 220 , 222 , 225 , 227 , 229 , 230 , 232 , 234 ,
236 , 237 , 239 , 240 , 242 , 243 , 245 , 246 , 247 , 248 ,
249 , 250 , 251 , 252 , 252 , 253 , 254 , 254 , 255 , 255 ,
255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 254 ,
254 , 253 , 252 , 252 , 251 , 250 , 249 , 248 , 247 , 246 ,
245 , 243 , 242 , 240 , 239 , 237 , 236 , 234 , 232 , 230 ,
229 , 227 , 225 , 222 , 220 , 218 , 216 , 214 , 211 , 209 ,
206 , 204 , 201 , 199 , 196 , 194 , 191 , 188 , 185 , 183 ,
180 , 177 , 174 , 171 , 168 , 165 , 162 , 159 , 156 , 153 ,
150 , 147 , 144 , 140 , 137 , 134 , 131 , 128 , 125 , 122 ,
119 , 116 , 112 , 109 , 106 , 103 , 100 , 97  , 94  , 91  ,
88  , 85  , 82  , 79  , 76  , 73  , 71  , 68  , 65  , 62  ,
60  , 57  , 55  , 52  , 50  , 47  , 45  , 42  , 40  , 38  ,
36  , 34  , 31  , 29  , 27  , 26  , 24  , 22  , 20  , 19  ,
17  , 16  , 14  , 13  , 11  , 10  , 9   , 8   , 7   , 6   ,
5   , 4   , 4   , 3   , 2   , 2   , 1   , 1   , 1   , 1   ,
1   , 1   , 1   , 1   , 1   , 1   , 1   , 2   , 2   , 3   ,
4   , 4   , 5   , 6   , 7   , 8   , 9   , 10  , 11  , 13  ,
14  , 16  , 17  , 19  , 20  , 22  , 24  , 26  , 27  , 29  ,
31  , 34  , 36  , 38  , 40  , 42  , 45  , 47  , 50  , 52  ,
55  , 57  , 60  , 62  , 65  , 68  , 71  , 73  , 76  , 79  ,
82  , 85  , 88  , 91  , 94  , 97  , 100 , 103 , 106 , 109 ,
112 , 116 , 119 , 122 , 125 , 128

 

اگر این 256 دادۀ آرایۀ بالا را در فواصل زمانی مشخص در پورت A میکروکنترلر قرار دهیم، در خروجی DAC0800 شکل موج سینوسی همانند شکل موج سینوسی تصویر زیر خواهیم داشت. البته تعداد پله های موج سینوسی در تصویر زیر با تعداد پله های موج سینوسی که ما خواهیم داشت، متفاوت است. دلیل این موضوع این است که شکل موج سینوسی تصویر زیر تنها برای 32 زاویه (از 360 درجه) در نظر گرفته شده است. موج سینوسی که ما خواهیم ساخت، برای 256 زاویه (از 360 درجه) یعنی حدوداً هر 1.41 درجه است. که 256 تا 1.41 درجه برابر 360 درجه است.

تصویر 6 – شکل موج سینوسی خروجی DAC با الگوی ورودی دیجیتال سینوسی

 

نحوه محاسبه فرکانس موج سینوسی خروجی DAC

برای این که موج سینوسی دارای یک فرکانس ثابت باشد، باید آرایۀ اعداد گفته شده در فواصل زمانی ثابت در ورودی DAC0800 قرار بگیرد. این فاصلۀ زمانی را با تایمر 1 میکروکنترلر ATmega64 خواهیم ساخت. حال می خواهیم ببینیم که این موج سینوسی دارای چه فرکانسی است و فرکانس آن چه رابطه ای با تعداد پله هایی که تایمر 1 میکروکنترلر ATmega64 دارد. مطابق مطالب قبلی، اگر داده های موجود در آرایۀ مورد نظر (الگوی موج سینوسی) را از اولین مقدار آرایه (یعنی عدد 131) تا آخرین مقدار آن (یعنی 128) با فواصل زمانی ثابت در پورت A میکروکنترلر ATmega64 قرار دهیم، در خروجی DAC0800 یک شکل موج سینوسی خواهیم داشت. با توجه به این که آرایۀ ورودی DAC0800 دارای 256 داده است، شکل موج سینوسی خروجی دارای 256 پله است. بنابراین دوره تناوب موج سینوسی که نام آن را T می گذاریم برابر 256 * t خواهد بود. t همان فاصلۀ زمانی ثابت است که با تایمر 1 ساخته می شود.

تصویر 7 – دوره تناوب موج سینوسی خروجی DAC0800

 

ساخت زمان ثابت با تایمر میکروکنترلر AVR برای موج سینوسی

مقادیر موجود در آرایۀ 256 عددی، باید با فواصل زمانی ثابت در پورت A قرار بگیرند. برای این منظور از تایمر/کانتر 1 میکروکنترلر AVR ATmega64 استفاده می کنیم. مد تایمر را روی مد شمارۀ 4 یعنی مد CTC با مقدار TOP برابر OCR1A تنظیم و وقفۀ مقایسۀ A را نیز فعال می کنیم. در این صورت تایمر از صفر تا مقدار رجیستر OCR1A می شمارد و وقفۀ مقایسه اتفاق می افتد. در روتین این وقفه مقدار داده های آرایۀ 256 عددی را در پورت A قرار می دهیم. دوباره تایمر از مقدار صفر شروع به شمارش می کند و تا OCR1A بالا می رود و وقفۀ مقایسه دوباره اتفاق می افتد. در این هنگام از آرایۀ 256 عددی، دادۀ بعدی را در پورت A قرار می دهیم. وقتی 256 بار وقفه اتفاق بیفتد، تعداد 256 دادۀ آرایۀ مذکور به ترتیب در پورت A قرار می گیرند. با توجه به الگوی سینوسی مقادیر این آرایه، در خروجی DAC0800 یک موج سینوسی تشکیل می شود. به تصویر زیر دقت کنید.

تصویر 8 – رابطۀ فرکانس موج سینوسی با مقدار OCR1A

 

با توجه به تصویر 8 می بینیم که یک دورۀ تناوب موج سینوسی شامل 256 پله است که هر پله زمان t را دارد. مقدار t نیز با توجه به شکل سمت راست، برابر OCR1A ضرب در دورۀ تناوب کلاک تایمر است. در این پروژه مقدار فرکانس کلاک تایمر 1 همان کلاک CPU یعنی 8 مگاهرتز است. مقدار رجیستر OCR1A نسبت به فرکانس از فرمول زیر به دست می آید. در فرمول زیر Freq، فرکانس موج سینوسی خروجی است.

 

در تصویر 8 دیدیم که مقدار OCR1A تعیین کنندۀ فرکانس موج سینوسی خروجی است. حال اگر بخواهیم مقدار OCR1A را در برنامه نسبت به فرکانس موج سینوسی به دست بیاوریم، از فرمول بالا استفاده می کنیم.

تولید موج سینوسی با فرکانس متغیر توسط DAC0800 و میکروکنترلر AVR

با توجه به فرمول به دست آمده در بخش قبل، اگر مقدار Freq را کم و زیاد کنیم، مقدار OCR1A نیز تغییر می کند. با تغییر مقدار OCR1A، مقدار t و در نهایت دورۀ تناوب و فرکانس موج سینوسی خروجی تغییر می کند. بنابراین یک موج سینوسی با فرکانس متغیر توسط DAC0800 و میکروکنترلر AVR خواهیم داشت. در ادامه خواهیم دید که مقدار Freq را با دو کلید متصل به PE4 و PE5 کم و زیاد می کنیم.

 

بررسی برنامه تولید موج سینوسی با DAC0800 و میکروکنترلر AVR

در این بخش به بررسی برنامۀ نوشته شده برای تولید موج سینوسی می پردازیم. در این برنامه از کتابخانۀ alcd.h و stdio.h نیز برای نمایش مقدار فرکانس در LCD کاراکتری استفاده شده است. همچنین تایمر 1 و وقفۀ آن برای به وجود آوردن تأخیرهای دقیق برای تشکیل موج سینوسی خروجی استفاده شده است. دو کلید روی پایه های PE4 و PE5 قرار گرفته اند که به ترتیب برای کاهش و افزایش فرکانس موج سینوسی هستند. در این برنامه مقادیر PINE4 و PINE5 در حلقۀ while بررسی می شوند. می توان از وقفه های خارجی شمارۀ 4 و 5 برای این کار استفاده کرد. برای مطالعۀ وقفه های خارجی میکروکنترلرهای AVR به نوشتۀ «آموزش وقفه در میکروکنترلرهای AVR وقفه خارجی در ATmega128A» مراجعه کنید. این برنامه در نرم افزار کدویژن نوشته شده است. می توان آن را به نرم افزار اتمل استودیو منتقل کرد. برای یادگیری روش انتقال کدهای برنامه از نرم افزار کدویژن به اتمل استودیو نوشتۀ «آموزش Atmel Studio مهاجرت از کدویژن به اتمل استودیو» را مطالعه فرمایید.

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

در این برنامه کتابخانۀ alcd.h و stdio.h برای نمایش مقدار فرکانس موج سینوسی در LCD کاراکتری فراخوانی شده اند. از تابع delay نیز در جایی از برنامه استفاده شده است که در ادامه می بینیم.

#include 
#include 
#include 
#include 

unsigned char ph1=0;
unsigned int delay_const=0;
float delay_const_f;
unsigned char freq=1;
volatile unsigned char const_source[256] =
{
	131 , 134 , 137 , 140 , 144 , 147 , 150 , 153 , 156 , 159 ,
	162 , 165 , 168 , 171 , 174 , 177 , 180 , 183 , 185 , 188 ,
	191 , 194 , 196 , 199 , 201 , 204 , 206 , 209 , 211 , 214 ,
	216 , 218 , 220 , 222 , 225 , 227 , 229 , 230 , 232 , 234 ,
	236 , 237 , 239 , 240 , 242 , 243 , 245 , 246 , 247 , 248 ,
	249 , 250 , 251 , 252 , 252 , 253 , 254 , 254 , 255 , 255 ,
	255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 254 ,
	254 , 253 , 252 , 252 , 251 , 250 , 249 , 248 , 247 , 246 ,
	245 , 243 , 242 , 240 , 239 , 237 , 236 , 234 , 232 , 230 ,
	229 , 227 , 225 , 222 , 220 , 218 , 216 , 214 , 211 , 209 ,
	206 , 204 , 201 , 199 , 196 , 194 , 191 , 188 , 185 , 183 ,
	180 , 177 , 174 , 171 , 168 , 165 , 162 , 159 , 156 , 153 ,
	150 , 147 , 144 , 140 , 137 , 134 , 131 , 128 , 125 , 122 ,
	119 , 116 , 112 , 109 , 106 , 103 , 100 , 97  , 94  , 91  ,
	88  , 85  , 82  , 79  , 76  , 73  , 71  , 68  , 65  , 62  ,
	60  , 57  , 55  , 52  , 50  , 47  , 45  , 42  , 40  , 38  ,
	36  , 34  , 31  , 29  , 27  , 26  , 24  , 22  , 20  , 19  ,
	17  , 16  , 14  , 13  , 11  , 10  , 9   , 8   , 7   , 6   ,
	5   , 4   , 4   , 3   , 2   , 2   , 1   , 1   , 1   , 1   ,
	1   , 1   , 1   , 1   , 1   , 1   , 1   , 2   , 2   , 3   ,
	4   , 4   , 5   , 6   , 7   , 8   , 9   , 10  , 11  , 13  ,
	14  , 16  , 17  , 19  , 20  , 22  , 24  , 26  , 27  , 29  ,
	31  , 34  , 36  , 38  , 40  , 42  , 45  , 47  , 50  , 52  ,
	55  , 57  , 60  , 62  , 65  , 68  , 71  , 73  , 76  , 79  ,
	82  , 85  , 88  , 91  , 94  , 97  , 100 , 103 , 106 , 109 ,
	112 , 116 , 119 , 122 , 125 , 128 };

 

متغیر ph1 شمارندۀ آرایۀ const source است. متغیر delay const f مقداری است که از فرمول OCR1A به دست می آید و مقدار صحیح آن یعنی متغیر delay const در رجیستر OCR1A ریخته می شود. متغیر freq نیز همان فرکانس موج سینوسی است که مقدار آن با استفاده از دو کلید روی پایه های PE4 و PE5 تغییر می کند. در شروع برنامه مقدار آن را برابر 1 قرار می دهیم تا در خروجی DAC0800 موج سینوسی با فرکانس 1 هرتز داشته باشیم. آرایۀ const source نیز همان مقادیر بین صفر تا 255 است که باید به ترتیب در پورت A قرار بگیرند تا در خروجی موج سینوسی داشته باشیم.

برنامۀ نوشته شده در روتین وقفۀ مقایسۀ تایمر 1 برای تولید موج سینوسی

در روتین وقفۀ مقایسۀ A تایمر 1، مقادیر آرایۀ const source در پورت A قرار می گیرند. شمارندۀ آرایۀ const source متغیر ph1 است که در سطر آخر روتین وقفه یک واحد به آن اضافه می شود تا در وقفۀ بعدی که اتفاق می افتد، عضو بعدی آرایه در پورت A قرار بگیرد. به این ترتیب با توجه به الگوی سینوسی اعضای آرایۀ const source، در خروجی DAC0800 یک شکل موج سینوسی تولید می شود.

interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
       PORTA = const_source[ph1];
       ph1++;
}

 

فاصلۀ زمانی بین دو وقفه برابر است با OCR1A ضرب در دورۀ تناوب کلاک cpu، که دربارۀ آن صحبت شد. هر 256 بار که این وقفه اتفاق می افتد، در خروجی DAC0800 یک تناوب موج سینوسی ایجاد می شود.

تابع main برنامه برای تولید موج سینوسی با DAC0800

تابع main برنامه به صورت زیر است.

void main(void)
{
	char lcd_str[16];
	delay_const_f=31250/freq;
	delay_const=(unsigned int) delay_const_f;

	DDRA=0xFF;
	DDRD=0xFF;
	PORTE=(1<<PORTE5) | (1<<PORTE4);

	TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
	TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10);
	OCR1AH=(delay_const>>8);
	OCR1AL=(delay_const&0xFF);

	TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (1<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);

	lcd_init(16);
	lcd_clear();
	sprintf(lcd_str,"Frequency = %d",freq);
	lcd_puts(lcd_str);
	#asm ("sei") ......}

 

ابتدا یک رشته برای نمایش در LCD تعریف شده است. سپس در دو سطر بعدی مطابق فرمولی که به دست آوردیم، مقدار delay const به دست می آید. در ادامه پورت A برای اتصال به ورودی DAC0800 خروجی شده است. پورت D نیز که قرار است به LCD متصل شود خروجی شده است. رجیستر PORTE نیز برای پول آپ کردن پایه های PE4 و PE5 مقدار دهی شده است. در ادامه رجیسترهای مربوط به تایمر 1 مقدار دهی شده است. تایمر 1 در مد شمارۀ 4 یعنی مد CTC با مقدار TOP برابر OCR1A و فرکانس کلاک 8 مگاهرتز تنظیم شده است. در دو سطر بعدی مقادر OCR1AH و OCR1AL با توجه به فرمول به دست آمده برای OCR1A، مقدار دهی شده است. چون این رجیستر دو بایت است، بنابراین باید مقدار const delay را به دو بایت مجزا تبدیل کرد و در آن قرار داد. رجیستر TIMSK نیز برای فعال کردن وقفۀ مقایسۀ تایمر 1 مقدار دهی شده است. در ادامه LCD کاراکتری پیکر بندی شده و پرچم کلی وقفه ها فعال شده است.

تغییر فرکانس موج سینوسی خروجی DAC0800

در حلقۀ while بی نهایت برنامه همواره صفر شدن پایه های PE4 و PE5 بررسی می شود که اگر صفر شدند (که به معنای فشرده شدن کلید روی این پایه هاست)، مقدار فرکانس موج سینوسی خروجی تغییر کند. برای این منظور از شرط های if استفاده شده که در آنها علاوه بر محاسبۀ مقدار OCR1A با فرمول، مقدار فرکانس به 1 هرتز تا 100 هرتز محدود می شود. همچنین بروزرسانی مقدار فرکانس موج سینوسی نمایش داده شده در LCD کاراکتری در این شرط ها قرار گرفته است.

while (1)
	{	
		if(PINE.4==0)
		{
			delay_ms(200);
			freq--;
			delay_const_f=31250/freq;
			delay_const=(unsigned int) delay_const_f;
			OCR1AH=(delay_const>>8);
			OCR1AL=(delay_const&0xFF);
			if (freq>100) freq=100;
			if (freq<1) freq=1;
			lcd_clear();
			sprintf(lcd_str,"Frequency = %d",freq);
			lcd_puts(lcd_str);
		}
		
		if(PINE.5==0)
		{
			delay_ms(200);
			freq++;
			delay_const_f=31250/freq;
			delay_const=(unsigned int) delay_const_f;
			OCR1AH=(delay_const>>8);
			OCR1AL=(delay_const&0xFF);
			if (freq>100) freq=100;
			if (freq<1) freq=1;
			lcd_clear();
			sprintf(lcd_str,"Frequency = %d",freq);
			lcd_puts(lcd_str);
		}
	}

 

محاسبه دامنۀ ولتاژ موج سینوسی خروجی DAC0800

در دیتاشیت DAC0800 برای محاسبۀ جریان خروجی فرمولی آورده شده است. حداکثر جریانی که خروجی می تواند بکشد برابر است با:

IFS = (Vref/Rref) * (255/256)

 

IFS به معنای جریان حداکثر یک پایۀ خروجی است. اگر تمام پایه های دیجیتال ورودی 1 شوند، مطابق مدار داخلی که در تصویر 4 آورده شد، جریانی که از پایۀ Iout عبور می کند برابر IFS خواهد بود. اگر تمام ورودی های دیجیتال صفر شوند، مقدار جریانی که پایۀ Iout بار (یعنی پایۀ 2) می کشد برابر IFS خواهد بود. زمانی که Iout در ماکزیمم خود است، Iout بار (پایۀ 2) در مینیمم خود است. با توجه به مدار تصویر زیر داریم:

 

جریانی که از مقاومت های پول آپ روی پایه های 2 و 4، کشیده می شود باعث می شود ولتاژی روی این پایه ها بیفتد که در KVL (*) و KVL (**) آورده شده اند. با توجه به مقادیر پروژه ولتاژ موج سینوسی پیک تو پیک به صورت زیر است:

Vout (p-p) = 2*10k*(5v/5k)*(255/256)=19.9v

 

پس ولتاژ پیک تو پیک موج سینوسی خروجی بین پایه های 2 و 4 برابر 19.9 ولت است.

 

شماتیک مدار تولید موج سینوسی

در تصویر زیر شماتیک مدار تولید موج سینوسی با DAC0800 و میکروکنترلر AVR در نرم افزار پروتئوس آورده شده است.

تصویر 9 – شماتیک مدار تولید موج سینوسی با DAC0800 و میکروکنترلر AVR

 

نکته: این شماتیک تنها در نرم افزار Proteus برای شبیه سازی است. در عمل باید ولتاژهای تغذیه و بک لایت LCD و همچنین تغذیۀ میکروکنترلر نیز وصل شوند.

 

استفاده از تقویت کننده تفاضلی در تولید موج سینوسی با DAC0800

در این پروژه برای از بین بردن سطح DC ولتاژهای روی پایه های 2 و 4 و همچنین داشتن ماکزیمم سویینگ ولتاز خروجی از تقویت کنندۀ تفاضلی با اپ امپ 741 استفاده شده است. گین این تقویت کنندۀ تفاضلی با توجه به مقدار مقاومت های آن که در تصویر 9 مشخص است، برابر 1 است.

 

نتیجۀ تولید موج سینوسی با DAC0800 را در شبیه ساز ببینیم

در دو تصویر زیر شکل موج سینوسی 1 هرتز و 89 هرتز خروجی اپ امپ 741 را می بینیم.

تصویر 10 – نتیجۀ تولید موج سینوسی با DAC0800 و میکروکنترلر AVR ATmega64 در پروتئوس

 

تصویر 11 - نتیجۀ تولید موج سینوسی با DAC0800 و میکروکنترلر AVR ATmega64 در پروتئوس

 

تمرین تولید موج سینوسی با DAC0800 و میکروکنترلر AVR

به کمک مطالعۀ نوشتۀ «آموزش روش حذف کتابخانۀ delay از پروژه های میکروکنترلری»، کتابخانه و تابع delay را از برنامۀ نوشته شده برای تولید موج سینوسی با DAC0800 حذف کنید. تولید موج سینوسی سه فاز با میکروکنترلر AVR و DAC0800 نیز می تواند یک تمرین برای یادگیری مطالب این نوشته باشد. اینورتر سینوسی با AVR و تولید موج مثلثی با AVR و DAC0800 می توانند تمرین های خوبی باشند. با استفاده از آی سی DAC0800 می توان به ساخت اینورتر سینوسی با AVR و تولید موج مثلثی با AVR پرداخت.

 

از تولید موج سینوسی با DAC0800 و میکروکنترلر AVR نتیجه می گیریم:

  • 1- روش های مختلفی برای ساخت شکل موج سینوسی وجود دارد. از جمله این روش ها، ژنراتورهای AC و اسیلاتورها هستند. موج سینوسی با DACها نیز قابل پیاده سازی است.
  • 2- یکی از مبدل های دیجیتال به آنالوگ، آی سی DAC0800 است که 8 بیتی است و خروجی آن به صورت جریان است.
  • 3- در DAC0800پایۀ B1 پایۀ مربوط به بیت پر ارزش و پایۀ B8 پایۀ مربوط به بیت کم ارزش دیتا است. یعنی پایۀ B1 برای MSB و پایۀ B8 برای LSB است.
  • 4- برای ساخت موج سینوسی با DAC باید به ورودی دیجیتال DAC یک الگوی سینوسی از اعداد را داد. بنابراین در خروجی، یک موج سینوسی آنالوگ خواهیم داشت.
  • 5- برای تغییر فرکانس موج سینوسی خروجی DAC، لازم است که فواصل زمانی قرار دادن داده های دیجیتال در ورودی تغییر کنند.
  • 6- مقدار ورودی DAC0800 باید بین 0 تا 255 تغییر کند. با تغییر سینوسی این داده ها، در خروجی یک موج سینوسی خواهیم داشت.
  • 7- برای تولید موج سینوسی یا هر موج دیگری، بهتر است به جای delay از تایمر استفاده کنیم.
  • 8- خروجی DAC0800 به صورت جریان است. با دو مقاومت پول آپ می توان آن را به ولتاژ تبدیل کرد.
  • 9- برای تبدیل دو خروجی DAC0800 به یک خروجی، می توان از تقویت کنندۀ تفاضلی استفاده کرد. با استفاده از تقویت کنندۀ تفاضلی، مقدار ولتاژ DC روی هر پایه نیز حذف می شود.

 

برای دریافت نسخۀ PDF این نوشته، نمونه کدهای بررسی شده و فایل های شبیه سازی، فایل پیوست را دانلود نمایید.

 

data:image/jpeg;base64,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
رضا بداغی
کارشناس الکترونیک هواپیمایی، نویسندۀ یوبرد، طراح برد مدار چاپی PCB، طراح و برنامه نویس مدارات مبتنی بر میکروکنترلر، طراح مدارات مبتنی بر میکروکنترلر و ماژول های SIM800
اگر دیدگاهی دارید میتوانید از طریق فرم زیر دیدگاه خود را در سایت درج کنید.
نویسنده: مهدی تاریخ: ۲۰ مهر ۱۳۹۹ ساعت: ۰۱:۵۰:۲۱ ب.ظ
سلام جناب مهندس خیلی مچکرم بابت پاسخگوییتون به سوالات من میخوام یک اینورتر بسازم به اینصورت که این شکل موج سینوسی رو با یک شکل موج مثلثی فرکانس بالا حدود 15KHZ مقایسه کنم شما اپ امپی رو میتونید پیشنهاد بدید که در ورودی دو شکل موج سینوسی و مثلثی رو دریافت و مقایسه کنه و در خروجی سیگنال منطقی صفر و یک با سطح ولتاژ ۵ ولت بده خیلی سپاس گزارم
نویسنده: رضا بداغی تاریخ: ۳۰ مهر ۱۳۹۹ ساعت: ۱۰:۰۴:۳۱ ب.ظ

 سلام. بله میشه. مدهای Fast PWM هم میشه استفاده کرد. در این صورت تو خروجی یه موج PWM داریم که عرض پالس اون با دامنۀ مقدار سینوسی تغییر میکنه. البته باید این مورد هم در نظر بگیریم. اگه فرضاً فرکانس کلاک واحد تایمر 8 مگاهرتز باشه، زمان هر پله میشه 0.125 میکروثانیه. برای رسیدن به فرکانس 15 کیلوهرتز باید زمان 66.6 میکروثانیه سپری بشه. بنابراین نیازه که تعداد 533 پله طی بشه. بنابراین باید حداقل مقدار TCNTx برابر 65003 باشه. حالا برای این که مقایسه بین TCNTx و OCRxy انجام بشه، باید تغییر مقدار موج سینوسی بین 65003 و 65536 باشه. مگر این که از مدهای کمتر از 16 بیت مثلاً مد 10 بیتی یا 9 بیتی استفاده کنیم. که در این صورت محاسبات متفاوته.

نویسنده: مهدی تاریخ: ۲۸ مهر ۱۳۹۹ ساعت: ۰۳:۲۵:۴۱ ق.ظ
سلام وقت بخیر مهندس جان میشه این مقایسه رو تو خود میکرو انجام داد؟ مثلا به جای این که مقادیر سینوسی رو توی پورت Aقرار بدیم توی رجیستر OCRn یک تایمر دیگه مثلا تایمر ۳ قرار بدیم و مود این تایمر رو رو حالت pwm تصحیح فاز بذاریم
نویسنده: رضا بداغی تاریخ: ۲۲ مهر ۱۳۹۹ ساعت: ۰۵:۲۰:۵۱ ب.ظ

سلام. خواهش میکنم. برای این که توی خروجی اپ امپ سیگنال صفر و 5 بگیرید میشه از اپ امپ های single supply استفاده کنید. فقط مشکلش اینه که شما اگه ولتاژ تغذیه مثبت این اپ امپ رو 5 ولت بدید و ولتاژ تغذیۀ منفی اون رو به زمین وصل کنید، خروجی اون دقیقاً صفر و 5 نمیشه. چون امپ ها همیشه ولتاژ اشباع شون مقداری از ولتاژ تغذیه شون کمتره (مثلاً 1 ولت). برای مثال خروجی میشه 1 ولت و 4 ولت. برای رفع این مشکل میشه اپ امپ با تغذیۀ دوبل استفاده کرد. طوری که ولتاژ تغذیۀ منفی رو 1- بذارید و ولتاژ تغذیۀ  مثبت رو 6 ولت. در این صورت اون اختلاف جبران میشه و خروجی شما میشه صفر و 5. البته کار خوب اینه که همین مدار هم از به اشباع رفتنش جلوگیری بشه تا توی اون فرکانس عملکرد بهتری داشته باشه. برای این کار میشه ازمدارات جلوگیری از اشباع که با دیود و مقاومت ساخته میشن استفاده کرد. که در این صورت میشه مقدار خروجی رو با تغییر مقدار اون مقاومت ها طوری تغییر داد که خروجی بین 0 و 5 تغییر وضعیت بده. همچنین میشه ولتاژها رو هم مثلاً 12- و 12 گذاشت. حالا برای بحث فرکانس هم بهتره یه اپ امپ با slew rate  بالاتر از 20 v/us بذارید. اپ امپ LF351 رو الان با پی اسپایس با موج مثلثی 15 کیلوهرتز تست کردم خروجی جالبی نداشت. slew rate این اپ امپ 16 هستش. اپ امپ با slew rate بالاتر چیزی به ذهنم نمیرسه. خواهش میکنم. موفق باشید.

نویسنده: مهدی تاریخ: ۱۸ مهر ۱۳۹۹ ساعت: ۰۲:۲۵:۳۵ ب.ظ
سلام اقای مهند میشه بفرمایید چطور میشه دامنه موج سینوسی خروجی رو تغییر داد
نویسنده: رضا بداغی تاریخ: ۱۹ مهر ۱۳۹۹ ساعت: ۱۰:۳۹:۴۴ ق.ظ

توی سوال قبلیتون جواب دادم.

نویسنده: مهدی تاریخ: ۱۵ مهر ۱۳۹۹ ساعت: ۰۳:۵۹:۲۴ ب.ظ
سلام جناب مهندس وقتتون بخیر ممنون بایت مطلبتون اگه میشه بفرمایید که امکان تغییر دامنه موج سینوسی از طریق avr هم وجود داره و چطور میشه این کار رو انجام داد.
نویسنده: رضا بداغی تاریخ: ۱۹ مهر ۱۳۹۹ ساعت: ۱۰:۳۳:۵۴ ق.ظ

سلام. بله این کار امکان پذیره. توی این قسمت:

PORTA = const_source[ph1];

اگه مقدار const_source رو در یک عدد کمتر از 1 ضرب کنید، مقادیری که روی پورت A قرار میگیره به نسبت اون عدد کاهش پیدا میکنه. به این شکل:

PORTA = gain * const_source[ph1];

همچنین مقدار قرار گرفته توی پورت A باید عدد صحیح باشه. پس به این شکل تغییر پیدا میکنه:

PORTA = (unsigned char) (gain * const_source[ph1]);

الان اگه مقدار متغیر gain که float هستش بین 0 و 1 تغییر کنه، دامنۀ سیگنال هم بین صفر و حداکثر تغییر میکنه.

 

نویسنده: محمد اقبالی تاریخ: ۱۴ مهر ۱۳۹۹ ساعت: ۰۹:۳۰:۲۰ ب.ظ
با سلام من یک اینورتر تبدیل برق باطری به برق شهر 220 ولت دارم ولی خروجی ان شبه سینوسی یا همان مربعی است میخواستم آن را به سینوسی کامل تبدیل کنم میشه لطفااگه مدار یا غیره ...دارید برام ایمیل کنید اینورترم 150 وات هست ممنون میشم با تشکر
نویسنده: رضا بداغی تاریخ: ۱۹ مهر ۱۳۹۹ ساعت: ۱۰:۳۵:۴۶ ق.ظ

سلام. بنده برای این کار مدار تست شده ندارم. همچنین نمیدونم اینورتری که دارید دارای چه ساختاری هست. اگه اینورتری که دارید توی خروجیش از ترانس افزاینده استفاده شده، میشه در اولیۀ ترانس فیلتر RC قرار داد و مربعی رو تا حدودی به سینوسی شبیه کرد. البته با این کار دامنۀ سیگنال کاهش پیدا میکنه. همچنین مقاومت چون در مسیر جریان بالا قرار میگیره باید توان بالا باشه. شاید نیازی به مقاومت نباشه و تنها با موازی کردن یه خازن با اولیۀ ترانس این کار انجام بشه. مقدار خازن هم بستگی به ساختار اینوتر داره.

نویسنده: علی موسوی تاریخ: ۱۴ مرداد ۱۳۹۹ ساعت: ۰۹:۲۰:۱۸ ب.ظ
سلام. آقای مهندس میشه توضیح بدید چطور میشه اون آرایه اعداد ثابت رو به دست آورد؟ ممنون از شما
نویسنده: رضا بداغی تاریخ: ۱۶ مرداد ۱۳۹۹ ساعت: ۰۸:۴۹:۴۱ ب.ظ

سلام. یه روشش این فرموله:

constant_source[i]=[(127*sin(xi))+128]

فرضاً میخواید از 8 مقدار استفاده کنید. پس باید 8 مقدار ورودی صفر و 45 و 90 و 135 و 180 و 225 و 270 و 315 درجه رو به ورودی تابع بدید. در این صورت اعداد خروجی بین صفر تا 255 هستش. اگه میخواید یه سینوسی دقیق تر داشته باشید، باید تعداد اعضای اون آرایه رو بالا ببرید که نیاز داره تعداد بیشتری ورودی بدید. مثلاً میخواید تعدادش 100 تا باشه. پس 100 تا ورودی باید بدید به تابع. این ورودی ها هم میشن:

x0=0

x1=1 * (360/100)

x2=2 * (360/100)

...

x99=99 * (360/100)

زوایای ورودی هم به این شکل انتخاب میشن. توجه داشته باشید که کروشه توی فرمول نماد جزء صحیحه.

نویسنده: بهاره تاریخ: ۵ تیر ۱۳۹۹ ساعت: ۰۴:۳۲:۱۳ ب.ظ
سلام. جناب مهندس میشه مقاومت های پول آپ رو وصل نکرد؟ من دیدم معمولاً مقاومت پول آپ رو برای ورودی های دیجیتال و برای بالا کشیدن ولتاژ اونا استفاده میکنن.
نویسنده: رضا بداغی تاریخ: ۷ تیر ۱۳۹۹ ساعت: ۰۷:۲۱:۱۵ ب.ظ

سلام. خیر باید وصل کنید. چون خروجی اون open-collector هستش و خروجی ولتاژ آنالوگ با جریان Sink عبوری از مقاومت های پول آپ به وجود میاد. پول آپ کردن با این که خیلی مواقع برای ورودی های دیجیتال استفاده میشه، صرفاً برای ورودی دیجیتال نیست و گاهی (مثل خروجی DAC0800) برای خروجی هم استفاده میشه.

نویسنده: فرشته تاریخ: ۳ تیر ۱۳۹۹ ساعت: ۰۱:۲۶:۵۶ ق.ظ
سلام آقای مهندس. dac رو میشناسید که نیاز به ولتاژ دوبل نداشته باشه و بدون نیاز به ولتاژ منفی کار کنه؟
نویسنده: رضا بداغی تاریخ: ۴ تیر ۱۳۹۹ ساعت: ۰۷:۰۲:۵۳ ب.ظ

سلام. آی سی AD1866 یه نمونه 16 بیتی برای صداست که نیاز به منبع دوبل نداره. AD7801 هم یه DAC با منبع تغذیۀ تکی هستش.

نویسنده: مصطفی حمیدی تاریخ: ۲۷ خرداد ۱۳۹۹ ساعت: ۱۰:۳۴:۰۵ ب.ظ
تشکر از مطلب خوبتون. عالی بود. میشه فقط از یکی از پایه های خروجی استفاده کرد یا باید حتماً از دو تاش خروجی گرفت؟
نویسنده: رضا بداغی تاریخ: ۲۹ خرداد ۱۳۹۹ ساعت: ۱۱:۵۴:۰۵ ب.ظ

سلام. خواهش میکنم. ممنون. بله میشه. ولی در این صورت آفست خروجی رو دارید.

نویسنده: هادی نبی زاده تاریخ: ۱۹ خرداد ۱۳۹۹ ساعت: ۰۹:۵۰:۲۲ ق.ظ
سلام جناب مهندس خسته نباشید. ممنون از مطالب مفیدی که گذاشتید. سوالی که من دارم اینه برای ایجاد موج سینوسی سه فاز با اختلاف فازهای 120 درجه بایستی از سه پورت AVR استفاده کنم و اعداد رو طوری بچینم که بین سه پورت اختلاف فاز 120 درجه ایجاد بشه؟ و سوال دیگه اینکه می تونم تغییرات فرکانس رو در طول زمان با یک آهنگ خاص و به صورت اتوماتیک ایجاد کنم؟ همچنین خروجی موج سینوسی سه فاز ایجاد شده رو می تونم برای درایو یک اینورتر سه فاز که یک موتور سه فاز رو کنترل می کنه استفاده کنم؟
نویسنده: رضا بداغی تاریخ: ۱۹ خرداد ۱۳۹۹ ساعت: ۱۰:۵۹:۳۰ ب.ظ

سلام. خیلی ممنون. خواهش میکنم. بله. شما از آرایه ای که توی همین پروژه انجام شده استفاده کنید. البته برای این که اختلاف فاز با دقت بالاتری 120 درجه بشه، 255 تا (یا تعدادی دیگه ای) از مقادیر آرایه رو استفاده کنید. که اگه تقسیم بر 3 بشه، خارج قسمتش عدد صحیح بشه. در این صورت توی وقفۀ تایمر به سه تا پورت مقدار میدید. مثلاً اگه از 255 تا مقدارش استفاده کنیم، به این شکل:

PORTA=const_source[ph1];
PORTB= const_source[ph1+85];
PORTC= const_source[ph1+170];
Ph1++;
if (ph1>=255) ph1=0;

از آرایۀ counst source بهتره یه مقدار نزدیک ولتاژ صفر یعنی عدد نزدیک 127 روئ حذف کنید تا نبودنش توی شکل موج خروجی زیاد تأثیرگذار نباشه.

دربارۀ تغییر فرکانس: الان تغییر فرکانس با کلید انجام میشه. شما برنامه ای بنویسید که مثلاً با delay و حلقۀ for یه متغیر مقدارش خطی یا غیر خطی تغییر کنه. و باعث تغییر مقدار delay بشه بعد از این delayی که مقدارش با آهنگ برنامه ریزی شده تغییر میکنه، مقدار فرکانس رو تغییر بدید.

دربارۀ اینورتر هم توجه داشته باشید که اینورتر ولتاژ DC رو به AC تبدیل می کنه. و نمیشه بهش ولتاژ AC داد. مگر این که منظور شما این باشه که یک اینورتر رو باز کنیم و این ولتاژ رو به جایی از مدارش بدیم و اون هم تقویتش کنه. که این هم باید توجه بشه که اینورترها انواع مختلفی دارن. ولی در کل میشه خروجی DAC رو تقویت کرد و ازش یه اینورتر ساخت.

نویسنده: اصغر تاریخ: ۲۷ اردیبهشت ۱۳۹۹ ساعت: ۰۷:۴۶:۰۸ ق.ظ
سلام مهندس ممنون از مدارتون . آیاممکنه یه فرکانس تا حدود 10کیلو هرتز که با پتانسیومتر تغییر کنه با این مدار داشته باشیم؟ اگه ایمیل بدین ممنون میشم .
نویسنده: رضا بداغی تاریخ: ۲۷ اردیبهشت ۱۳۹۹ ساعت: ۱۰:۴۹:۴۵ ب.ظ

سلام. خواهش میکنم. به صورت تئوری بله. اگه مقدار OCR1A رو 3 قرار بدیم، طبق فرمولی که محاسبه کردیم، فرکانس موج سینوسی حدود 10 کیلو هرتز میشه. ولی باید توجه کرد که در این صورت باید پورت IO با فرکانس حدود 2.6 مگاهرتز تغییر وضعیت بده. اگر DAC0800 هم بتونه با این فرکانس ورودی رو دریافت کنه، میکروکنترلر AVR ممکنه نتونه. باید به دیتاشیت یا User Manual های AVR مراجعه کنید و حداکثر قرکانس تغییر وضعیت پایه های IO رو ببینید.

نویسنده: سمیرا تاریخ: ۱۸ اردیبهشت ۱۳۹۹ ساعت: ۰۹:۱۹:۳۲ ق.ظ
وایییی دستتون درد نکنه. کلی با این dac کلنجار رفتم تا آخرش از روی شماتیکی که قرار دادید فهمیدم ترتیب پایه های اون برعکس نام گذاری شده. فرمولی هم نوشتید برای محاسبه خروجی که توی پایان نامهم نوشتم. در کل خیلی ممنونم خیلی کارمو راه انداخت
نویسنده: رضا بداغی تاریخ: ۲۰ اردیبهشت ۱۳۹۹ ساعت: ۰۵:۳۳:۵۸ ب.ظ

خواهش میکنم. موفق باشید. ان شاء الله که مفید بوده باشه.

نویسنده: محمد تاریخ: ۲۵ اسفند ۱۳۹۸ ساعت: ۰۱:۵۷:۳۴ ب.ظ
سلام ممنون از مطلب خوبتون. یه سوال دارم. چرا توی تعریف آرایه const source از volatile استفاده کردید؟ ممنون
نویسنده: رضا بداغی تاریخ: ۲۶ اسفند ۱۳۹۸ ساعت: ۰۱:۴۳:۰۹ ق.ظ

سلام خواهش میکنم. چون از نرم افزار کدویژن برای نوشتن برنامه استفاده کردیم. توی کدویژن برای تعریف متغیر با کلاس حافظۀ اتوماتیک، باید متغیر رو بدون آوردن کلمۀ auto تعریف کنیم. در این صورت ممکنه کامپایلر، کلاس حافظه متغیر رو از نوع رجیستر قرار بده. برای جلوگیری از این خطا باید از volatile استفاده کنیم. البته این کار دلایل دیگه ای هم داره که توی نوشته های «انواع متغیر در زبان برنامه نویسی C» و «کلاس های حافظه در زبان برنامه نویسی C حوزۀ تعریف و طول عمر متغیرها» توضیح داده شدن.

نویسنده: mina askari تاریخ: ۱۹ اسفند ۱۳۹۸ ساعت: ۰۴:۳۹:۱۸ ب.ظ
سلام. من میخوام یک پروژه دارم که امکانات چندانی نداره. توی پروژه از DAC استفاده میشه. من AVR کلاسهای استاد اسدی رو شرکت کردم و AVR رو خوب بلدم. اما سوالی که برام پیش اومده اینه که برم سراغ میکروکنترلرهای ARM STM32 چون خودشون DAC دارن یا اینکه نه با همین AVR انجام بدم؟ ممنون میشم در این مورد راهنماییم کنید.
نویسنده: رضا بداغی تاریخ: ۲۱ اسفند ۱۳۹۸ ساعت: ۱۲:۲۸:۲۷ ق.ظ

سلام. از نظر من اگر توی استفاده از سخت افزار مشکلی ندارید، با همین میکروکنترلر AVR و آی سی های DAC میتونید کار کنید. البته باید شرایط پروژه هم در نظر بگیرد. تعداد بیت های DAC، فرکانس تایمر میکروکنترلر، که بتونید باهاش موج های مختلف با فرکانس های مختلف بسازید و شرایط دیگۀ پروژه. ولی اگه فکر میکنید لازمه که تعداد سخت افزار کمتری استفاده بشه، میتونید از DAC میکروکنترلرهای STM32 استفاده کنید. چون اگه از DAC میکروکنترلرهای STM32 استفاده کنید، یه آی سی کمتر استفاده کردید. یه نکته هم دقت کنید و اون این که اگه میخواید PCB بزنید، ترتیب پایه های DAC0800 (پکیج DIP) جالب نیست و ممکنه باعث بشه برد مدار چاپی دو لایه استفاده کنید. این مورد رو هم در نظر داشته باشید که ممکنه برنامه نویسی میکروکنترلرهای STM32 براتون مشکل تراز برنامه نویسی میکروکنترلرهای AVR باشه.

نویسنده: رسول نظرپور تاریخ: ۱۸ اسفند ۱۳۹۸ ساعت: ۱۱:۲۵:۰۶ ق.ظ
سلام آقای بداغی. یک آیسی DAC با دقت 12 بیت خوب بهم معرفی می کنید؟
نویسنده: رضا بداغی تاریخ: ۱۸ اسفند ۱۳۹۸ ساعت: ۱۱:۴۷:۲۵ ب.ظ

سلام. آی سی DAC7621 یه آی سی DAC با ورودی موازیه و آی سی های DAC60501M و DAC60501Z هم DACهای با ورودی سریال (یعنی I2C و SPI) هستن. هر سه DAC هم 12 بیتی هستن.

فرم پاسخ به دیدگاه