Часы реального времени Pcf8563
Как раз пытался на прошлой неделе, но не сложилось.
Вопроса два.
Шину I2C сканировали? Адрес какой? На шине резики к + питания стоят?
Просканировал, 51 адрес. Да, стоят
Код: Выделить всё
// Date and time functions using a PCF8523 RTC connected via I2C and Wire lib
#include "RTClib.h"
RTC_PCF8523 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup () {
while (!Serial) {
delay(1); // for Leonardo/Micro/Zero
}
Serial.begin(57600);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (! rtc.initialized()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2019, 8, 14, 16, 35, 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");
// calculate a date which is 7 days, 12 hours and 30 seconds into the future
DateTime future (now + TimeSpan(7,12,30,6));
Serial.print(" now + 7d + 12h + 30m + 6s: ");
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);
}
Код: Выделить всё
16:35:34.976 -> RTC is NOT running!
16:35:34.976 -> 2165/165/165 (Sunday) 165:165:85
16:35:34.976 -> since midnight 1/1/1970 = 1535240785s = 17768d
16:35:35.010 -> now + 7d + 12h + 30m + 6s: 2018/9/2 12:16:31
16:35:35.010 ->
16:35:38.009 -> 2165/165/165 (Sunday) 165:165:85
16:35:38.009 -> since midnight 1/1/1970 = 1535240785s = 17768d
16:35:38.009 -> now + 7d + 12h + 30m + 6s: 2018/9/2 12:16:31
16:35:38.044 ->
16:35:41.041 -> 2165/165/165 (Sunday) 165:165:85
16:35:41.041 -> since midnight 1/1/1970 = 1535240785s = 17768d
16:35:41.041 -> now + 7d + 12h + 30m + 6s: 2018/9/2 12:16:31
16:35:41.075 ->
16:35:44.066 -> 2165/165/165 (Sunday) 165:165:85
16:35:44.101 -> since midnight 1/1/1970 = 1535240785s = 17768d
16:35:44.101 -> now + 7d + 12h + 30m + 6s: 2018/9/2 12:16:31
16:35:44.101 ->
16:35:47.106 -> 2165/165/165 (Sunday) 165:165:85
16:35:47.106 -> since midnight 1/1/1970 = 1535240785s = 17768d
16:35:47.106 -> now + 7d + 12h + 30m + 6s: 2018/9/2 12:16:31
16:35:47.137 ->
Жаль блока для будильника нет.
Будильник пока не доделан и не протестированfsergei70 писал(а): ↑23.08.2019{, 10:08}Жаль блока для будильника нет.
Отправлено спустя 7 минут 19 секунд:
В описании будильника на сайте говорится что можно управлять пином INT (interrupt), если это реализовать то можно будет будить микроконтроллер часами, или перезагружать. https://habr.com/ru/post/463265/
Тему уже с SSSergeich обсуждали, в процессе.
Добрый вечер! В блоке установки часов после компиляции не хватает двух первых строк:
Добрый вечер!
Да, не догадался, просто тестировал новый модуль, привык ранее делать установку отдельной программой.SSSergeich писал(а): ↑11.12.2019{, 20:57}Редко когда используют только установку времени, без его получения потом
Спасибо!SSSergeich писал(а): ↑11.12.2019{, 20:57}если Вам нужен только этот блок в проекте, без получения данных потом, то