0 голосов
Всем здравствуйте. Есть вопрос. Как исправить "заморозку" времени на часах реального времени ds1307.

Вот код:
#include <Wire.h>
#include <TroykaRTC.h>
#define RELAY_PIN 9
RTC clock;

void setup() {
  Serial.begin(9600);
  clock.begin();
  clock.set(__TIMESTAMP__);
  clock.set();
  pinMode(RELAY_PIN, OUTPUT);
  
}

void loop() {
  
  String timeStr;
  String dateStr;
  String weekDayStr;
  clock.read();
  clock.getTimeStamp(timeStr, dateStr, weekDayStr);
  Serial.print(timeStr);
  Serial.print("\t");
  Serial.print(dateStr);
  Serial.print("\t");
  Serial.println(weekDayStr);
  delay(1000);
  if (timeStr == "20:20:00") {
    digitalWrite(RELAY_PIN, HIGH);
  }
  if (timeStr == "20:40:00") {
    digitalWrite(RELAY_PIN, LOW);
      
  
     }
  }
(12 баллов) 2 6
исправил
Что вы понимаете под заморозкой?
Остановку подсчёта времени после отключения питания.
А вы ставили батарейку? Часы могут питаться от внешнего источника питания (Ардуино ) или от внутреннего - батарейка cr2032
да, я ставил батарейку.
Проверьте правильность установки батареи (- к низу), и её исправность, также неплохо бы узнать какой код вы используете.

2 Ответы

0 голосов
 
Лучший ответ
А эта строка: clock.set(__TIMESTAMP__);  у вас точно не закоментирована? Если она не закомментирована, счет времени будет всегда начинаться с одного места. Вы не это называете заморозкой?
(256 баллов) 1 3 14
выбран
0 голосов
А этот код рабочий?

delay 1000 - это время микроконтроллер спит ,и по прошествии секунды просыпается И в один прекрасный момент,  он просто проспит время, которое установлено как будильник.

Будет так:

На часах 20:20:00

delay (1000);

На часах 20:20:01

Условие

 if (timeStr == "20:20:00") {
    digitalWrite(RELAY_PIN, HIGH);
  }

Будильник не сработал!

Так что 1000 нужно заменить на 800 хотя бы.
(593 баллов) 4 8 19
исправил
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. KrSV

    2 балл(ов)

  2. Палыч

    2 балл(ов)

  3. Дамир

    2 балл(ов)

  4. lcco

    2 балл(ов)

  5. Ergamister

    2 балл(ов)

  6. Александр312

    2 балл(ов)

...