mahnaz 7584 اشتراک گذاری ارسال شده در 6 فروردین، ۱۳۹۲ در این تاپیک قصد داریم چگونگی ساخت دماسنج دیجیتالی و نمایش دما بر روی 7-segment و رقص نور توسط میکرو AVR را اموزش دهیم: قطعات مورد نیاز: میکرو AVR( Atmega 32) : یک عدد سنسور دما LM35 : یک عدد 7-segment (کاتد مشترک) : دو عدد IC 4511 (آی سی مبدل نمایش عدد بر 7-segment ) : دو عدد کریستال8MHz : یک عدد رگولاتور 7805 : 1 عدد خازن 10uf ( جهت استفاده در مدار رگولاتور و Reset ) : سه عدد خازن 12pf ( جهت استفاده درمدار کریستال ): دو عدد خازن 100nf (جهت استفاده در مدار***** انالوگ به دیجیتال ): یک عدد DIP Switch ( جهت LED و مدار reset) : نه عدد سلف 10uf ( جهت استفاده در مدار انالوگ به دیجیتال میکرو) : یک عدد LED ( ترجیحا LED هفت رنگ جهت زیباتر شدن رقص نور) : هشت عدد مقاومت 330 اهم ( جهت اتصال به LED و 7-segment ): بیست و دو عدد مقاومت 10 کیلواهم ( 4عدد جهت اتصال به پایه مشترک 7-segment و 8 عدد جهت pull-up کلیدها) : دوازده عدد مقاومت 4.7 کیلو اهم (جهت استفاده در مدار Reset): یک عدد ترمینال ورودی : یک عد د توضیحات مدار: این مدار از دو قسمت مجزا ساخته می شود که در صورت تمایل می توان تنها یکی از انهارا طراحی نمود . با توجه به تصویر( نمونه مدار ساخته شده) قسمت بالایی مربوط به دما سنج و قسمت پایین ان مربوط به رقص نور می باشد. نمونه مدار اماده: نقشه این مدار توسط بر نامه Altium DXP طراحی شده و برنامه ان در محیط Bascom AVR نوشته شده است در این مدار همانگونه که در نقشه مدار ملاحظه می کنید پایه های طرفین سنسور به زمین و vcc متصل می شوند و میزان دما به صورت انالوگ بر پایه میانی قرار می گیرد این سنسور دما را بر حسب درجه سانتیگراد بر پایه میانی خود قرار میدهد میکرو های AVR دارای مبدل داخلی انالوگ به دیجیتال می باشند که در این نوع میکرو پورت A مبدل انالوگ به دیجیتال می باشد. این دما توسط مدار انالوگ به دیجیتال داخلی میکرو به مقدار دیجیتال تبدیل شده و پس از محاسبات لازم به صورت BCD بر پایه های پورت C قرار میگیرد. در این پورت بیتهای کم ارزش پورت، پینهای (0-3) ،جهت نمایش رقم اول دما و بیتهای پر ارزش ،پینهای (4-7)، جهت نمایش رقم دوم دما به کار رفته اند این پورت (پورت C ) به ورودی دو IC مبدل 4511 متصل می گردد و توسط این مبدلها دما بر روی 7-segment ها نمایش داده میشود وظیفه این ای سی ها تبدیل رقم BCD چهار بیتی (که توسط میکرو بر پایه های ان قرار داده شده) جهت نمایش عدد بر 7-segment می باشد در قسمت پایین مدار ( طبق نمونه مدار اماده) 8 کلید قرار دارد که از سمت راست : کلید اول (کیلد متصل شده به portd.0) : نمایش دما کیلد دوم تا هفتم (کلیدهای متصل شده به portd.1-portd.6) : انواع مختلف رقص نور کلید هشتم ( کلید متصل شده به portd.7): این کلید جهت توقف هر عملیاتی اعم از انواع رقص نور یا نمایش دما بکار میرود و تا زمانی که این کلید فشرده نشود عملیات انتخاب شده متوقف نمی گردد و نمی توان عملیات جدید را اجرا کرد شماتیک مدار: PCB مدار : برنامه ی مدار : $regfile = "m32def.dat" $crystal = 8000000 Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Portc = Output Config Portb = Output Config Portd = Input Dim A As Word Dim C As Byte Dim Sum As Word Dim T As Byte ‘********************** Do If Pind.0 = 1 Then While Pind.7 = 0 Sum = 0 For T = 1 To 200 Step 1 Start Adc A = Getadc(0) Stop Adc Sum = A + Sum Next T A = Sum / 400 C = Makebcd(a) Portc = C Wend End If ‘'***************************** If Pind.1 = 1 Then While Pind.7 = 0 Portc = 1 Portb = 1 Waitms 60 Portb = 128 Waitms 60 Wend End If ‘'******************************** If Pind.2 = 1 Then D = 64 While Pind.7 = 0 Portc = 2 Portb = D Waitms 100 Rotate D , Right , 1 Wend End If ‘'*************************** If Pind.3 = 1 Then D = 1 While Pind.7 = 0 Portb = D Portc = 3 Waitms 100 Rotate D , Left , 1 Wend End If ‘'*************************** If Pind.4 = 1 Then While Pind.7 = 0 D = 255 Portb = D Portc = 4 Wend End If ‘'************************** If Pind.5 = 1 Then While Pind.7 = 0 Portc = 5 Portb = 0 Waitms 30 Portb = 1 Waitms 30 Portb = 3 Waitms 30 Portb = 7 Waitms 30 Portb = 15 Waitms 30 Portb = 31 Waitms 30 Portb = 63 Waitms 30 Portb = 127 Waitms 30 Portb = 255 Waitms 30 Wend End If ‘'************************ If Pind.6 = 1 Then While Pind.7 = 0 Portc = 6 Portb = 255 Waitms 50 Portb = 0 Waitms 50 Wend End If ‘'************************ Portb = 0 Portc = 0 Loop End 'end program نکات : 1. می توانید بجای میکرو پیشنهاد شده از میکرو atmega 16 نیز استفاده کنید فقط باید به این نکته توجه کنید که درنوشتن برنامه نام میکرو را بصورت $regfile = "m16def.dat" تغییر دهید 2. در برنامه نوشته شده دستور12-25 مربوط به مدار دماسنج و دستور 26 الی اخر (به جز دو دستور اخر که جزء اصلی برنامه محسوب می شود) برنامه رقص نور می باشد 3. دستور سوم نیز دربرنامه دماسنج کاربرد دارد 4. مدار ***** انالوگ جهت نویزگیری عملیات انالوگ به دیجیتال برنامه دماسنج مورد استفاده قرار می گیرد 5. سعی کنید برای کارایی بهتر رگولاتور، ولتاژی بین 6-10 ولت به ورودی ترمینال وصل نمایید 6. برای راحتی کار بجای استفاده از 8 مقاومت pull-up می توانید از مقاومتهای شانه ای نیز استفاده نمایید 7. در برنامه نوشته شده شما می توانید برنامه رقص نور دلخواه خود را قرار دهید موفق باشید 8 لینک به دیدگاه
ارسال های توصیه شده