شاید در چندین سال قبل سنجش زمان در طول روز و شب از اهمیت آنچنانی برخوردار نبود، اما در حال حاضر زمان و سنجش دقیق زمان به عنوان یک ابزار بسیار مهم و حیاتی به کار می رود. چرا که کوچک ترین تاخیر یا بهم ریختگی در زمان ممکن است باغث به وجود آمدن مشکلاتی غیر قابل جبران شود. در این سری از پروژه های آردوینو نحوه ساخت ساعت دیجیتالی توسط سگمنت 4 دیجیت با تراشه TM1637 به کمک برد آردوینو را توضیح داده ایم. اگر به دنبال ساخت یک ساعت دیجیتال هستید این پروزه بسیار مناسب است چرا که با کمترین هزینه قادر خواهید بود، یک زمان سنچ دیجیتال حرفه ای بسازید و از آن در مکان ها و پروژه های مختلف استفاده کنید.
ماژول سگمنت ۴ دیجیت با تراشه TM1637
همانطور که در پروژه های قبلی گفته شد، 7Segmentها دارای پایه های زیادی هستند ولی در صورتی که با ماژول سگمنت 4دیجیت و تراشه TM1637 استفاده شوند، می توان آن ها را تنها با 4 پایه و به صورت I2C کنترل کرد.
ویژگی های ماژول سگمنت ۴ دیجیت
1. ولتاژ مورد نیاز 3.5 تا 5 ولت
2. جریان 80 میلی آمپر
3. دمای نگهداری 25- تا 85+ درجه سانتی گراد
4. پروتکل ارتباطی به صورت I2C
5. تعداد پایه ها 4 عدد
6. نوع کانکتور به صورت پین هدر
7. ابعاد 24*42 میلی متر
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
ماژول نمایشگر سون سگمنت 4 رقمی TM1637 | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
نحوه اتصال قطعات به یکدیگر و برد آردوینو بسیار ساده است به طوری که برای انجام این عمل می توانید طبق شماتیک زیر این کار را به راحتی انجام دهید.
برنامه نویسی پروژه
قبل از برنامه نویسی در نرم افزار آردوینو ابتدا کتابخانه TM1637 را دانلود نموده و طبق توضیحات زیر، آن را به زیرمجموعه های کتابخانه خود در نرم افزار آردوینو اضافه کنید.
نصب کردن کتابخانه TM1637
لازم به ذکر است که نرم افزار برنامه نویسی آردوینو به صورت پیش فرض توانایی پشتیبانی از TM1637 را ندارد بنابراین ما باید library (کتابخانه یا برنامه) مورد نیاز را بر روی آن نصب کنیم. این فرآیند بسیار ساده و راحت است که در زیر نحوه استفاده از آن را توضیح داده ایم.
1. در مرحله اول ابتدا آخرین (جدیدترین) نسخه کتابخانه (TM1637) را از لینک فوق دانلود کنید.
2. پس از دانلود فایل، نرم افزار آردوینو را باز کنید.
3. مسیر زیر را دنبال کنید و در پنجره باز شده فایل کتابخانه TM1637 را که قبلا دانلود کرده اید را انتخاب نمائید:
… Sketch > Include Library > Add .ZIP Library
برنامه نویسی کامل پروژه
بعد از اتصال قطعات به یکدیگر و نصب کتابخانه، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
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 94 |
#include <TM1637.h> #include <Wire.h> #include <Time.h> #include <DS1307RTC.h> #define CLK 9 #define DIO 8 TM1637 Display1(CLK, DIO); int8_t Digitos[] = {0,1,2,3}; int horas; int minutos; boolean alterna; void setup() { Serial.begin(9600); while (!Serial) ; // wait for serial delay(200); Serial.println("DS1307RTC Read Test"); Serial.println("-------------------"); Display1.set(); Display1.init(); } void loop() { tmElements_t tm; if (RTC.read(tm)) { Serial.print("Ok, Time = "); print2digits(tm.Hour); Serial.write(':'); print2digits(tm.Minute); Serial.write(':'); print2digits(tm.Second); Serial.print(", Date (D/M/Y) = "); Serial.print(tm.Day); Serial.write('/'); Serial.print(tm.Month); Serial.write('/'); Serial.print(tmYearToCalendar(tm.Year)); Serial.println(); horas = tm.Hour; minutos = tm.Minute; CalculaDigitos(horas, minutos); if (alterna) { Display1.point(POINT_OFF); alterna = false; } else { Display1.point(POINT_ON); alterna = true; } } else { if (RTC.chipPresent()) { Serial.println("The DS1307 is stopped. Please run the SetTime"); Serial.println("example to initialize the time and begin running."); Serial.println(); } else { Serial.println("DS1307 read error! Please check the circuitry."); Serial.println(); } delay(9000); } delay(1000); } void print2digits(int number) { if (number >= 0 && number < 10) { Serial.write('0'); } Serial.print(number); } void CalculaDigitos( int hor, int minu) { int8_t Digit0 = minu %10 ; int8_t Digit1 = (minu % 100) / 10 ; int8_t Digit2 = hor % 10 ; int8_t Digit3 = (hor % 100) / 10 ; Digitos[3] = Digit0 ; Digitos[2] = Digit1 ; Digitos[1] = Digit2 ; Digitos[0] = Digit3 ; Display1.display(Digitos); } |
سلام دوست عزیز
در پاسخ به سوال اول، شما می توانید با استفاده از تراشه ماژول سون سگمنت و چند ترانزیستور یک سون سگمنت بزرگتر درست کنید.
در مورد سوال دوم نیز من دقیقا متوجه سوال دوم شما نشدم، اما به طور کلی شما نمی توانید دو برنامه به صورت همزمان بر روی برد آردوینو اجرا کنید.
سلام چه طوری پروژه کامل را دانلود کنیم
سلام دوست عزیز
تمامی اطلاعات مورد نیاز جهت ساخت پروژه همانند نقشه شماتیک و برنامه آردوینو در توضیحات پروژه درج شده و شما می توانید به راحتی با استفاده از آن ها اقدام به ساخت پروژه نمائید.
سلام
اینک دانلود وجود ندارد
سلام دوست عزیز
تمامی قسمت های مورد نیاز برای ساخت پروژه مانند نقشه شماتیک و برنامه آردوینو در متن توضیحات پروژه موجود است.
چه جوری فایل را با کتاب خانه ها دانلود کنیم
لینک نیست
سلام دوست عزیز
لطفاً توضیحات پروژه را مطالعه فرمایید لینک دانلود کتابخانه ها درون توضیحات پروژه درج شده است.
کتاب خانه یه
Time
iDS1307RTC
نیست !
اگه میشه بگزارید
سلام دوست عزیز
این دو کتابخانه در مخزن آردوینو جهت نصب وجود دارند، برای این منظور ابتدا مطمئن شوید کامپیوتر به اینترنت متصل باشد، سپس پنجره Manager Library را از طریق مسیر زیر در نرم افزار آردوینو باز کنید:
Sketch > Include Library > Manager Library
و سپس کتابخانه DS1307RTC را جستجوه کنید و اقدام به نصب آن به همراه کتابخانه Time کنید.
این ارور را می ده
سلام دوست عزیز
مطابق خطا داده شده دو کتابخانه TM1637 و DS1307RTC توسط نرم افزار آردوینو شناسایی نشده است، لطفا این دو کتابخانه را با دقت و به صورت صحیح در کتابخانه نرم افزار آردوینو نصب کنید.
سلام من این پروژه درست کردم ارور Display1.set(); میده چی باید بنویسم
موقع آپلود کردن
راهنمایی میمیکنید ممنون میشم
پاک میکنم درست کار نمیکنه ساعت چهار تا صفر میاد آپلود میشه
عدد هم داخل پرانتز میزاری مثلا ۷ باز ارور میده
سلام دوست عزیز
نیازی به ایجاد تغییر در برنامه نیست، در صورتیکه در هنگام آپلود کردن برنامه با خطا روبرو می شوید باید مطمئن شوید کتابخانه ها را به درستی در نرم افزار آردوینو نصب کرده اید یا خیر. همچنین در صورتیکه بعد از آپلود مدار به درستی عمل نمی کند باید اتصالات ماژول ساعت به برد آردوینو را بررسی کنید.