Продолжая тему, с подключением разобрался, добавил кварц, и немного передал код: Спойлер: Код Код (C++): #include <Wire.h> // #include "DS1307.h" // DS1307 clock;//define a object of DS1307 class // char c, l, t; // String timeData; // boolean needSet, click; // byte hour, minute, // second, day, month, halfYear; // int year; char getInt( // String buf, int startIndex) { // return int(buf[startIndex] - '0') * 10 + int(buf[startIndex + 1]) - '0'; } void setup() { // pinMode(2, INPUT); // pinMode(12, INPUT); // pinMode(13, INPUT); // Serial.begin(9600); // click = false; // Serial.println("Need set time?"); // while (!click) { // click = digitalRead(13); // if (click) needSet = true; else click = digitalRead(12); } // timeData = ""; // Serial.println(needSet); // clock.begin(); // if (needSet) { // Serial.println("Input hh:mm:ss dd/mm/yyyy:"); // l = 0; // while (l < 19) { // while (Serial.available() > 0) { // c = Serial.read(); // if (c != '\n') // timeData += c; // l++; } } // Serial.println(timeData); // hour = getInt(timeData, 0); // minute = getInt(timeData, 3); // second = getInt(timeData, 6); // day = getInt(timeData, 9); // month = getInt(timeData, 12); // halfYear = getInt(timeData, 15); // year = halfYear * 100; // halfYear = getInt(timeData, 17); // year += halfYear; // clock.fillByHMS(hour, minute, second); // clock.fillByYMD(year, month, day); //clock.fillDayOfWeek(SAT); //Saturday // clock.setTime();//write time to the RTC chip } // clock.getTime(); // printTime(); } void loop() { // if (digitalRead(2)) { // clock.getTime(); // printTime(); // delay(1000); } } /*Function: Display time on the serial monitor*/ void printTime() { // Serial.print(clock.hour, DEC); // Serial.print(":"); // Serial.print(clock.minute, DEC); // Serial.print(":"); // Serial.print(clock.second, DEC); // Serial.print(" "); // Serial.print(clock.dayOfMonth, DEC); // Serial.print("/"); // Serial.print(clock.month, DEC); // Serial.print("/"); // Serial.print(clock.year + 2000, DEC); // Serial.println(" "); } Добавил 3-ю кнопку, при нажатии которой в Монитор порта отправляется время с микросхемы. Далее, делаю тест: устанавливаю время, отключаю Arduino от компьютера, и оставляю проект на сутки, в итоге, часы отстают на 20 минут. Не закрывая монитор порта, запрашиваю время, по нажатию на кнопку, и замечаю, что часы начинают идти быстрее: за 10 секунд, они ускоряются на одну секунду. Почему такое может быть?
DIYMan, не ужели он такой не хороший? Зачем тогда их выпускают... Честно, думаю что сам что-то не так сделал. Может в коде что-то неправильно, или подключение нужно переделать?
Зачем выпускают Жигули-классику? Говно ведь, но - выпускают Реально говорю - выбросьте и забудьте, тем более что DS3231 в виде готового модуля, да ещё с EEPROM на борту - на али как буханка хлеба стОит. Оно вам надо - секс с извращениями?
DIYMan, спорить с Вами не буду, так как плотно с ними не работал, но всё же, исправить до правильного варианта очень хочется. Не в этом ли суть работы человека Опять же, даже если буду брать DS3231, то без всяких плат, чисто микросхему. Зачем лишние косяки себе тащить, а там, ИМХО, они вполне вероятны... Далее, если всё же, кто-то будет заинтересован в решении, просьба проверить код и подключение, оно практически как в данной теме, всего одну кнопку добавил, по коду будет понятно, думаю
если DS1307 не из китая и с нормальным кварцем, то вполне прилично работает а те квадратные модули полный шлак.
Просто интегральная микросхема и кварцевый резонатор (32768 Гц, 12.5pF, 20 ppm): Пушной звер, тоже думаю что я что-то сам перемудрил Вопрос только, что?