۱۰-مرداد-۱۳۸۹, ۰۲:۲۴:۴۸
صفحهها: 1 2
۱۰-مرداد-۱۳۸۹, ۰۲:۳۵:۲۳
توضیح مدار :
طبقه ولتاژ :
در این طبقه دیود 1N 4007 را داریم که کار این دیود اینست که وقتی سیم های تغذیه بصورت اشتباه وصل شد یعنی جای مثبت و منفی تغذیه عوض شد مدار کار نکند چون اگر این حالت اتفاق بیفتد ممکن است IC ما بسوزد .
در ضمن ولتاژ معکوس این دیود 1000V می باشد یعنی اینکه تا 1000V اگر به صورت معکوس روی این دیود ولتاژ بیفتد دیود نمی سوزد .
پیشنهاد بهتر :
استفاده از یک پل دیودی در ورودی تغذیه پیشنهاد خوبی است که البته در مدار ما اعمال نشده و از همان دیود استفاده کردیم .
در حالت استفاده از پل دیودی اگر سیم مثبت و سیم منفی تغذیه را اشتباه بزنیم در خروجی پل دیودی هیچ تغییری ندارم ، فقط یک مشکل کوچک دارد آن این است که در مسیر دو دیود خواهیم داشت و هر کدام 0.7 ولت ، افت ولتاژ دارند در نتیجه 1.4 ولت بدلیل افت ولتاژ دیودها از ولتاژ ما کم می شود .
طبقه نوسان ساز :
این طبقه شامل IC ، TL 494 میباشد که این IC یک اوسیلاتور است .
ما برای اینکه بخواهیم منبع تغذیه سوییچینگ را برای القای ولتاژ از طبقه پایین به طبقه بالا بسازیم نیاز به فرکانس بالایی داریم و چون فرکانس برق شهر فقط 50HZ میباشد از آن نمی توانیم استفاده کنیم .
پس از مدار نوسان ساز TL494 استفاده می کنیم که برای ما فرکانس 66KHZ را با تنظیم خازنها و مقاومتهای مار فرکانس مورد نظر ما که برای القای ولتاژ به سیم پیچ ثانویه لازم است حداقل 4 یا 5 کیلوهرتز به بالا می باشد تا بتواند برق را خوب القا کند .
بدلیل وجود فاصله هوایی بین سیم پیچ پایین و بالا و همچنین نبودن هسته فریت و .... نیاز به نوسان بالای در سیم پیچ اولیه (پایین ) داریم .
نکته :
چون در مدار ، ما نیاز به جریان خیلی بالایی نداشیم ، از هسته فریت استفاده نکردیم از طرفی در صورت استفاده از هسته فریت باید نوسان ساز طوری طراحی شود که هسته فریت به اشباع نرود یک دلیل دیگر اینست که ما می خواهیم مدار با هر ولتاژی کارکند در صورتیکه اگر از هسته فریت استفاده کنیم اگر ولتاژ ورودی کم و زیاد شود بدلایل گفته شده ممکن است مدار بخوبی کار نکند .
در این آی سی ، پایه های 8 و 11 و 12 که به 12+ ولت وصل اند و پایه های 1و3و4و7و16 که به زمین متصل شده اند برای تغذیه و بایاس آی سی هستند . خازن ها و مقاومتهای متصل به پایه های TL494 برای بایاس آی سی و تنظیم فرکانس نوسان هستند .
خازن 1nf که بین پایه های 4و5 IC است . خازن میلار می باشد که ولتاژ بالاتری دارد و کیفیت بهتری دارد . مقاومت 4/7 k بین پایه های 14 و 15 نیز برای تقسیم ولتاژ بکار می رود .
مقاومت های 270 اهمی برای افت ولتاژ خروجی بکار برده می شود تا اگر ولتاژ بالا بود مقداری روی مقاومتها افت کند .
پایه 10 که خروجی آی سی اسیلاتور و خروجی نوسان ساز ما است به پایه گیت (پایه 1) MOSFET می رود . این آی سی با سوییچ کردن (قطع و وصل کردن ) گیت ترانزیستور فرکانس مورد نظر ما را ایجاد می کند .
طبقه سوییچ :
IRF 540 : این MOSFET می تواند جریان خیلی بالا را قطع و وصل کند .
این نوع ترانزیستور حدود 10 تا 15 آمپر را می تواند سوییچ کند .
ممکن است سوال پیش آید که چرا از ترانزیستور BJT استفاده نکردیم به این دلیل است که چون MOSFET می تواند جریانهای بالا را سوییچ کند ولی BJT ممکن است در اثر عبور جریان های بالا بسوزد مثلا 2N3055 که یک ترانزیستور قدرت است می تواند فقط تا حد 1 آمپر را سوییچ کند ] حجم آن هم در مقایسه با IRF540 بزرگتر است .[ پایه 1 MOSFET همان پایه G گیت است که خروجی TL494 واردا آن می شود و پایه 2 پایه درین است که به سیم پیچ می رود . پایه 3 (پایه سورس ) به زمین متصل است .
طبقه منبع تغذیه سوییچینگ
این طبقه شامل سیم پیچ پایینی (اولیه ) و سیم پیچ بالایی (ثانویه ) است .
در این قسمت سیم پیچ اولیه که یک پالس مربعی با فرکانس 66K از پایه درین MOSFET گرفته است ولتاژ را به سیم پیچ ثانویه القا می کند . که حدود 30 تا 40 ولت AC و 11V و DC است .
طبقه یکسوساز :
در این طبقه که شامل پل دیودی و رگولاتور 7805 است . کار تنظیم و فراهم آوردن ولتاژ 5 ولت برا برای میکرو بر عهده دارد . سیم پیچ ثانویه ولتاژ DC گرفته شده را به پل دیودی میدهد و 11V به وردودی (پایه 1) رگولاتور میدهد پایه دو رگولاتور میدهد پایه 2 رگولاتور که زمین است و ما در پایه خروجی (پایه 3) رگولاتور 5 ولت صاف شده خواهیم داشت .
خازن های C1 و C2 را طوری انتخاب می کنیم که بترتیب ولتاژهای 11 و 5 ولت به بالا را تحمل کند .
خازنهای C1 و C2 علاوه بر صاف کردن ولتاژ ورودی رگولاتور و ولتاژ خروجی آن در مقابل تغییرات ناگهانی ولتاژ از مدار محافظت می کند و جلوی این تغییرات ناگهانی را می گیرد و از قطع شدن ولتاژ خروجی زمانیکه جریان خروجی زیاد کشیده شد جلوگیری می کند و اگر ولتاژ ورودی یک لحظه قطع شد ولتاژ خروجی رگولاتور برقرار باشد .
چرا خازنها ظرفیت پایین هستند ؟ چون فرکانس نوسان خیلی بالاست خازنهای کوچک هم به راحتی می توانند ریپل ولتاژ DC شده را بگیرید پس ما نیازی به خازن با ظرفیت های بالاتر نداریم .
طبقه کنترل :
این طبقه شامل میکرو نترلر AVR ، AT mega8 است که تمام عملیات برنامه نویسی ما روی این میکرو پیاده سازی می شود .
پایه 1 میکور پایه (C6) RESET آن است . پایه 4 (D2) Intrupt صفر است پایه 20 (AV cc) پایه فعال ساز قسمتهای آنالوگ آی سی است که به 5+ ولت وصل است . پایه 22 زمین است .
بین پایه 9 و 10 آی سی یک کریستال ساعت (Real time clock : RTC) داریم که برای ما نوسان می سازد . که با تنظیم تایمر 2 می توانیم هر 1 ثانیه ، زمان ساعت راتنظیم کند (32768 HZ) C3 و C4 خازنهای ریپل گیر هستند و برای جلوگیری از نویز بکار می روند که حدود 22 پیکوفاراد هستند .
سنسورها :
فرستنده IR همیشه روشن می باشد همیشه نور می فرستد . زمانیکه گیرنده IR که در قسمت بالایی مدار قرار دارد ، یک دور زده می شود ، روبه روی این فرستنده قرار می گیرید یک پاس به عنوان Intrupt به پایه 4 آی سی نقش دیود D1 : از دیود بدین منظور استفاده شده است تا تنها ولتاژ مثبت را اجازه وارد شدن به مدار دهد می توان گفت جهت محافظت در برابر اشتباه وصل کردن تغذیه مدار می باشد
سیم پیچ L1 برای تولید میدان مغناطیسی که در قسمت بیرونی هسته فن روی بدنه ب صورت ثابت محکم می شود
آی سی 16 پایه TL 494 به وسیله خازن C وظیفه سوئیچ کردن MOSFET را بر عهده دارد
از یک فرستنده مادون قرمز که در روی بدنه سوار است و گیرنده ان که روی قسمت متحرک قرار دارد برای تشخیص دور وموقعیت ؛ اینتراپتی برای مدار استفاده شده است.
در مدار فوق ابتدا ولتاژ مثبت وارد پایه دیود می شود سپس وارد ای سی TL494 شده این ای سی با سرعت بالا MOSFET را سوئیچ می کند و با سوئیچ کردن MOSFET منفی سیم پیچ L قطع و وصل می شود و در سیم پیچ فرکانسی در حدود KH66 تولید می شود
از انجا که هر چه فرکانس بالاتر باشد القا بیشتر است پس ما ولتاژی حدود 30V متناوب در دو سر سیم پیچ ثانویه یعنی سیم پیچی که در دور موتور فن پیچیده شده است و همراه موتور می چرخد داریم این ولتاژ توسط چهار دیود که به صورت پل به هم متصل شده اند یکسو میشود سپس وارد ورودی آی سی 7805 می شود در دو سر ورودی و خروجی 7805 از خازن هایی جهت صافی و همچنین تامین ضعف ولتاژ استفاده شده است
از خروجی 7805 برای تغذیه آی سی ATMEGA8 استفاده می شود ضمنا قابل ذکر است که LED های مدار مستقیما به PORT های آی سی متصل می شوند.
طبقه ولتاژ :
در این طبقه دیود 1N 4007 را داریم که کار این دیود اینست که وقتی سیم های تغذیه بصورت اشتباه وصل شد یعنی جای مثبت و منفی تغذیه عوض شد مدار کار نکند چون اگر این حالت اتفاق بیفتد ممکن است IC ما بسوزد .
در ضمن ولتاژ معکوس این دیود 1000V می باشد یعنی اینکه تا 1000V اگر به صورت معکوس روی این دیود ولتاژ بیفتد دیود نمی سوزد .
پیشنهاد بهتر :
استفاده از یک پل دیودی در ورودی تغذیه پیشنهاد خوبی است که البته در مدار ما اعمال نشده و از همان دیود استفاده کردیم .
در حالت استفاده از پل دیودی اگر سیم مثبت و سیم منفی تغذیه را اشتباه بزنیم در خروجی پل دیودی هیچ تغییری ندارم ، فقط یک مشکل کوچک دارد آن این است که در مسیر دو دیود خواهیم داشت و هر کدام 0.7 ولت ، افت ولتاژ دارند در نتیجه 1.4 ولت بدلیل افت ولتاژ دیودها از ولتاژ ما کم می شود .
طبقه نوسان ساز :
این طبقه شامل IC ، TL 494 میباشد که این IC یک اوسیلاتور است .
ما برای اینکه بخواهیم منبع تغذیه سوییچینگ را برای القای ولتاژ از طبقه پایین به طبقه بالا بسازیم نیاز به فرکانس بالایی داریم و چون فرکانس برق شهر فقط 50HZ میباشد از آن نمی توانیم استفاده کنیم .
پس از مدار نوسان ساز TL494 استفاده می کنیم که برای ما فرکانس 66KHZ را با تنظیم خازنها و مقاومتهای مار فرکانس مورد نظر ما که برای القای ولتاژ به سیم پیچ ثانویه لازم است حداقل 4 یا 5 کیلوهرتز به بالا می باشد تا بتواند برق را خوب القا کند .
بدلیل وجود فاصله هوایی بین سیم پیچ پایین و بالا و همچنین نبودن هسته فریت و .... نیاز به نوسان بالای در سیم پیچ اولیه (پایین ) داریم .
نکته :
چون در مدار ، ما نیاز به جریان خیلی بالایی نداشیم ، از هسته فریت استفاده نکردیم از طرفی در صورت استفاده از هسته فریت باید نوسان ساز طوری طراحی شود که هسته فریت به اشباع نرود یک دلیل دیگر اینست که ما می خواهیم مدار با هر ولتاژی کارکند در صورتیکه اگر از هسته فریت استفاده کنیم اگر ولتاژ ورودی کم و زیاد شود بدلایل گفته شده ممکن است مدار بخوبی کار نکند .
در این آی سی ، پایه های 8 و 11 و 12 که به 12+ ولت وصل اند و پایه های 1و3و4و7و16 که به زمین متصل شده اند برای تغذیه و بایاس آی سی هستند . خازن ها و مقاومتهای متصل به پایه های TL494 برای بایاس آی سی و تنظیم فرکانس نوسان هستند .
خازن 1nf که بین پایه های 4و5 IC است . خازن میلار می باشد که ولتاژ بالاتری دارد و کیفیت بهتری دارد . مقاومت 4/7 k بین پایه های 14 و 15 نیز برای تقسیم ولتاژ بکار می رود .
مقاومت های 270 اهمی برای افت ولتاژ خروجی بکار برده می شود تا اگر ولتاژ بالا بود مقداری روی مقاومتها افت کند .
پایه 10 که خروجی آی سی اسیلاتور و خروجی نوسان ساز ما است به پایه گیت (پایه 1) MOSFET می رود . این آی سی با سوییچ کردن (قطع و وصل کردن ) گیت ترانزیستور فرکانس مورد نظر ما را ایجاد می کند .
طبقه سوییچ :
IRF 540 : این MOSFET می تواند جریان خیلی بالا را قطع و وصل کند .
این نوع ترانزیستور حدود 10 تا 15 آمپر را می تواند سوییچ کند .
ممکن است سوال پیش آید که چرا از ترانزیستور BJT استفاده نکردیم به این دلیل است که چون MOSFET می تواند جریانهای بالا را سوییچ کند ولی BJT ممکن است در اثر عبور جریان های بالا بسوزد مثلا 2N3055 که یک ترانزیستور قدرت است می تواند فقط تا حد 1 آمپر را سوییچ کند ] حجم آن هم در مقایسه با IRF540 بزرگتر است .[ پایه 1 MOSFET همان پایه G گیت است که خروجی TL494 واردا آن می شود و پایه 2 پایه درین است که به سیم پیچ می رود . پایه 3 (پایه سورس ) به زمین متصل است .
طبقه منبع تغذیه سوییچینگ
این طبقه شامل سیم پیچ پایینی (اولیه ) و سیم پیچ بالایی (ثانویه ) است .
در این قسمت سیم پیچ اولیه که یک پالس مربعی با فرکانس 66K از پایه درین MOSFET گرفته است ولتاژ را به سیم پیچ ثانویه القا می کند . که حدود 30 تا 40 ولت AC و 11V و DC است .
طبقه یکسوساز :
در این طبقه که شامل پل دیودی و رگولاتور 7805 است . کار تنظیم و فراهم آوردن ولتاژ 5 ولت برا برای میکرو بر عهده دارد . سیم پیچ ثانویه ولتاژ DC گرفته شده را به پل دیودی میدهد و 11V به وردودی (پایه 1) رگولاتور میدهد پایه دو رگولاتور میدهد پایه 2 رگولاتور که زمین است و ما در پایه خروجی (پایه 3) رگولاتور 5 ولت صاف شده خواهیم داشت .
خازن های C1 و C2 را طوری انتخاب می کنیم که بترتیب ولتاژهای 11 و 5 ولت به بالا را تحمل کند .
خازنهای C1 و C2 علاوه بر صاف کردن ولتاژ ورودی رگولاتور و ولتاژ خروجی آن در مقابل تغییرات ناگهانی ولتاژ از مدار محافظت می کند و جلوی این تغییرات ناگهانی را می گیرد و از قطع شدن ولتاژ خروجی زمانیکه جریان خروجی زیاد کشیده شد جلوگیری می کند و اگر ولتاژ ورودی یک لحظه قطع شد ولتاژ خروجی رگولاتور برقرار باشد .
چرا خازنها ظرفیت پایین هستند ؟ چون فرکانس نوسان خیلی بالاست خازنهای کوچک هم به راحتی می توانند ریپل ولتاژ DC شده را بگیرید پس ما نیازی به خازن با ظرفیت های بالاتر نداریم .
طبقه کنترل :
این طبقه شامل میکرو نترلر AVR ، AT mega8 است که تمام عملیات برنامه نویسی ما روی این میکرو پیاده سازی می شود .
پایه 1 میکور پایه (C6) RESET آن است . پایه 4 (D2) Intrupt صفر است پایه 20 (AV cc) پایه فعال ساز قسمتهای آنالوگ آی سی است که به 5+ ولت وصل است . پایه 22 زمین است .
بین پایه 9 و 10 آی سی یک کریستال ساعت (Real time clock : RTC) داریم که برای ما نوسان می سازد . که با تنظیم تایمر 2 می توانیم هر 1 ثانیه ، زمان ساعت راتنظیم کند (32768 HZ) C3 و C4 خازنهای ریپل گیر هستند و برای جلوگیری از نویز بکار می روند که حدود 22 پیکوفاراد هستند .
سنسورها :
فرستنده IR همیشه روشن می باشد همیشه نور می فرستد . زمانیکه گیرنده IR که در قسمت بالایی مدار قرار دارد ، یک دور زده می شود ، روبه روی این فرستنده قرار می گیرید یک پاس به عنوان Intrupt به پایه 4 آی سی نقش دیود D1 : از دیود بدین منظور استفاده شده است تا تنها ولتاژ مثبت را اجازه وارد شدن به مدار دهد می توان گفت جهت محافظت در برابر اشتباه وصل کردن تغذیه مدار می باشد
سیم پیچ L1 برای تولید میدان مغناطیسی که در قسمت بیرونی هسته فن روی بدنه ب صورت ثابت محکم می شود
آی سی 16 پایه TL 494 به وسیله خازن C وظیفه سوئیچ کردن MOSFET را بر عهده دارد
از یک فرستنده مادون قرمز که در روی بدنه سوار است و گیرنده ان که روی قسمت متحرک قرار دارد برای تشخیص دور وموقعیت ؛ اینتراپتی برای مدار استفاده شده است.
در مدار فوق ابتدا ولتاژ مثبت وارد پایه دیود می شود سپس وارد ای سی TL494 شده این ای سی با سرعت بالا MOSFET را سوئیچ می کند و با سوئیچ کردن MOSFET منفی سیم پیچ L قطع و وصل می شود و در سیم پیچ فرکانسی در حدود KH66 تولید می شود
از انجا که هر چه فرکانس بالاتر باشد القا بیشتر است پس ما ولتاژی حدود 30V متناوب در دو سر سیم پیچ ثانویه یعنی سیم پیچی که در دور موتور فن پیچیده شده است و همراه موتور می چرخد داریم این ولتاژ توسط چهار دیود که به صورت پل به هم متصل شده اند یکسو میشود سپس وارد ورودی آی سی 7805 می شود در دو سر ورودی و خروجی 7805 از خازن هایی جهت صافی و همچنین تامین ضعف ولتاژ استفاده شده است
از خروجی 7805 برای تغذیه آی سی ATMEGA8 استفاده می شود ضمنا قابل ذکر است که LED های مدار مستقیما به PORT های آی سی متصل می شوند.
۱۰-مرداد-۱۳۸۹, ۰۲:۴۸:۱۲
برنامه تحت بسکام :
کد php:
$regfile = "m8def.dat" : $crystal = 8000000
'inner LED d7 d6 d5 d4 d3 d1 d0 out LED
Ddrc = &B11111111
Ddrd = &B11111011
Ddrb = &B01111111
'Timer0 is used for refresh LEDs and go on out_data() matrix
Config Timer0 = Timer , Prescale = 64 : Enable Timer0 : On Timer0 Refresh
Config Int0 = Rising : Enable Int0 : On Int0 Rpm_trigger
'Timer1 is used for mesearing of a period of rotation
Config Timer1 = Timer , Prescale = 64 : Enable Timer1
'Clock timimng
Config Timer2 = Timer , Prescale = 128 , Async = On : On Timer2 Incr_sec : Enable Timer2
Enable Interrupts
Dim Second As Byte , Minute As Byte , Hour As Byte
Dim Trigger As Bit
Dim M As Byte , Q As Long , S As Bit
Dim Out_data(240) As Byte
Dim Tk As Single , Z As Single , T As Single
Dim T_temp As Single
Dim Ts As Single
Dim Timer_temp As Byte
Dim Temp2 As Byte
Dim Temp As Byte
Dim I As Byte , J As Byte , N As Byte
Dim Input_string(10) As String * 1
Dim A As Byte
Dim Out_temp1 As Byte , Out_temp2 As Byte
Dim Temp1 As Byte , Temp4 As Byte
Q = 0 : S = 1 : Tk = 20 : N = 10
Minute = 10 : Hour = 10
Start Timer2
Do
Input_string(1) = " "
Input_string(2) = " "
Input_string(3) = "S"
Input_string(4) = "A"
Input_string(5) = "L"
Input_string(6) = "A"
Input_string(7) = "M"
Input_string(8) = " "
Input_string(9) = " "
Temp2 = 0
Do
Incr Temp2
Out_data(temp2) = 0
Loop Until Temp2 > 239
Waitms 2000
I = 1 : A = 115
Q = 0
Do
If Input_string(i) < "H" Then
Temp = Input_string(i) : Temp = Temp - 32 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print1)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
Elseif Input_string(i) < "p" Then
Temp = Input_string(i) : Temp = Temp - 72 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print2)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
Else
Temp = Input_string(i) : Temp = Temp - 112 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print3)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
End If
Loop Until I = N
Wait 10
'-------------------------------------------------------------------------------
Input_string(1) = " "
Input_string(2) = "I"
Input_string(3) = "R"
Input_string(4) = "A"
Input_string(5) = "N"
Input_string(6) = "L"
Input_string(7) = "E"
Input_string(8) = "D"
Input_string(9) = " "
Temp2 = 0
Do
Incr Temp2
Out_data(temp2) = 0
Loop Until Temp2 > 239
Waitms 2000
I = 1 : A = 115
Q = 0
Do
If Input_string(i) < "H" Then
Temp = Input_string(i) : Temp = Temp - 32 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print1)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
Elseif Input_string(i) < "p" Then
Temp = Input_string(i)
Temp = Temp - 72
Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print2)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
Else
Temp = Input_string(i) : Temp = Temp - 112 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print3)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
End If
Loop Until I = N
Wait 10
'-------------------------------------------------------------------------------
Input_string(1) = "T"
Input_string(2) = "3"
Input_string(3) = "R"
Input_string(4) = "!"
Input_string(5) = "P"
Input_string(6) = "3"
Input_string(7) = "0"
Input_string(8) = "0"
Input_string(9) = "0"
Temp2 = 0
Do
Incr Temp2
Out_data(temp2) = 0
Loop Until Temp2 > 239
Waitms 2000
I = 1 : A = 115
Q = 0
Do
If Input_string(i) < "H" Then
Temp = Input_string(i) : Temp = Temp - 32 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print1)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
Elseif Input_string(i) < "p" Then
Temp = Input_string(i)
Temp = Temp - 72
Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print2)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
Else
Temp = Input_string(i) : Temp = Temp - 112 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print3)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
End If
Loop Until I = N
Wait 10
'-------------------------------------------------------------------------------
Input_string(1) = " "
Input_string(2) = " "
Input_string(3) = "F"
Input_string(4) = "O"
Input_string(5) = "R"
Input_string(6) = "U"
Input_string(7) = "M"
Input_string(8) = " "
Input_string(9) = " "
Temp2 = 0
Do
Incr Temp2
Out_data(temp2) = 0
Loop Until Temp2 > 239
Waitms 2000
I = 1 : A = 115
Q = 0
Do
If Input_string(i) < "H" Then
Temp = Input_string(i) : Temp = Temp - 32 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print1)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
Elseif Input_string(i) < "p" Then
Temp = Input_string(i) : Temp = Temp - 72 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print2)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
Else
Temp = Input_string(i) : Temp = Temp - 112 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print3)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
End If
Loop Until I = N
Wait 10
'-------------------------------------------------------------------------------
Input_string(1) = " "
Input_string(2) = "8"
Input_string(3) = "9"
Input_string(4) = "/"
Input_string(5) = "0"
Input_string(6) = "5"
Input_string(7) = "/"
Input_string(8) = "0"
Input_string(9) = "9"
Temp2 = 0
Do
Incr Temp2
Out_data(temp2) = 0
Loop Until Temp2 > 239
Waitms 2000
I = 1 : A = 115
Q = 0
Do
If Input_string(i) < "H" Then
Temp = Input_string(i) : Temp = Temp - 32 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print1)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
Elseif Input_string(i) < "p" Then
Temp = Input_string(i) : Temp = Temp - 72 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print2)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
Else
Temp = Input_string(i) : Temp = Temp - 112 : Temp = Temp * 6
J = 0
Do
Out_temp1 = Lookup(temp , Data_print3)
Out_temp2 = Out_temp1 And &B11111100
Out_temp2 = Out_temp2 * 2
Out_temp1 = Out_temp1 And &B00000011
Out_data(a) = Out_temp1 + Out_temp2
A = A + 2 : Incr J : Incr Temp
Loop Until J = 6
Incr I
End If
Loop Until I = N
Wait 11
'-------------------------------------------------------------------------------
'Show Clock
A = 0
Do
S = 0
Temp2 = 0
Do
Incr Temp2
Out_data(temp2) = 0
Loop Until Temp2 > 239
Temp2 = Hour * 20
Temp2 = Temp2 + 1
Temp2 = 0 + Temp2
Out_data(temp2) = &B00100000
Out_data(temp2 + 2) = &B01000000 : Out_data(temp2 -2) = &B01000000
Out_data(temp2 + 1) = &B01000000 : Out_data(temp2 -1) = &B01000000
Out_data(temp2 + 3) = &B10000000 : Out_data(temp2 -3) = &B10000000
Out_data(temp2 + 4) = &B10000000 : Out_data(temp2 -4) = &B10000000
Temp2 = Minute * 4
Temp2 = Temp2 + 1
Temp2 = 0 + Temp2
Out_data(temp2) = &B11111000
Out_data(temp2 + 2).4 = 1 : Out_data(temp2 -2).4 = 1
Out_data(temp2 + 1) = &B11110000 : Out_data(temp2 -1) = &B11110000
Out_data(temp2 + 2) = &B11100000 : Out_data(temp2 -2) = &B11100000
Temp2 = Second * 4
Temp2 = Temp2 + 1
Temp2 = 0 + Temp2
Out_data(temp2) = &B11111111
Out_data(temp2 + 2).1 = 1 : Out_data(temp2 -2).1 = 1
Waitms 400
Incr A
Loop Until A > 200
S = 1
Loop
'===============================================================================
Rpm_trigger:
Stop Timer0 : Stop Timer1
'calculate time of one rotation
T_temp = Timer1 / 4000000 : T = T_temp * 64
Ts = T / 120 : Ts = Ts * 62500
Timer_temp = Ts - 1 : Timer_temp = Timer_temp / 2
Timer1 = 0 : Start Timer1
M = 0
If S = 1 Then
Incr Q : M = M + Q
If Q = 253 Then Q = 0
End If
Trigger = 1 : Timer0 = 252 : Start Timer0
Return
'===============================================================================
Refresh:
Timer0 = 255 - Timer_temp
If M > 239 Then :
Trigger = 0
Else :
Incr M
End If
If Trigger = 1 Then
Portb.2 = 0
Temp1 = M
If S = 0 Then :
' Portd = Out_data(temp1)
If Out_data(temp1).7 = 1 Then :
Portc = 255
Set Portb.0
Else :
Portc = 0
Reset Portb.0
End If
Z = M + 19
If Tk = Z Then :
Portb.2 = 1 : Tk = Tk + 20
If Tk = 260 Then Tk = 20
End If
End If
Temp4 = Out_data(temp1)
Portd.0 = Temp4.0
Portd.1 = Temp4.1 : Portd.3 = Temp4.3
Portd.4 = Temp4.4 : Portd.5 = Temp4.5
Portd.6 = Temp4.6 : Portd.7 = Temp4.7
Else :
Portc = 0 : Portb.0 = 0 : Portd = 0
End If
Return
'===============================================================================
'Clock Program
Incr_sec:
Incr Second
If Second > 59 Then :
Second = 0
Incr Minute
If Minute > 59 Then :
Minute = 0
Incr Hour
If Hour > 11 Then :
Hour = 0
End If
End If
End If
'If S = 0 Then Toggle Portb.1
Return
'===============================================================================
Data_print1:
'32_Blank:
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B0
'33_Tajjob:
Data &B00000000 , &B00000000 , &B01011111 , &B00000000 , &B00000000 , &B0
'34_Double_coat:
Data &B00000111 , &B00000111 , &B00000000 , &B00000000 , &B00000000 , &B0
'35_Sharp:
Data &B00010100 , &B01111111 , &B00010100 , &B01111111 , &B00010100 , &B0
'36_Daller:
Data &B00000100 , &B00101010 , &B01101011 , &B00101010 , &B00010000 , &B0
'37_Percent:
Data &B00100011 , &B00010011 , &B00001000 , &B01100100 , &B01100010 , &B0
'38_&:
Data &B00110110 , &B01001001 , &B01010101 , &B00100010 , &B01010000 , &B0
'39_Single_coat:
Data &B00000101 , &B00000011 , &B00000000 , &B00000000 , &B00000000 , &B0
'40_(:
Data &B00000000 , &B00011100 , &B00100010 , &B01000001 , &B00000000 , &B0
'41_):
Data &B00000000 , &B01000001 , &B00100010 , &B00011100 , &B00000000 , &B0
'42_*:
Data &B00010100 , &B00001000 , &B00111110 , &B00001000 , &B00010100 , &B0
'43_+:
Data &B00001000 , &B00001000 , &B00111110 , &B00001000 , &B00001000 , &B0
'44_Camma:
Data &B00000000 , &B00110110 , &B00110110 , &B00000000 , &B00000000 , &B0
'45_Dash:
Data &B00000000 , &B00001000 , &B00001000 , &B00001000 , &B00000000 , &B0
'46_Dot:
Data &B00000000 , &B01100000 , &B01100000 , &B00000000 , &B00000000 , &B0
'47_Slash:
Data &B00100000 , &B00010000 , &B00001000 , &B00000100 , &B00000010 , &B0
'0:
Data &B00111110 , &B01010001 , &B01001001 , &B01000101 , &B00111110 , &B0
'1:
Data &B00000000 , &B01000010 , &B01111111 , &B01000000 , &B00000000 , &B0
'2:
Data &B01000010 , &B01100001 , &B01010001 , &B01001001 , &B01000110 , &B0
'3:
Data &B00100001 , &B01001001 , &B01001101 , &B01001011 , &B00110001 , &B0
'4:
Data &B00011000 , &B00010100 , &B00010010 , &B01111111 , &B00010000 , &B0
'5:
Data &B00100111 , &B01000101 , &B01000101 , &B01000101 , &B00111001 , &B0
'6:
Data &B00111100 , &B01001010 , &B01001001 , &B01001001 , &B00110000 , &B0
'7:
Data &B00000001 , &B01110001 , &B00001001 , &B00000101 , &B00000011 , &B0
'8:
Data &B00110110 , &B01001001 , &B01001001 , &B01001001 , &B00110110 , &B0
'9:
Data &B00000110 , &B01001001 , &B01001001 , &B00101001 , &B00011110 , &B0
'58_::
Data &B00000000 , &B00011011 , &B00011011 , &B00000000 , &B00000000 , &B0
'59_;:
Data &B00000000 , &B01010110 , &B00110110 , &B00000000 , &B00000000 , &B0
'60_<:
Data &B00001000 , &B00010100 , &B00100010 , &B01000001 , &B00000000 , &B0
'61_=:
Data &B00010100 , &B00010100 , &B00010100 , &B00010100 , &B00010100 , &B0
'62_>:
Data &B00000000 , &B01000001 , &B00100010 , &B00010100 , &B00001000 , &B0
'63_?:
Data &B00000010 , &B00000001 , &B01010001 , &B00001001 , &B00000110 , &B0
'64_@:
Data &B00110010 , &B01001001 , &B01111001 , &B01000001 , &B00111110 , &B0
'65_A:
Data &B01111100 , &B00001010 , &B00001001 , &B00001010 , &B01111100 , &B0
'66_B:
Data &B01111111 , &B01001001 , &B01001001 , &B01001001 , &B00110110 , &B0
'67_C:
Data &B00111110 , &B01000001 , &B01000001 , &B01000001 , &B00100010 , &B0
'68_D:
Data &B01111111 , &B01000001 , &B01000001 , &B01000001 , &B00111110 , &B0
'69_E:
Data &B01111111 , &B01001001 , &B01001001 , &B01001001 , &B01000001 , &B0
'70_F:
Data &B01111111 , &B00001001 , &B00001001 , &B00001001 , &B00000001 , &B0
'71_G:
Data &B00111110 , &B01000001 , &B01000001 , &B01010001 , &B00110010 , &B0
Data_print2:
'72_H:
Data &B01111111 , &B00001000 , &B00001000 , &B00001000 , &B01111111 , &B0
'73_I:
Data &B00000000 , &B01000001 , &B01111111 , &B01000001 , &B00000000 , &B0
'74-J:
Data &B00100000 , &B01000000 , &B01000001 , &B00111111 , &B00000001 , &B0
'75_K:
Data &B01111111 , &B00001000 , &B00010100 , &B00100010 , &B01000001 , &B0
'76_L:
Data &B01111111 , &B01000000 , &B01000000 , &B01000000 , &B01000000 , &B0
'77_M:
Data &B01111111 , &B00000110 , &B00011000 , &B00000110 , &B01111111 , &B0
'78_N:
Data &B01111111 , &B00000100 , &B00001000 , &B00010000 , &B01111111 , &B0
'79_O:
Data &B00111110 , &B01000001 , &B01000001 , &B01000001 , &B00111110 , &B0
'80_P:
Data &B01111111 , &B00001001 , &B00001001 , &B00001001 , &B00000110 , &B0
'81_Q:
Data &B00111110 , &B01000001 , &B01010001 , &B00100001 , &B01011110 , &B0
'82_R:
Data &B01111111 , &B00001001 , &B00011001 , &B00101001 , &B01000110 , &B0
'83_S:
Data &B00100110 , &B01001001 , &B01001001 , &B01001001 , &B00110010 , &B0
'84_T:
Data &B00000001 , &B00000001 , &B01111111 , &B00000001 , &B00000001 , &B0
'85_U:
Data &B00111111 , &B01000000 , &B01000000 , &B01000000 , &B00111111 , &B0
'86_V:
Data &B00011111 , &B00100000 , &B01000000 , &B00100000 , &B00011111 , &B0
'87_W:
Data &B00111111 , &B01000000 , &B00111000 , &B01000000 , &B00111111 , &B0
'88_X:
Data &B01100011 , &B00010100 , &B00001000 , &B00010100 , &B01100011 , &B0
'89_Y:
Data &B00000011 , &B00000100 , &B01111000 , &B00000100 , &B00000011 , &B0
'90_Z:
Data &B01100001 , &B01010001 , &B01001001 , &B01000101 , &B01000011 , &B0
'91_[:
Data &B00000000 , &B01111111 , &B01000001 , &B01000001 , &B00000000 , &B0
'92_\:
Data &B00000010 , &B00000100 , &B00001000 , &B00010000 , &B00100000 , &B0
'93_]:
Data &B00000000 , &B01000001 , &B01000001 , &B01111111 , &B00000000 , &B0
'94_^:
Data &B00000100 , &B00000010 , &B00000001 , &B00000010 , &B00000100 , &B0
'95_Underline:
Data &B01000000 , &B01000000 , &B01000000 , &B01000000 , &B01000000 , &B0
'96_`:
Data &B00000000 , &B00000001 , &B00000010 , &B00000100 , &B00000000 , &B0
'97_a:
Data &B00100000 , &B01010100 , &B01010100 , &B01010100 , &B01111000 , &B0
'98_b:
Data &B01111111 , &B01001000 , &B01000100 , &B01000100 , &B00111000 , &B0
'99_c:
Data &B00111000 , &B01000100 , &B01000100 , &B01000100 , &B00100000 , &B0
'100_d:
Data &B00111000 , &B01000100 , &B01000100 , &B01001000 , &B01111111 , &B0
'101_e:
Data &B00111000 , &B01010100 , &B01010100 , &B01010100 , &B00011000 , &B0
'102_f:
Data &B00001000 , &B01111110 , &B00001001 , &B00000001 , &B00000010 , &B0
'103_g:
Data &B00100110 , &B01001001 , &B01001001 , &B01001001 , &B00111111 , &B0
'104_h:
Data &B01111111 , &B00001000 , &B00000100 , &B00000100 , &B01111000 , &B0
'105_i:
Data &B00000000 , &B01000100 , &B01111101 , &B01000000 , &B00000000 , &B0
'106_j:
Data &B00000000 , &B00100000 , &B01000000 , &B01000100 , &B00111101 , &B0
'107_k:
Data &B01111111 , &B00010000 , &B00101000 , &B01000100 , &B00000000 , &B0
'108_l:
Data &B00000000 , &B01000001 , &B01111111 , &B01000000 , &B00000000 , &B0
'109_m:
Data &B01111100 , &B00000100 , &B00011000 , &B00000100 , &B01111000 , &B0
'110_n:
Data &B01111100 , &B00001000 , &B00000100 , &B00000100 , &B01111000 , &B0
'111_o:
Data &B00111000 , &B01000100 , &B01000100 , &B01000100 , &B00111000 , &B0
Data_print3:
'112_p:
Data &B01111100 , &B00010100 , &B00010100 , &B00010100 , &B00001000 , &B0
'113_q:
Data &B00001000 , &B00010100 , &B00010100 , &B00011000 , &B01111100 , &B0
'114_r:
Data &B01111100 , &B00001000 , &B00000100 , &B00000100 , &B00001000 , &B0
'115_s:
Data &B01001000 , &B01010100 , &B01010100 , &B01010100 , &B00100000 , &B0
'116_t:
Data &B00000010 , &B00111111 , &B01000010 , &B01000000 , &B00100000 , &B0
'117_u:
Data &B00111100 , &B01000000 , &B01000000 , &B00100000 , &B01111100 , &B0
'118_v:
Data &B00011100 , &B00100000 , &B01000000 , &B00100000 , &B00011100 , &B0
'119_w:
Data &B00111100 , &B01000000 , &B00110000 , &B01000000 , &B00111100 , &B0
'120_x:
Data &B01000100 , &B00101000 , &B00010000 , &B00101000 , &B01000100 , &B0
'121_y:
Data &B00001100 , &B01010000 , &B01010000 , &B01010000 , &B00111100 , &B0
'122_z:
Data &B01000100 , &B01100100 , &B01010100 , &B01001100 , &B01000100 , &B0
'123_{:
Data &B00000000 , &B00001000 , &B00110110 , &B01000001 , &B00000000 , &B0
'124_|:
Data &B00000000 , &B00000000 , &B01111111 , &B00000000 , &B00000000 , &B0
'125_}:
Data &B00000000 , &B01000001 , &B00110110 , &B00001000 , &B00000000 , &B0
'126_~:
Data &B00000010 , &B00000001 , &B00000010 , &B00000001 , &B00000000 , &B0
توضیح برنامه :
در ابتدای برنامه میکروکنترلر خود که ATMEGA8 معرفی می کنیم بعد کریستال داخلی آی سی که ما 4 مگا هرتز در نظر گرفته ایم مشخص می کنیم حال با توجه به تعداد LED ها PORT های ورودی و خروجی آی سی را تعیین می کنیم
در پروژه ما تمامی پورت C خروجی وپورت D به جز PIND.2 که INTERUPT است بقیه خروجی هستند پورت B به غیر از B6 و B7 که کریستال ساعت متصل می شودبقیه پین ها خروجی هستند
در ادامه تایمر ها را فعال می کنیم از تایمر صفر به عنوان INTERUPT و از تایمر یک به عنوان شمارنده برای مقایسه و از تایمر دو به عنوان نوسان ساز یک ثانیه جهت استفاده در ساعت سیستم استفاده می کنیم که این تایمر از خارج باید به کریستال32768 هرتز متصل شود
کد:
S 1 = HZ 32768= 128/4
سپس اینتراپت سراسری را فعال کرده و متغیرهای برنامه را تعریف می کنیم یک آرایه 240 تایی از نوع بایت به نام out_data(240) تشکیل داده برای اشاره به out_data یک متغیر به نام temp2 تعریف می کنیم ابتدا temp2 را صفر می کنیم سپس وارد d0 شده و temp2 را یکی اضافه می کنیم تا زمانیکه temp2 بیشتر از 239 نشده out_data رابرابر صفر می کنیم یعنی در این قسمت از دستورها کار پاک کردن صفحه نمایش را انجام می دهیم که به مدت 3 ثانیه طول می کشد
جدول کدهای اسکی را در جدول lookup table به سه قسمت تقسیم شده است:
برای کدهای 32 تا 71 data print 1
برای کدهای 72 تا 111 data print 2
برای کدهای 112 تا 126 data print3
برای کدهای 72 تا 111 data print 2
برای کدهای 112 تا 126 data print3
با شرط H> hnput string(i) و else محدوده حرف مورد نظرمان را مشخص می کنیم که در کدام data print قرار گرفته سپس ان را وارد out_data می کنیم و این کار را 6 بار انجام می دهیم تا یک حرف کامل وارد out_data شود و بین هر بار انجام این کار یک خانه out_data راخالی می گذاریم وتا زمانیکهI=N شود ابن کار را ادامه می دهیم
کد php:
N=10
I=1
Incr I Loop until I=N
سپس 12 ثانیه تاخیر انداخته ایم تایمر ها کار خود را انجام می دهند و بدین ترتیب کدها واکشی شده در قسمت نمایش روی صفحه نمایش دیده می شوند در هر دور سنسورهای فرستنده و گیرنده همدیگر را تریگر می کنند که باعث می شود اینتراپت صفحه فعال می شود و به قسمت rpm_trigger وارد شویم که در اینجا زمان یک دور کامل توسط تایمر 1 اندازه گیری می شود و زمان هر 240/1 محاسبه می شود حال تایمر را صفر کرده تا برای اندازه گیری دور بعد اماده باشد در ادامه وارد قسمت نمایش می شویم .
اگر بخواهیم دیتا را نمایش دهیم S=1 می کنیم که در قسمت وسط صفحه نماش پورت مربوطه خاموش می باشد واطلاعات در پورت بالای صفحه نمایش یعنی پورت C,B نمایش داده می شوند همچنین شیفت باینری اطلاعات که با انجام تقسیم بر 2 صورت مگیرددر این قسمت می باشد اگر S=0 باشد چون می خواهیم ساعت نمایش دهیم پس قسمت وسط صفحه نمایش روشن می شود اما دیگر شیفت نمی دهیم چون ساعت در برنامه خودش به صورت ثانیه شمار حرکت می کند
برای ساعت برنامه ای نوشته ایم که با کمک تایمر هر یک ثانیه عمل شیفت انجام شود در قسمت اخر تمام اطلاعات موجود در متغیر ها رادر پورت های D,C,B می ریزیم و نمایش می دهیم و بعد نمایش انها را صفر می کنیم برای اطلاعات جدید؛قابل به ذکر است که با هر بار فعال شدن تایمر 2 یک ثانیه به ساعت سیستم اضافه می شود.
۱۰-مرداد-۱۳۸۹, ۰۳:۰۷:۳۴
عملکرد برنامه :
احیانا اگه عکس فلوچارتهای برنامه باز نشد می تونین در پیوست دریافتشون کنین !!
احیانا اگه عکس فلوچارتهای برنامه باز نشد می تونین در پیوست دریافتشون کنین !!
۱۰-مرداد-۱۳۸۹, ۰۳:۰۸:۰۶
۱۳-مرداد-۱۳۸۹, ۰۳:۴۳:۵۶
یه چند تا نکته این وسط هست من باید بگم !
1- اصلا برنامه مال من نیست ولی خیلی تغییرات دادم و بهینه تر شده الان و نمایش ساعتش هم قشنگ تر و برنامه هم یه خورده سبک تر شده !!!
2- پست های بی ربط به زودی پاک میشه !
3- لطفا یکی شروع به ساخت کنه که من در حین ساخت نکات رو بگم و ایشون هم عکسهاشو بذاره !
الان عملا با این متن هایی که گفته شده گیج میشین !
4- مدار فرستنده هر نوسان سازی می تونه باشه و خودتون محدود نکنین !!
5- این مدار جوات ترین مدار تو کلاس ما بودش و هر چی میشد بچه ها اینو ارائه میکردن !!!
چون درس ما دیگه تموم شد واسه همون عمومیش کردم !!!
6- در ضمن محمود جان اون بیست تومان واسه کرایه مدار جهت ارائه به استاد بود ! ( یعنی دوباره باید مدارو بر میگردوندن )
7- چون عدد مقدسیه واسه همین گذاشتمش !!!
1- اصلا برنامه مال من نیست ولی خیلی تغییرات دادم و بهینه تر شده الان و نمایش ساعتش هم قشنگ تر و برنامه هم یه خورده سبک تر شده !!!
2- پست های بی ربط به زودی پاک میشه !
3- لطفا یکی شروع به ساخت کنه که من در حین ساخت نکات رو بگم و ایشون هم عکسهاشو بذاره !
الان عملا با این متن هایی که گفته شده گیج میشین !
4- مدار فرستنده هر نوسان سازی می تونه باشه و خودتون محدود نکنین !!
5- این مدار جوات ترین مدار تو کلاس ما بودش و هر چی میشد بچه ها اینو ارائه میکردن !!!
چون درس ما دیگه تموم شد واسه همون عمومیش کردم !!!
6- در ضمن محمود جان اون بیست تومان واسه کرایه مدار جهت ارائه به استاد بود ! ( یعنی دوباره باید مدارو بر میگردوندن )
7- چون عدد مقدسیه واسه همین گذاشتمش !!!
۱۳-مرداد-۱۳۸۹, ۰۸:۵۱:۴۵
اگه یکی زحمت اینو بکشه فقط به جای mega8 از 64 استفاده کنه LED ها رو هم smd کار کنه البته ۳ رنگ و یه چند تا هم بیشتر کنه LED ها رو
منم برنامه ۳ رنگش رو می نویسم
منم برنامه ۳ رنگش رو می نویسم
۱۳-مرداد-۱۳۸۹, ۱۳:۵۰:۰۶
واسه سه رنگ پیشنهاد می کنم حتما فیلم زیر رو ببینید :
دانلود از ایرانویج : http://www.iranled.com/forum/attachment.php?aid=5155
دانلود از رپیدشیر : http://rapidshare.com/files/405792783/Ne..._seen_.rar
منبع : http://www.iranled.com/forum/showthread.php?tid=17808&pid=129241#pid129241
و با مگا 64 هم کم میاد !
خروجی pwm کم داره که بشه نور همه led ها رو کنترل کرد !!!!!
مگر اینکه نور کلی رو کنترل کرد !!!
دانلود از ایرانویج : http://www.iranled.com/forum/attachment.php?aid=5155
دانلود از رپیدشیر : http://rapidshare.com/files/405792783/Ne..._seen_.rar
منبع : http://www.iranled.com/forum/showthread.php?tid=17808&pid=129241#pid129241
و با مگا 64 هم کم میاد !
خروجی pwm کم داره که بشه نور همه led ها رو کنترل کرد !!!!!
مگر اینکه نور کلی رو کنترل کرد !!!
۱۴-مرداد-۱۳۸۹, ۱۲:۰۰:۲۹
64 گفتم به خاطر تعداد پایه ها برای کلاک هم یکم باید اور کلاک کنی یکمی هم ساده تر از اون فیلمه پیاده کنی حل می شه
کار نشدی نیست یکی PCB رو بزنه تست می کنیم
کار نشدی نیست یکی PCB رو بزنه تست می کنیم
۱۵-مرداد-۱۳۸۹, ۱۲:۳۶:۲۷
(۱۰-مرداد-۱۳۸۹, ۰۲:۲۴:۴۸)t3r!p3000 نوشته است: [ -> ]
مدار تولید فرکانس 66 کیلوهرتز !
برای سیم پیچ بیرونی(القا گر)
علی جون درمورد L1 و L2 یکم بیشتر توضیح میدی ...
اندازشون /قطرشون /طولشون /نحوه بستنشون دور فن و....
۱۵-مرداد-۱۳۸۹, ۱۵:۲۸:۳۱
رسول جون هر چی شد !
فقط ولتاژ رو القا کنه !!!
دوستان یه هفته دست نگه دارین !
دارم برنامه و نقشه رو اصلاحات اساسی می دم !!!
توضیحات و فایل ها مورد نیاز رو کامل می ذارم !!
فقط یه خورده وقت می خوام !!!
قسمت فرستنده رو هم کلا بهم ریختم و از 4069 استفاده کردم !!!
این مانور تو atmega8 رو تموم کنیم فلان !
عمری بود بریم سراغ atmega64 !!( قابل توجه هادی جون ) !!!
فقط ولتاژ رو القا کنه !!!
دوستان یه هفته دست نگه دارین !
دارم برنامه و نقشه رو اصلاحات اساسی می دم !!!
توضیحات و فایل ها مورد نیاز رو کامل می ذارم !!
فقط یه خورده وقت می خوام !!!
قسمت فرستنده رو هم کلا بهم ریختم و از 4069 استفاده کردم !!!
این مانور تو atmega8 رو تموم کنیم فلان !
عمری بود بریم سراغ atmega64 !!( قابل توجه هادی جون ) !!!
صفحهها: 1 2