پروژه AVR ساعت با ماژول DS۳۲۳۱ و سون سگمنت : ساعت با سون سگمنت و ماژول DS3231 >> والا این پروژه AVR رو برا بچه های دانشگامون درست کرده بودم…گفتم اینجا هم بزارم…
شماتیک پروژه
توجه : این پروژه تو پروتئوس اجرا نمیشه…دلیلش رو هم حال ندارم بگم …. ولی اگه خواستین تو پروتئوس اجرا بشه به جای ماژول DS3231 در پروتئوس میتونید از DS1307 استفاده کنید.
اینم از کدهای پروژه
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
#include <mega16.h> #include <i2c.h> #include <ds1307.h> #include <delay.h> #include <stdlib.h> #asm .equ __i2c_port=0x1b ;PORTA .equ __sda_bit=1 .equ __scl_bit=0 #endasm #include <i2c.h> #asm .equ __lcd_port=0x18 ;PORTB #endasm #include <lcd.h> unsigned char cathode_seg[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; /* unsigned char rtc_read(unsigned char address); void rtc_write(unsigned char address,unsigned char data); void rtc_init(unsigned char rs,unsigned char sqwe,unsigned char out); void rtc_get_time(unsigned char *hour,unsigned char *min,unsigned char *sec); void rtc_set_time(unsigned char hour,unsigned char min,unsigned char sec); void rtc_get_date(unsigned char *date,unsigned char *month,unsigned char *year); void rtc_set_date(unsigned char date,unsigned char month,unsigned char year); */ void main(void) { char sec,min,hour; int number1,number2,number3,number4; int i=0; DDRB=0XFF;//a-b-c-d-e-f-g DDRD=0XFF;//N1-N2-N3-N4 PORTD=0x00; i2c_init(); rtc_init(0,0,0); //rtc_set_time(12,3,20); while(1) { rtc_get_time(&hour,&min,&sec); if(min>=10) { number1=min%10; number2=min/10; } else { number1=min%10; number2=0; } if(hour>=10) { number3=hour%10; number4=hour/10; } else { number3=min%10; number4=0; } PORTD.0=0;PORTD.1=1;PORTD.2=1;PORTD.3=1; PORTB=cathode_seg[number1]; delay_ms(5); PORTD.0=1;PORTD.1=0;PORTD.2=1;PORTD.3=1; PORTB=cathode_seg[number2]; delay_ms(5); PORTD.0=1;PORTD.1=1;PORTD.2=0;PORTD.3=1; PORTB=cathode_seg[number3]; delay_ms(5); PORTD.0=1;PORTD.1=1;PORTD.2=1;PORTD.3=0; PORTB=cathode_seg[number4]; delay_ms(5); i++; if(i%20==0)PORTD.7=!PORTD.7; } } |
فیلم پروژه
در آخر امیدوارم این مطلب بدرد کسی بخوره….اگه مفید بود براتون ما رو هم یه دعایی کنید….
فعلا یا علی
جنگ ما فتح قدس را در پی خواهد داشت (روحالله) >>>>>> اگر از صدام بگذریم، اگر مسأله قدس را فراموش کنیم، اگر از جنایت های امریکا بگذریم از آل سعود نخواهیم گذشت. انشاالله اندوه دلمان را را در وقت مناسب با انتقام از امریکا و ال سعود برطرف خواهیم کرد و داغ و حسرت حلاوت این جنایت بزرگ را بر دلشان خواهیم گذاشت و با برپایی جشن پیروزی حق بر جنود کفر و نفاق و آزادی کعبه از دست نااهلان و نامحرمان به مسجد الحرام وارد خواهیم شد (روحالله)
(بعد از ثبت ایمیلتون حتما باید به ایمیلتون برید و اشتراکتون رو فعال کنید.)
سلام اقا مهدی من پروژه را با ماژول ds3231 انجام دادم این شد ساعت 42و40 میشه بعد چند دقیقه 52و50 دیگه خسته شدم از بس ساعت ساختم حالا یه پروژه هست به بسکام مبین محسن زاده نوشته که با 6 تا سون سگمنت و یک مگا 32 و تراشه latch 74hc573 انجام میشه میخوام قطعه تهیه کنم اونو انجام بدم اینم فیلم من و ماژول ds3231
http://s8.picofile.com/file/8321801242/video_2018_03_15_22_32_46.mp4.html
سلام-پروژه همین مطلبو بستی؟ فرکانس میکرو رو بزار رو 8 میگ داخلی.
در ضمن 40و42 دیگه چیه؟ ثانیه و دقیقه هستش؟ خب این که چشمک میزنه اگه تو عمل هم اینطور باشه ( چون فیلم که بگیریم تو فیلم چشمک میزنه ) که مشکل از کد ( یاعدم تنظیم درست فرکانس میکرو ) هستش و این که حرکت نمیکنه ممکنه مشکل از ماژول باشه ولی اگه ساعت کار میکنه ولی تاخیر داره همون مشکل باید از عدم تنظیم بودن فرکانس باشه
===========
از 4240 یهو میره رو 5240؟ خب کدت هم مشکل داره پس ( البته اگه یکیش ثانیه و دیگری دقیقه باشه )
بله بله پروژه همین مطلب رو بستم برنامه عین کد شما است و پروژه هم مال شماست ما فقط copy past میکنم اصلا برنامه نویسی من صفر صفر هست کد شما که مشکلی نداره برمیداریم تو کد ویژن میزاریم کامپایل میکنیم ارور نمیده تنها چیزی که تو avr راه اندازی کردم چشمک زن (deally تغییر دادم)و شمارنده تک رقمی شما هست که تو پست قبلی گذاشتید ولی عملی نبستید ولی من شمارنده تک رقمی سون سگمنت اند مشترک رو در عمل بستم تلاش میکنم پروژه قوی انجام بدم ولی نمیتونیم
http://s8.picofile.com/file/8321871668/video_2018_03_16_21_51_37.mp4.html
4 تا ماژول ds3231 دارم میخواستم روی برد بورد ببندم بزنم روی فیبر مدار چاپی به 4 نفر هدیه بدم اینم عکسش خوش حال میشم از تجربیات و نکات فنی بیشتر بگید جون سایت شما نمونه است :
http://s8.picofile.com/file/8321872200/photo_2018_03_16_22_02_06.jpg
http://s9.picofile.com/file/8321872176/photo_2018_03_16_22_02_15.jpg
فرکانس رو روی 8 مگا گذاشتم با atmel studio 6.2 پروگرام میکنم oscillator calibration 8 mega و isp clock 104 khz بیشتر از 104 کیلو ارور میده و پروگرام نمیشه برای اکثر اتمگا ها
ولی نشد فقط 4 تا 4 اورد
سلام.
من با کمک مطالب خوبتون تونسام با ds3231 یه ساعت واقعا دقیق با یک سون سگمنت درست کنم و با وصل کردن باتری پشتیبان، موقع روشن کردن مدار ساعت درست تمایش داده میشه و مشکلی نیست.
ولی یه مورد تازه که پیدا کردم و زیاد هم شایع نیستش اینه که اگه شما موقعی روشن بودن مدار، ولتاژ رو چند بار سریع و پشت سر هم قطع و وصل کنید با وجود باتری پشتیبان ds3231 ریست میشه؛ این در حالیه که اگه درست تغزیه رو قطع و وصل کنیم این مشکل پیش نمیاد.
البته من از هیچ خازن الکترولیتی در مدارم استفاده نکردم شاید راه حل هم همین باشه، ولی با این وجود این کارو رو انجام بدید تا منظور منو متوجه بشید، و نظرتون رو درباره ی راه حل این ممشکل بگید.
با تشکر.
سلام اقا مهدی.من این ساعت رو روی بردبورد بستم ولی یه مشکلی داره تمام رقم ها هشت است یعنی ۸۸۸۸رو سون سگمنت نشون میده
.ممنون میشم اگه راهنمایی کنید
آقا مهندی عزیز میشه بدونم این کدها با چی نوشته شده؟من خیلی آماتور هستم و فقط با بسکام کار میکنم.این کدها را داخل بسکام میبرم اصلا هیچ کدی را نمیشناسه.ممکنه راهنماییم کنیند؟
زبون این کد ها c هستش – با کدویژن نوشته شده –
سلام ، ممنون از سایت بسیار خوبتون
من این پروژه رو تو عمل شبیه سازی کردم ، هیچ مشکلی هم نداره فقط پایه مربوط به ساعت شمار(number4) که به پایه ۳ پورت d وصل هستش، همیشه یک هست و نور سون سگمنت مربوط به آن هم از بقیه بیشتر هستش، دلیل اش چی میتونه باشه در صورتیکه بقیه پایه های پورتD این مشکل رو ندارن؟
سلام-بهتره برا هر کدوم یه ترانزیستور بزاری و جریان پایه های میکرو رو تقویت کنی –
سلام وقتتون به خیر.
ممنون از سایت خوبتون.
من می خوام یه ساعت عقربه ای درست کنم که به جای شماره هاش LED باشه و اونا ساعتو نشون بدن.
توی شبیه سازی با این ارور مواجه میشم :
PC=0x009C. [AVR MEMORY] Writing to memory location 0x0584 outside of memory size 0x0460. [U2]
برای رفعش باید چیکار کنم؟
سلام.در عمل تست کنید
سلام
خسته نباشید
دلیل نوشتن 2 خط آخر چیه؟
سلام
چشمک زدن : روی 7s
اینطوری که میگی یه خرده بدجوره.(چون دوستت دارم اینو میگم)
شما این همه زحمت میکشی و مطالب خوب میذاری بعد …
حرف حق جواب نداره
سلام
مهدی جان این یعنی چی؟؟؟
“”””این پروژه تو پروتئوس اجرا نمیشه…دلیلش رو هم حال ندارم بگم laugh”””
سلام


بابا این ماژول ها تو پروتئوس شبیه سازی نمیشن اکثرشون
اینم از اونایی هستش که شبیه سازی نمیشه تو پروتئوس….یعنی اون قطعه هه یه سنبول(نماد) هستش که خودم درست کردم تا نحوه اتصالات رو ببینید…
از بس گفتم اینو دیگه حال ندارم بگم
به خاطر همین اون جمله رو گفتم
پروژه با DS1307 تو نت هست….تو سایت یکی هم هست…
بله سون سگمنت یا باید آند مشترک باشه یا کاتد…..مگه غیر از این هم داریم
نمیدونم…خودت تست کن ببین آنده یا کاتده
راستی سون سگمنت یا ید کاتد مشترک باشه یا اند مشترک ؟؟؟؟؟؟؟
تو پروژه که اند مشترکه درسته یا اشتباه ؟؟؟؟؟؟؟