زمان و سنجش زمان از پارامترهای مهم ساخت پروژه های اینترنت اشیا است. در آموزش ساخت ساعت دیجیتال با آردوینو و سگمنت به بررسی کامل کدها و راه اندازی آن پرداختیم. حال با توجه به نیاز و درخواست کاربران آموزش ساخت ساعت دیجیتال با استفاده از ماژول ساعت دقیق DS1307 را در این پست در اختیار شما قرار دادهایم. این آموزش توسط یکی از کاربران فعال ما ارسال شده است. از این رو از همکاری کاربران در راستای تحقق اهداف بزرگ از جمله رشد سطح علمی جامعه و تلاش برای تبادل اطلاعات کاربران با یکدیگر در مرجع تخصصی الکترونیک دیجی اسپارک صمیمانه سپاسگزاریم. در ادامه این آموزش با مرجع تخصصی آردوینو دیجی اسپارکهمراه باشید.
ساختار ماژول سگمنت ۷Segment 4 Digit با تراشه TM1637
ماژول سگمنت، نوعی نمایشگر دیودی است. هر بلوک از سون سگمنت از ۷ ال ای دی مجزا تشکیل شده است. ماژول سگمنت به کار رفته یک نمایشگر چهار دیجیت با ابعاد ۴۲*۲۴ میلی متر است. تراشه این ماژول TM1637 میباشد و دارای پروتکل ارتباطی I2C است. همچنین این ماژول دارای ۴ پایه به ترتیب CLK ,DIN ,VCC ,GND بوده و ولتاژ کاری آن بین ۳٫۵ تا ۵ ولت است.
ساختار ماژول ماژول ساعت DS1307
کاربرد ماژول DS1307 محصول dallas محاسبه و نگهداری زمان واقعی real time clock میباشد. ماژول ساعت دقیق DS1307 میتواند ساعت، دقیقه، ثانیه، روز، ماه، سال و ایام هفته را نگهداری و پردازش کند. باطری لیتیومی این ماژول امکان تغذیه و نگهداری زمان DS1307 را به مدت چندین سال فراهم میکند. ماژول ساعت DS1307 از طریق ارتباط ۲ سیمه I2C به آردوینو متصل میشود. بر روی این ماژول علاوه بر RTC، یک EEPROM سریال به شماره ۲۴C32 با حافظه ۳۲ کیلوبیت تعبیه شده که از طریق رابط I2C مشترک میتوان به آن دسترسی داشت. همچنین میتوان بر روی آن حسگر دما نیز به کار برد.
وسایل مورد نیاز:
ماژول سگمنت ۷Segment 4 Digit با تراشه TM1637
ماژول ساعت DS1307 به همراه باتری Battery
کابل فلت ۴۰ رشته نری به مادگی Male to Female
برد آردوینو Arduino Uno R3 با تراشه R3 اورجینال
اتصال به آردوینو:
ابتدا اتصالات ماژول ساعت دقیق DS1307 به برد آردوینو را انجام میدهیم:
- پین SLK ماژول ساعت دقیق DS1307 را به پین آنالوگ A5 آردوینو وصل کنید.
- پین SDA ماژول ساعت دقیق DS1307 را به پبن آنالوگ A4 آردوینو وصل کنید.
- پین VCC ماژول ساعت دقیق DS1307 را به پین ۳٫۳ ولت آردوینو وصل کنید.
- پین GND ماژول ساعت دقیق DS1307 را به پبن GND آردوینو وصل کنید.
حال اتصالات ماژول سگمنت TM1637 را به برد آردوینو انجام میدهیم:
- پین CLK ماژول سگمنت را به پین ۶ آردوینو اتصال دهید.
- پین DIO ماژول سگمنت را به پبن ۵ آردوینو اتصال دهید.
- پین VCC ماژول سگمنت را به پین ۵ ولت آردوینو اتصال دهید.
- پین GND ماژول سگمنت را به پبن GND آردوینو اتصال دهید.
کتابخانه آردوینو Arduino:
کتابخانههای مورد نیاز برای آپلود کدها به ترتیب زیر میباشد.
- (DS1307RTC (by Michael Marglois Version 1.4.0
- (Time (by Michael Marglois Version 1.5.0)
- (SevenSegmentTM1637 (by Bram Harmsen Version 1.0.0
- (TM1637 (Version unknown
- (Wire (by Arduino Version 1.0.0
لینک دانلود کتابخانهها در صفحه محصول ماژول ساعت DS1307 به همراه باتری Battery و ماژول سگمنت ۷Segment 4 Digit با تراشه TM1637 قرار گرفته شده است و میتوانید دانلود کنید. توجه کنید که کتابخانه wire در قسمت Sketch – include library به صورت پیشفرض قرار گرفته شده است.
کد برنامه :
#include <TM1637.h> #include <Wire.h> #include <Time.h> #include <DS1307RTC.h> #define CLK 6 #define DIO 5 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); }
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.
پروژه:
برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگهای دیجی_اسپارک دانشجوکیت digispark daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام خسته نباشید
میدونم اینجا جاش نیست ولی میخواستم بدونم میشه کاری کرد که با گوشی و یک مدار که به گوشی وصل بشه کنترل مادون قرمز ساخت
یعنی برای گوشی هایی که سنسور مادون قرمز ندارن یه فرستنده خارجی ساخت البته با تقویت کننده.
ممنون میشم یه راهنمایی بفرمایید
سلام
در این زمینه من تجربه و اطلاعات کافی ندارم اما همکارانم در پستهای مربوطه در این زمینه آموزش دادهاند. میتوانید از طریق پست آموزش راه اندازی ماژول فرستنده گیرنده مادون قرمز TCRT5000 یا پست آموزش ماژول سنسور فرستنده گیرنده Avoidance با آردوینو سوال خود را مطرح نمایید تا همکارانم پاسخگو باشند.
ممنون از پاسخگویی شما
بله میشه خیلی ساده
به ماژول بلوتوث و یه گیرنده فرستنده مادون قرمز نیاز دارید.
روش کار هم اینه یه برنامه خیلی ساده مینویسید و با کمک گیرنده مادون قرمز کد های هر دکمه روی کنترل رو پیدا میکنید.
بعدش یه برنامه اندروید ساده طراحی میکنید که به صورت سریال بلوتوث با میکرو در ارتباط باشه (تو یوتیوب هست)و در کد میکرو هم تعریف میکنید مثلا اگه a از سریال دریافت کردی با فرستنده مادون قرمز اون سیگنال خاص و بفرست.
خیلی ساده میتونید یه کنترل بسازید.
سلام
یک سوال ساده اما مهم.
اگر کسی بخواهد که به جای استفاده از بردهای آموزشی خودش بردی رو طراحی کنه باید برای تامین کلاک میکروی ARM که مثلاً قرار هست با فرکانس ۱۰۰MHz یا بالاتر کار کنه باید از چه روشی استفاده کرد؟
خود میکرو اوسیلاتور داخلی داره تا جایی که من تو کاتالوگ ها خوندم نهایتاً تا ۲۵MHz رو ساپورت میکنه
آیا از کریستال استفاده می کنند؟
اصلاً کریستالی با این فرکانس پیدا میشه؟
سلام
از توجه شما ممنونم.
اول از همه بنده در این زمینه تخصصی ندارم و سوالات مرتبط با پست آموزشی را باید مطرح کنید. دوم اینکه با پیشرفت بردهای امبدد و میکروکنترل هایی که هر کدام کارآیی خاص و منحصر به فردی دارند دیگر نیازی به طراحی برد نخواهید داشت.
درود
بخاطر دقّت نظر و دلسوزی شما و همکارانتون نسبت به خواسته های کاربران و نیز پاسخگویی به سئوالاتشون، بواقع سپاسگذارم..
ماژول ساعت دقیق DS1307 دچار دو مشکل میشه. یا از ساعت دقیق عقب میفته، یا سریع تر ثانیه میندازه. جایی خونده بودم که مشکل نخست غیرقابل رفعه. امّا در خصوص مشکل دوّم، درست یادم نیست; مثل اینکه باید سر کریستال رو به زمین مدار متّصل کنیم و یادمه تأکید شده بود به هیچ عنوان از لحیم کردن سر کریستال نبایستی استفاده کرد. آیا این راه درسته ؟ و اگر بله، چطور بدون لحیم کردن این کار رو انجام بدم ؟
سپاسم
سلام
از دقت نظر شما سپاسگزارم.
در واقع این همان کدهاى ارسالی شماست، اگر در این زمینه راهکارى دارید میتوانید بیان کنید، از دیگر کاربران هم که تجربه کافى دارند تقاضا دارم در این بحث شرکت کنند.
درود مجدّد
مشکل رو حل کردم. از یک موتور ساعت دیواری، المان کریستالش رو جایگزین کریستال ماژول کردم.
چون ساعت دیواری یک ساعت همگانیه، بنابراین حتّی اگر موتور اون ساعت چینی هم باشه، همیشه از مرغوب ترین کریستال ها در ساخت اون استفاده میشه. بجای خرید کریستال از بازار، بهترین گزینه جایگزینی اون با کریستال موجود در موتور یک ساعت دیواریه..
سپاسم
ایده شما جالب است ولی به نظر بنده اینطور درست نیست. باید علمی تر بررسی شود. حتما اطلاعات کریستال را بیان کنید تا توجیه بهتری برای این قضیه داشته باشیم.
این کریستال که به نام کریستال ساعت معروف است ، با فرکانس ۳۲۷۶۸ هرتز کار می کند که از آن برای ایجاد تاخیرهای دقیق زمانی مانند ۱ ثانیه استفاده می شود و در مداراتی مانند تایمر ، ساعت ، کرنومتر و . .. کاربرد دارد .
سلام – در مورد ds1307 باید عرض کنم چون از کریستال خارجی استفاده می شود به شدت ناپایدار هست و تحت شرایط محیطی ممکن هست فرکانس از حالت پیش فرض کمی بیشتر یا کمتر باشد ، من در پروژه های صنعتی از ds1307 استفاده نمیکنم و پیشنهاد می کنم از ماژول هایی استفاده کنید که دارای کریستال داخلی می باشند ، نمونه ای از این ماژول ها DS3231 هست که دارای کریستال داخلی بوده و با استفاده از الگو های تعریف شده و تکنیک های شرکت سازنده بر حسب دمای محیط فرکانس را تصحیح میکند و عملکرد دقیق تری ارائه میدهد ، با این حال شاید ماژول های دقیق تری هم موجود باشه اما بنده تا بحال باهاشون کار نکردم – موفق باشید
سلام
از اینکه اطلاعات و تجربیات خود را با دیگر کاربران به اشتراک میگذارید، سپاسگزارم.
موفق باشید.
با سلام.من این ماژول رو چجوری به DUE وصل کنم؟
خوده ds1307 رو به تنهایی دارم(ماژول نیستش)،تقسیم ولتاژِی کردم برای ۳٫۳ ولت اما برای پول آپ چیکار کنم؟
سلام
در این خصوص نیاز است که به دیتاشیت تراشه ۱۳۰۷ مراجعه بفرمایید.
سلام خسته نباشین
من میخوام وقتی که کلیدی زده شد این ماژول ساعت و تاریخ فشرده شدن اون کلید رو تو حافظه ی خودش ذخیره کنه ،چیکار باید کنم ؟
سلام
باید از ماژول میکرو SD جهت ذخیره اطلاعات استفاده کنید.
آخه به من گفتن باید با همین ماژول DS1307 اینکارو انجام بدم
کامل توضیح دهید تا راهنمایی کنم.
سلام مجدد
پروژه اینه که به وسیله ی بلوتوث یک رله روشن و خاموش شود !
اسم بلوتوثی که به ماژول بلوتوث ما وصل شده و تایم و تاریخ که تونسته رله رو خاموش و روشن کنه رو ذخیره کنه!
همچنین ذکر شده با ماژول بلوتوث hc05 و ماژول ds1307 اینکار انجام شود
در این خصوص به آموزش های hc05 مراجعه کنید. همچنین طبق اطلاعات گفته شده در دیتاشیت ماژول DS1307، توانایی ذخیره دیتا در حافظه EEPROM را دارد و باید کتابخانه آن را فراخوانی کنید.
سلام
من وقتی دکمه ریست آردوینو را فشار میدهم یا وقتی برق قطع می شود از اول شروع می شود
سلام
طبیعتا با فشردن کلید reset برنامه ریست خواهد شد.
سلام
من یه پروزه دارم که led ها بر روی یک پروانه سوار اند و با فرستادن اطلاعات ساعت از روی این ماژول ds 1307 به اردینو برنامه ساعت را بگیرد و موتور با چرخش ساعت دقیق را نشان دهد
اول میخام ماژول ساعت رو پروگرم کنم با اردینو که روی lcd نشون بده و بعدش به اردینو وصل کنم میشه تو این دو قسمت کمکم کنید
ممنون خانم بلورچیان
با سلام
بله راهنمایی خواهم کرد. مطابق با آموزش ها پیش بروید و در صورت برخورد به مشکل از همین طریق سوالات خود را بپرسید.
سلام حالتون خوبه ببخشید من تونستم با ال سی دی ماژول ds1307 رو پروگرام کنم و الان میخام اونو در مدارم قرار بدم تا با استفاده از ماژول تاریخ و ساعت رو بخونه و به ال ای دی هام بفرسته… چه جوری بخونمش از کد؟؟؟
میشه کمک کنید قسمتا اخره
با سلام
منظور شما از خواندن از کد چیست؟ جهت دریافت راهنمایی دقیق میبایست توضیحات شفاف ارائه دهید.
ببخشین جواب نمیدین؟؟؟
پاسخ داده شد.
بررسی کنید.
من یه پروزه دارم که داخلش به صورت دستی ساعت و تاریخ رو دادم الان میخام ساعت و تاریخ رو از مازول ds1307 بگیره چه حوری اون رو به نرم افزتر اردینو بگم
سلام
در این خصوص میبایست کتابخانه DS1307 را فراخوانی و کدنویسی کنید.
از آموزش ساخت ساعت دیجیتال ماژول DS1307 نمایشگر سگمنت TM1637 ایده بگیرید و در صورت سوال از همان طریق بپرسید.
سلام.
اگر تغذیه ماژول DS1307 جداگانه تامین بشه بهتر نیست؟ یعنی ممکنه وقتی از آردینو میگیره دچار نویز بشه؟
من در مدارم df player رو دارم که اونطور که بررسی کردم وقتی از آردینو تغذیه میگیره دچار نویز میشه. چون میخوام پروژه دچار هیچ مشکلی نشه، به نظرتون بهتر نیست تغذیه جدا باشه؟
با سلام
تا به حال در این مورد نویز در مدار صورت نگرفته است و تغذیه ماژول از طریق آردوینو تاثیری ندارد.
سلام وقت بخیر
من یه کیت میخواستم که از ۴ تا ال ای دی به رنگ های مختلف باشه و نسبت به صدایی که توسط میکروفون ازمحیط دریافت میکنه ال ای دی هارو بصورت رندوم روشن کنه /و همچنین ریموت کنترل هم داشته باشه/آیا شما کیتی مشابه با این دارید؟یا طراحی این کیت را میتونید انجام بدید؟
با سلام
در این خصوص از آموزش زیر میتوانید استفاده کنید.
آموزش ساخت رقص نور با ماژول میکروفن و حلقه ال ای دی Neopixel صوت سنجهمچنین در خصوص پروژه از طریق لینک زیر پروژه را تعریف کنید تا شرایط اجرای پروژه به شما اعلام شود.
daneshjookit.com/support
سلام خسته نباشید . چرا هر ماژولی ک اموزششو درست میکنید با اردینو میسازین؟ خیلیامون کلا از اردینو استفاده نمیکنیم . اردینو خودش از میکرو avr درست میشه . الان من این ماژولو دارم ولی هیچ جایی اموزش راه اندازیش نیست.
با سلام
با توجه به اینکه میکروکنترلرهای امبدد هر روز در حال توسعه هستند و مدل های جدید با امکانات جدید عرضه میشود، نیاز به یادگیری خواهد داشت.
آموزش های AVR در سایت موجود است، در پست های مرتبط با این موضوع کامنت بگذارید تا توسط کارشناسان AVR بررسی و راهنمایی شود.
من با پلکسی و اسامدی ساعتشو ساختم و تمام مثبت هارو به هم وصل کردم..
حالا چطوری این منفی های تک تک رو به اردوئینو وصل کنم..
با سپاس
با سلام
در این خصوص پیشنهاد میشود آموزش زیر را مطالعه کنید و سپس در صورت هرگونه سوال از آن طریق اقدام فرمایید.
آموزش راه اندازی سون سگمنت Seven Segment با آردوینو Arduino
باسلام.
کدی که ارسال کرده اید اشکال دارد. ارور میدهد
دستور زیر رو نمیپذیرد:
Display1.set();
فکر کنم اشتباهی توی کد هست. راستی کدهایی رو که اینجا میگذارید تست نمیکنید؟
با سلام
کاربر گرامی تمامی کدها تست شده و پس از اجرا منتشر میشود. در نظر داشته باشید بسیاری از کتابخانه ها در صورت آپدیت شدن دستورات آن ها دچار تغییرات میشود که نیاز به بررسی و تحلیل دارد. لطفا ارور دریافتی را کامل کپی کرده و ارسال کنید تا بررسی شود.
سلام من آردینیو UNO و TM1637 و DS1307 رو تهیه و طبق توضیحات مونتاژ و و با نرم افزار ارتباط دادم ولی وقتی کد بالا رو ارسال می کنم خطا میده و اجرا نمیشه
با سلام
ارور را ارسال کنید تا بررسی شود.
با سلام، وقت عالی بخیر مهندس. من میخوام با همین آی سی ۱۳۰۷ یه ساعت دیجیتالی ۶ رقمی بسازم، ولی نه با TM1637 ، میخوام خودم دیجیت های بزرگ جداگونه بذارم و یه ساعت دیجیتالی ۶ رقمی بسازم که هم ثانیه رو نشون بده هم دقیقه و هم ساعت. برای ۶ رقمی آموزشی هست توی دیجی اسپارک ؟
با سلام
در این خصوص از آموزش سون سگمنت استفاده کنید.
آموزش راه اندازی سون سگمنت Seven Segment با آردوینو Arduino
سلام برای ساخت روز شمار چیار بایدکنم؟
با سلام
در این خصوص در نمونه برنامه های کتابخانه ds3231 , ds1307 برنامه های پیش فرض برای نمایش روز وجود دارد.
سلام
وقتی برنامه رو توی نرم افزار اردوینو مینویسم ارور میده زیر ;TM1637 Display1(CLK, DIO) خط میکشه .
در قسمت ارور مینویسه TM1637′ does not name atype
با سلام
کتابخانه tm1637 نصب نشده و شناخته نشده است.
سلام من این ساعت درست کردم موقع اپلود کردن ارور میده
Display1.set() عدد هم داخل پرانتز گذاشتم نشد راهنمایی میکند
ممنون میشم
با سلام
اولین قدم آپدیت کردن کتابخانه ها است. مطمئن شوید که کلاس ها تغییر نکرده باشد.
سلام. این ارور رو میده
Arduino: 1.8.13 (Windows 10), Board: “Arduino Uno”
C:\Users\Ahmad\AppData\Local\Temp\arduino_modified_sketch_989692\TM1637_matrix.ino: In function ‘void setup()’:
TM1637_matrix:22:12: error: ‘class TM1637’ has no member named ‘set’; did you mean ‘send’?
Display1.set();
^~~
send
TM1637_matrix:23:12: error: ‘class TM1637’ has no member named ‘init’; did you mean ‘digits’?
Display1.init();
^~~~
digits
C:\Users\Ahmad\AppData\Local\Temp\arduino_modified_sketch_989692\TM1637_matrix.ino: In function ‘void loop()’:
TM1637_matrix:50:18: error: ‘class TM1637’ has no member named ‘point’
Display1.point(POINT_OFF);
^~~~~
TM1637_matrix:50:24: error: ‘POINT_OFF’ was not declared in this scope
Display1.point(POINT_OFF);
^~~~~~~~~
TM1637_matrix:55:18: error: ‘class TM1637’ has no member named ‘point’
Display1.point(POINT_ON);
^~~~~
TM1637_matrix:55:24: error: ‘POINT_ON’ was not declared in this scope
Display1.point(POINT_ON);
^~~~~~~~
C:\Users\Ahmad\AppData\Local\Temp\arduino_modified_sketch_989692\TM1637_matrix.ino:55:24: note: suggested alternative: ‘PCINT0’
Display1.point(POINT_ON);
^~~~~~~~
PCINT0
C:\Users\Ahmad\AppData\Local\Temp\arduino_modified_sketch_989692\TM1637_matrix.ino: In function ‘void CalculaDigitos(int, int)’:
TM1637_matrix:92:16: error: ‘class TM1637’ has no member named ‘display’; did you mean ‘bitDelay’?
Display1.display(Digitos);
^~~~~~~
bitDelay
Multiple libraries were found for “TM1637.h”
Used: C:\Users\Ahmad\Documents\Arduino\libraries\TM16xx_LEDs_and_Buttons
Not used: C:\Users\Ahmad\Documents\Arduino\libraries\Grove_4-Digit_Display
exit status 1
‘class TM1637’ has no member named ‘set’; did you mean ‘send’?
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
با سلام
همانطور که در ارور مشخص شده است، کلاس ها آپدیت شده است. برای حل این مورد، کتابخانه را آپدیت کنید.
سپس Example برنامه را باز کنید. یکبار اتصالات را انجام دهید. برنامه جدید را ران کنید.
کد این برنامه هم به زودی آپدیت خواهد شد.
نتیجه را از همین طریق اعلام کنید.
باسلام من وقتی برنامه رو کامپایل کردم این ارور میدهArduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board: “Arduino Uno”
In file included from C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino:5:0:
C:\Users\MobtakeranNovin\OneDrive\Documents\Arduino\libraries\DS1307RTC/DS1307RTC.h:19:22: error: ‘tmElements_t’ has not been declared
static bool read(tmElements_t &tm);
^~~~~~~~~~~~
C:\Users\MobtakeranNovin\OneDrive\Documents\Arduino\libraries\DS1307RTC/DS1307RTC.h:20:23: error: ‘tmElements_t’ has not been declared
static bool write(tmElements_t &tm);
^~~~~~~~~~~~
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino: In function ‘void loop()’:
sketch_may12a:29:3: error: ‘tmElements_t’ was not declared in this scope
tmElements_t tm;
^~~~~~~~~~~~
sketch_may12a:31:18: error: expected primary-expression before ‘)’ token
if (RTC.read(tm)) {
^
sketch_may12a:33:20: error: expected primary-expression before ‘.’ token
print2digits(tm.Hour);
^
sketch_may12a:35:20: error: expected primary-expression before ‘.’ token
print2digits(tm.Minute);
^
sketch_may12a:37:20: error: expected primary-expression before ‘.’ token
print2digits(tm.Second);
^
sketch_may12a:39:20: error: expected primary-expression before ‘.’ token
Serial.print(tm.Day);
^
sketch_may12a:41:20: error: expected primary-expression before ‘.’ token
Serial.print(tm.Month);
^
sketch_may12a:43:37: error: expected primary-expression before ‘.’ token
Serial.print(tmYearToCalendar(tm.Year));
^
sketch_may12a:43:18: error: ‘tmYearToCalendar’ was not declared in this scope
Serial.print(tmYearToCalendar(tm.Year));
^~~~~~~~~~~~~~~~
sketch_may12a:46:15: error: expected primary-expression before ‘.’ token
horas = tm.Hour;
^
sketch_may12a:47:17: error: expected primary-expression before ‘.’ token
minutos = tm.Minute;
^
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino: At global scope:
sketch_may12a:95:1: error: expected unqualified-id before numeric constant
۱
^
sketch_may12a:197:18: error: redefinition of ‘int8_t Digitos []’
int8_t Digitos[] = {0,1,2,3};
^
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino:11:10: note: ‘int8_t Digitos [4]’ previously defined here
int8_t Digitos[] = {0,1,2,3};
^~~~~~~
sketch_may12a:198:7: error: redefinition of ‘int horas’
int horas;
^~~~~
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino:12:7: note: ‘int horas’ previously declared here
int horas;
^~~~~
sketch_may12a:199:7: error: redefinition of ‘int minutos’
int minutos;
^~~~~~~
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino:13:7: note: ‘int minutos’ previously declared here
int minutos;
^~~~~~~
sketch_may12a:200:11: error: redefinition of ‘boolean alterna’
boolean alterna;
^~~~~~~
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino:14:11: note: ‘boolean alterna’ previously declared here
boolean alterna;
^~~~~~~
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino: In function ‘void setup()’:
sketch_may12a:202:6: error: redefinition of ‘void setup()’
void setup() {
^~~~~
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino:16:6: note: ‘void setup()’ previously defined here
void setup() {
^~~~~
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino: In function ‘void loop()’:
sketch_may12a:214:6: error: redefinition of ‘void loop()’
void loop() {
^~~~
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino:28:6: note: ‘void loop()’ previously defined here
void loop() {
^~~~
sketch_may12a:215:1: error: ‘tmElements_t’ was not declared in this scope
tmElements_t tm;
^~~~~~~~~~~~
sketch_may12a:217:18: error: expected primary-expression before ‘)’ token
if (RTC.read(tm)) {
^
sketch_may12a:219:20: error: expected primary-expression before ‘.’ token
print2digits(tm.Hour);
^
sketch_may12a:221:20: error: expected primary-expression before ‘.’ token
print2digits(tm.Minute);
^
sketch_may12a:223:20: error: expected primary-expression before ‘.’ token
print2digits(tm.Second);
^
sketch_may12a:225:20: error: expected primary-expression before ‘.’ token
Serial.print(tm.Day);
^
sketch_may12a:227:20: error: expected primary-expression before ‘.’ token
Serial.print(tm.Month);
^
sketch_may12a:229:37: error: expected primary-expression before ‘.’ token
Serial.print(tmYearToCalendar(tm.Year));
^
sketch_may12a:229:18: error: ‘tmYearToCalendar’ was not declared in this scope
Serial.print(tmYearToCalendar(tm.Year));
^~~~~~~~~~~~~~~~
sketch_may12a:232:15: error: expected primary-expression before ‘.’ token
horas = tm.Hour;
^
sketch_may12a:233:17: error: expected primary-expression before ‘.’ token
minutos = tm.Minute;
^
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino: In function ‘void print2digits(int)’:
sketch_may12a:260:6: error: redefinition of ‘void print2digits(int)’
void print2digits(int number) {
^~~~~~~~~~~~
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino:74:6: note: ‘void print2digits(int)’ previously defined here
void print2digits(int number) {
^~~~~~~~~~~~
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino: In function ‘void CalculaDigitos(int, int)’:
sketch_may12a:267:6: error: redefinition of ‘void CalculaDigitos(int, int)’
void CalculaDigitos( int hor, int minu)
^~~~~~~~~~~~~~
C:\Users\MOBTAK~1\AppData\Local\Temp\arduino_modified_sketch_277590\sketch_may12a.ino:81:6: note: ‘void CalculaDigitos(int, int)’ previously defined here
void CalculaDigitos( int hor, int minu)
^~~~~~~~~~~~~~
exit status 1
‘tmElements_t’ was not declared in this scope
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
با سلام
کتابخانه آپدیت شده است. پس از آپدیت کتابخانه از منو EXAMPLE اسم کتابخانه را پیدا و سپس یک نمونه برنامه از همین کتابخانه باز کنید. سپس تغییرات را با این کد مقایسه کنید.
با سلام
من از این ماژول DS1307 استفاده کرده ام اما به ناگهان ساعت آن تبدیل به ۱۶:۱۶:۱۶ می شود
تا به حال به این مشکل برخورد کرده اید و چطور می توانم آن را حل کنم؟
با سلام
در این خصوص از آموزش زیر استفاده کنید.
ساعت دیجیتال
سلام ممنون از شما
اما این طور رفع نشد چون این ماژول اگر به ۵ ولت وصل شود مدام باتری سکه ای را شارژ می کند و من چون مقاومت R6 را اتصال کوتاه کرده بودم آی سی ساعت را سوزاند
برای رفع این مشکل اگر از باتری CR2032 استفاده می شود حتما مقاومت های R4,R5,R6 و دیود D1 را از مدار خارج کنید و دو سر مقاومت R6 را اتصال کوتاه کنید تا باتری شارژ نشود و آی سی نسوزد
با سلام
کاربر گرامی از اینکه تجربه ی خود را با دیگر کاربران به اشتراک گذاشته اید، صمیمانه سپاسگزاریم.
سلام خسته نباشید
چطور میشود بعد از برنامه نویسی و… بعم متصل و راه اندازی کرد سون سگمنت hw-069 و ماژول ساعت rtc12c
ممنون از سایت خوبتون
با سلام
کاربر گرامی سوال خود را شفاف بپرسید.
سلام
لطفا کد برنامه نویسی درست و بدون مشکل را بارگزاری کنید
منم مشکل یکی از کاربران رادارم که راهنمایی فرمودید کتابخانه را آپدیت و مقابسه و… کارها را انجام دهند. من سواد این کارها را ندارم
الان هم با این مشکل مواجهم
‘tmElements_t’ was not declared in this scope
باتشکر
با سلام
کاربر گرامی ضمن تشکر از شما در نظر داشته یاشید این آموزش مربوط به ۶ سال گذشته است و کتابخانه ها به مرور زمان توسعه داده میشوند.
کدها سالم است اما باید تغییرات آپدیت را انجام دهید که پس از آپدیت کتابخانه IDE Arduino به شما نمایش خواهد داد.
کد بررسی و اصلاح خواهد شد.
در ابتدا کتابخانه ی زیر را جست و جو و سپس آپدیت کنید.
Grove-4-digit display by seedstudio
سپس کتابخانه ساعت را نصب کنید.
DS1307RTC
سپس کتابخانه time by michael margolis را نصب کنید.
ارورها برطرف شده است و میتوانید کد را اجرا کنید.