البته طبق نظرات یه عده در سایت آفتاب رایانه ماژول ساعت فوق دقیق DS3231 با رابط I2C
می گویند باتری باید قابل شارژ باشه یعنی LIR2032 باشه نه CR2032 . آیا ایراد اینه؟
البته طبق نظرات یه عده در سایت آفتاب رایانه ماژول ساعت فوق دقیق DS3231 با رابط I2C
می گویند باتری باید قابل شارژ باشه یعنی LIR2032 باشه نه CR2032 . آیا ایراد اینه؟
سلام دوستان.بنده این مازول رو تهیه کردم و با مولتی متر ولتاز باطری ها رو خوندم ک درست و سالم بودن اما بعد قطع شدن پاور ساعت هم ریست میشه.
پایه های sda وscl نیاز به پولآپ دارن؟
آیا امکانش هست با این قطعه تایمر ساخت؟و معیار شمارش تابع millis رو شمارش این قطعه قرار داد؟
کسی میدونه کریستال ساعت رو چطوری میشه به آردیونو متصل کرد و واسه تایمر ازش استفاده کرد؟
ویرایش توسط abbasjavanmardi : 06-12-2016 در ساعت 06:48 PM
من توی چندین تا پروژه دیدم که به جای استفاده از باتری سکه ای میان از یه باتری لیتیومی تک سل استفاده می کنن و براش مدار شارژ ه می زارن که به محض افت ولتاژ دوباره شارژ کنه
این ماژولها به محض اینکه پاورشون قطع بشه زمان رو از دست میدن و بازمانی که ست شدن شروع می کنن
البته یه راه حل خیلی جالب وجود داره
آردوینو یه کتابخونه داره به اسم datetime این کتابخونه میاد از ساعت و تاریخ سیستم عامل زمان رو بهتون میده
شما میتونید یه طوری کد نویسی کنید که هر بار باطری رو عوض کردید / شارژش تموم شد یه بار فقط وصلش کنید به کامپیوتر تا زمانش ست باشه
داستان پول آپ کردن برمی گرده به زمانی که منطق ولتاژی با هم نخونه ارتباطی به کار ما نداره زیاد شما منطق ساعت 5 ولته و آردوینو هم 5 ولت .
در مورد این که با یه کریستال خارجی بشه شمارش کرد( فقط این که با این کار millis رو از گود خارج کرده) اینجا یه توضحاتی در مورش نوشته millis - How do I get an accurate time? - Arduino Stack Exchange
(کسی به اسم Edgar Bonet )
سلام
من یکی از این ماژولها از آفتاب رایانه تهیه کردم و با کدهای این پست و پست دیگه*ی فروم در مورد این ماژول و چندتا سایت خارجیه دیگه تست*اش کردم اما همیشه اطلاعات رو با خطا نشون میده. مثلا اینطوری: Time:165:165:165.
پینهای SDA و SCL رو هم درست متصل میکنم. از پینهای مختلفی هم استفاده کردم اما جواب تغییری نکرد. A4, A5 و غیره. ممکنه مشکل سخت افزاری داشته باشه یا جایی رو دارم اشتباه میکنم؟!
ممنون.
سیم بندیتون اگر با uno کار می کنید باید این باشه :
wiring instructions (with Arduino uno r3 as an example):
the SCL → the A5
the SDA → the A4
the VCC → 5V
the GND → the GND
اما در مورد نمونه کد یه احتمالی که وجود داره اینه که آدرس i2c ماژول شما با آدرسی که داره توی کد استفاده میشه فرق کنه . برای اطمینان این کد رو آپلود کنید و تو کنسول سریال کد هگز سریال ارتباط i2c تون رو بردارید و با کدی که دارید آپلود می کنید مقایسه کنید:
کد:#include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); while (!Serial); // Leonardo: wait for serial monitor Serial.println("\nI2C Scanner"); } void loop() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for(address = 1; address < 127; address++ ) { // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if // a device did acknowledge to the address. Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address<16) Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); nDevices++; } else if (error==4) { Serial.print("Unknow error at address 0x"); if (address<16) Serial.print("0"); Serial.println(address,HEX); } } if (nDevices == 0) Serial.println("No I2C devices found\n"); else Serial.println("done\n"); delay(5000); // wait 5 seconds for next scan }
رفرنس:http://playground.arduino.cc/Main/I2cScanner
خیلی ممنون از پاسختون. اما مشکل حل نشد. همه اینها رو قبلا امتحان کرده بودم. پینها رو که روی برد تغییر میدم داخل کد هم اصلاح میکنم. هم با برد اونو و هم مگا. احتمالا ماژول مشکل داره.
بله همون اول چک کردم.
خوب قیمت چندانی نداره که توجیح مرجوع کردن داشته باشه. فقط خیلی لازم*اش دارم و تهران نتونستم پیداش کنم. یک ماژول شبکه هم گرفته بودم و تلاش کردم از اون برای سینک کردن ساعت جهانی با دیتای ساعت داخل بردم استفاده کنم که باز هم موفق نبودم!