به نام خدا : تو این مطلب از پروژه آردوینو ، میخوام پروژه ساعت دیجیتال با آردوینو و ماژول ds3231 براتون بزارم >>> پروژه ساعت با ماژول ds3231 و ks0108 با arduino
پروژه ساعت با ماژول ds3231 و ks0108 با arduino
شماتیک پروژه
توجه مهم تر مهم! : خب اگه آموزش KS0108 رو دیده باشین، اون پایه E به A4 وصل بود، و من چون میخواستم به اون پایه پایه SDA ماژول ساعتم رو وصل کنم لذا مجبور شدم جای پایه E نمایشگر رو تغییر بدم و بیارمش رو پایه 12، برای این کار آموزشش رو تو مطالب KS0108 دادم، لذا برای این که این پروژه برای شما اجرا بشه باید برید به کتابخونه و این پایه رو تغییر بدید(اموزشش تو مطلب جلسه 2 زیر هستش)
آموزش نمایشگر گرافیکی ks0108 با arduino جلسه1
آموزش نمایشگر گرافیکی ks0108 با arduino جلسه2
کد پروژه
توجه : فونت نمایش ساعت(فقط) رو خودم طراحی کردم به همون شیوه ای که آموزشش رو تو مطالب KS0108 دادم، و من فونتش رو از لینک زیر دانلود کردم : Modern LCD-7 اینو گفتم که اگه خواستید فونت نمایش رو تغییر بدید بدونید تا بتونید
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 |
#include <openGLCD.h> #include <Wire.h> // برای راه اندازی این آی سی باید حتما این کتابخونه رو هم فراخونی کنیم #include <Sodaq_DS3231.h> // فراخوانی کتابخانه این آی سی DateTime now; // ایجاد یه متغییر از نوع "دیتا تایم" int hour, minute, second, year, month, day, DayWeek; unsigned char TimeShow[9]; unsigned char DataShow[11]; unsigned char DayShow[7][10] = {"Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"}; const uint8_t PROGMEMGLCD DMF313_Time[] = { 0x13, 0x6D, // size 0x0A, // width 0x1C, // height 0x30, // first char 0x0B, // char count // char widths 0x12, 0x0B, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x04, // font data 0xFC, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xBF, 0xCF, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xCF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x70, // 48 0x0C, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xCF, 0xBF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0x70, // 49 0x0C, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x80, 0xC0, 0xC0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xCF, 0xCF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x70, // 50 0x0C, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x80, 0xC0, 0xC0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xCF, 0xCF, 0xBF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x70, // 51 0xFC, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xBF, 0xCF, 0xCF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xCF, 0xCF, 0xBF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0x70, // 52 0xFC, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0C, 0x7F, 0xBF, 0xCF, 0xCF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x70, // 53 0xFC, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0C, 0x7F, 0xBF, 0xCF, 0xCF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xC0, 0xC0, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x70, // 54 0xFC, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0x3F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xCF, 0xBF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0x70, // 55 0xFC, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xBF, 0xCF, 0xCF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xCF, 0xCF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x70, // 56 0xFC, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xBF, 0xCF, 0xCF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xCF, 0xCF, 0xBF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x70, // 57 0xC0, 0xC0, 0xC0, 0xC0, 0x03, 0x03, 0x03, 0x03, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00 // 58 }; void setup() { GLCD.Init(NON_INVERTED); // NON_INVERTED, INVERTED Wire.begin(); rtc.begin(); // تنظیم زمان - تاریخ و روز DateTime dt(2016, 5, 7, 18, 49, 5, 0); rtc.setDateTime(dt); } void loop() { now = rtc.now(); //ریختن زمان و تاریخ جاری در متغییر "الان!" hour = now.hour(); minute = now.minute(); second = now.second(); year = now.year(); month = now.month(); day = now.date(); TimeShow[0] = (hour / 10) + 48; TimeShow[1] = (hour % 10) + 48; TimeShow[2] = ':'; TimeShow[3] = (minute / 10) + 48; TimeShow[4] = (minute % 10) + 48; TimeShow[5] = ':'; TimeShow[6] = (second / 10) + 48; TimeShow[7] = (second % 10) + 48; TimeShow[8] = '\0'; DataShow[3] = (year % 10) + 48; year /= 10; // 6 DataShow[2] = (year % 10) + 48; year /= 10; // 1 DataShow[1] = (year % 10) + 48; year /= 10; // 0 DataShow[0] = year + 48; // 2 DataShow[4] = '/'; DataShow[5] = (month / 10) + 48; DataShow[6] = (month % 10) + 48; DataShow[7] = '/'; DataShow[8] = (day / 10) + 48; DataShow[9] = (day % 10) + 48; DataShow[10] = '\0'; // Sa=0 Su=1 Mo=2 Tu=3 We=4 Th=5 Fr=6 DayWeek = now.dayOfWeek(); // lcdnums12x16 GLCD.SelectFont(DMF313_Time, WHITE); // نمایش ساعت GLCD.DrawString((char *)TimeShow, gTextfmt_center, gTextfmt_top, eraseFULL_LINE); // وسط بالا GLCD.SelectFont(Verdana12_italic); // نمایش تاریخ GLCD.DrawString((char *)DataShow, gTextfmt_center, 35, eraseTO_EOL); GLCD.SelectFont(TimesNewRoman13); // نمایش روز هفته GLCD.DrawString((char *)DayShow[DayWeek], gTextfmt_center, gTextfmt_bottom, eraseTO_EOL); // وسط پایین delay(400); } |
فیلم پروژه
برید حالشو ببرید، اینو با وبکم لبتابم گرفتم، دیگه باید از امکانات موجود استفاده کرد، چاره ای نیست، به این میگن زندگی در شرایط سخت، یهو دیدی با وبکم لبتاب اومدم سلفی هم گرفتم
خب امیدوارم از این مطلب خوشتون اومده باشه، این مطلب و مطلب آموزش KS0108 رو بنا به درخواست آقای Ali Ghahramani نوشتم، امیدوارم براتون مفید باشه، لطفا در صورت استفاده از این مطلب هزینه مطلب رو هم بپردازید : 10 تا صلوات برا شادی روه شهدای مدافع حرم و سلامتی رزمندگان اسلام.
بیش از این مزاحمتون نمیشم، فعلا یا علی.
مهمان
سلام خسته نباشید
اگر ممکنه یک آموزش برای فارسی نویسی در آردوینو با استفاده از کتابخانه openGLCD بزارید خیلی وقته درگیرم ولی هیچی در نت پیدا نکردم
مهمان
سلام

من برای تغییر پایه ها به مشکل بر خوردم
به جای a4 می نویسم 12 ولی توی عمل هیچ تغییری نمی کنه
لطفا بگید دقیقا چی کار باید بکنم
مهمان
سلام مهندس وقتبخیر

من اموزش های lcd گرافیکی رو خوندم و الان یه مشکل دارم اینکه از شیلد دیتالاگر استفاده کردم ، یعنی هم ماژول ساعت روش داره وهم SD Card ، الان میخام LCD گرافیکی سریKS0108 رو بهشون اضافه کنم آیا پایه ها با هم تداخل پیدا میکنن؟؟؟ اگر اره کدوم پایه ها ، توی نت گشتم ولی چیزی برای شیلد دیتا لاگر پیدا نکردم
مهمان
سلام خسته نباشید به این کتابخونه گیر می ده چطور دانلودش کنم؟؟؟
#include // فراخوانی کتابخانه این آی سی
نویسنده این مطلب
سلام
تمام کتابخونه های مورد نیاز داخل پروژه که فایلشو ته مطلب گزاشتم هستش.
مهمان
سلام
میشه سون سگمنت وصل کرد؟؟؟؟
چه جوری؟؟؟؟؟
نویسنده این مطلب
سلام
مطلب 7s تو سایت کم نیست – یه نگاهی بهشون بنداز
مهمان
بسیار ممنون از راهنمایی و جوابهای کاملتون.ممنون که سوالات رو به آموزش های دیگه لینک میدین این خیلی بهتره تا اینکه جواب رو بدین
مهمان
سلام
در شماتیک پایه ی RST , VEE , RW مشخص نشده اند که بکجا متصل شوند .
و سوال دیگر اینکه من اون کتابخونه قبلیه رو اد کردم به لایبراری م حالا چه طوری پاکش کنم و کتابخونه ی جدید رو که برای این پروژه ادیت کردم دوباره اد کنم؟
و همونطور که دوستمون گفت ساعت و تاریخ رو چه طوری تنظیم کنیم؟
ممنون
نویسنده این مطلب
سلام
یادم رفته، در مطلب مربوط به همین نمایشگر با آردوینو(آموزشش) شماتیکش رو گزاشتم که میتونی بری ببینیکه این پایه ها به کجا وصل شدن
خب برا پاک کردن یه کتابخونه باید به مسیر زیر رفته و فایل کتابخونه مد نظر رو حذف کنی، البته در آدرس زیر برا من مثلا Mahdi هستش اسم یوزرم ولی برا شما ممکنه فرق داشته باشه
C:\Users\Mahdi\Documents\Arduino\libraries
برا تنظیم ساعت و تاریخ به خطوط 49تا51 پروژه دقت کن در ضمن در مطلب ماژول ساعت با آردوینو(آموزشش) اینچیزا رو ذکر کردم و توضیح دادم تو مطلب مربوطش
مهمان
salam
aya kelid baraye tanzime saat vojud nadare????
نویسنده این مطلب
سلام
از کیپد میتونی استفاده کنی
و یا دیتا رو از کامپیوتر بگیری
و یا یه بار ساعت رو تنظیم کنی و بعد تابع تنظیم ساعت رو غیر فعال کنی.(این طوری تا زمانی که باتری بکاب کار میکنه نیاز به تنظیم ساعت نداری)
مهمان
سلام حاج مهدی. امروز تو سایت چشمم خورد به درباره مهدی دمرچیلو… متوجه شدم نوشتی دانشگاه رو ول کردی. واقعا متأسف شدم. آقا دانشگاه جای امثال شما است. به هر دلیلی انشا الله باید ادامه بدید. نیروهایی مثل شما باید صنعت، دانشگاه و آینده مملکت رو بسازند. متأسفانه بدون مدرک همه سد راه آدم میشن و نمیزارن تأثیر گذار باشن. انشا الله تجدید نظر کنید و دانشگاه رو ادامه بدید. در پناه حق و زیر سایه حضرت ولی عصر عج
نویسنده این مطلب
سلام
مهمان
خسته نباشی پس اون سفیدا چیه
نویسنده این مطلب
متوجه نشدم – سفید دیگه یعنی چی؟
مهمان
المان سرد کننده زیاد سرد نمیکنه مشکل کجاست
نویسنده این مطلب
اگه منظورت هیت سینگ هستش باید بگم که از خمیر سیلیکون استفاده کنی(فک کنم اسمش همین بود)
بین اون ic و هیت سینگ یه مقداری خمیر سیلیکون میزنی
مهمان
اینتر نتی نگرفتم تصویرش اینه
***
نویسنده این مطلب
هیت سینک رو داری میگی؟
خب الان مشکل دقیقا کجاس؟
مهمان
سلام مهدی جان یه سوال من المان سرد کننده گرفتم وقتی وصل میکنم به اداپتور 12 ولت 2 امپری کمی سرد میشه مشکل از کجاست اندازش هم 4×4
نویسنده این مطلب
سلام
متوجه نشدم – لینک خزیدت رو بده تا بررسی کنم
مهمان
سلام حاج مهدی خسته نباشی. دستت هم درد نکنه. در پناه حق موفق و پیروز باشی