Разница между DS1307 и IN1307N: я использую RTClib для создания модуля RTC с использованием IN1307N, но RTC не запускается.
#include <Wire.h>
#include "RTClib.h"
#if defined(ARDUINO_ARCH_SAMD)
// для Zero, вывод на последовательную USB-консоль, удалите строку ниже, если для программирования Zero используется порт программирования!
#define Serial SerialUSB
#endif
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup () {
#ifndef ESP8266
while (!Serial); // для Леонардо/Микро/Зеро
#endif
Serial.begin(9600);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running!");
// следующая строка устанавливает RTC на дату и время компиляции этого скетча
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// Эта строка задает RTC с явной датой и временем, например, чтобы установить
// 21 января 2014 года в 3 часа ночи вы бы позвонили:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
}
void loop () {
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.print(" since midnight 1/1/1970 = ");
Serial.print(now.unixtime());
Serial.print("s = ");
Serial.print(now.unixtime() / 86400L);
Serial.println("d");
// вычислить дату, которая наступит через 7 дней и 30 секунд
DateTime future (now + TimeSpan(7,12,30,6));
Serial.print(" now + 7d + 30s: ");
Serial.print(future.year(), DEC);
Serial.print('/');
Serial.print(future.month(), DEC);
Serial.print('/');
Serial.print(future.day(), DEC);
Serial.print(' ');
Serial.print(future.hour(), DEC);
Serial.print(':');
Serial.print(future.minute(), DEC);
Serial.print(':');
Serial.print(future.second(), DEC);
Serial.println();
Serial.println();
delay(3000);
}

Если я использую 57600, я получу случайные символы в одной строке 1 строка. Я подключил PIN5 IN1307N к A4, PIN4 IN1307N к A5
@antoniomerlin, 👍0
Обсуждение1 ответ
Лучший ответ:
▲ 0

Эта схема решила мою проблему, но я все еще не понимаю разницу между DS1307 и IN1307N.
,
@antoniomerlin
Разницы быть не должно. Просто разные заводы производят чипы., @KIIV
Смотрите также:
- Разница между «time_t» и «DateTime»
- Создание таймера с использованием часов реального времени с указанием времени начала и остановки
- Библиотека времени Arduino и библиотеки RTC
- Ошибка модуля часов реального Времени-DS3231
- DS3231 rtc.begin() всегда возвращает false
- DS3231 Не совпадает время при выключении Arduino
- Adafruit RTC begin() не возвращает false
- Как установить управляющий регистр в модуле RTC DS3231 для Arduino UNO R3?
А как насчет подтягиваний на SDA/SCL?, @KIIV
да, применено. 10k на VCC, @antoniomerlin
Можно попробовать использовать 4k7 (или два 10k параллельно) и более короткие провода, но это всего лишь предположение. Можно попробовать [сканер I2C](http://playground.arduino.cc/Main/I2cScanner), если RTC вообще обнаружится. Кстати, значение 165 не так уж и случайно, как вы думаете. Это 0xF*10 + 0xF, то есть 0xFF в двоично-десятичном коде., @KIIV
Сканирование... Устройства I2C не найдены., @antoniomerlin
Проверьте проводку:
A4=SDA->PIN5,A5=SCL->PIN6(PIN4- это клеммаGND), @KIIVда, это связано.., @antoniomerlin