Вопрос по ds1307

sergeyovs1980
Offline
Зарегистрирован: 20.09.2015

Ув. знатоки подскажите пожалуйста как запомнить время на DS1307 при отключении основного питания (в данном скетче)?

#include <DHT.h>
#define DHTPIN 9     
#define DHTTYPE DHT11   
DHT dht(DHTPIN, DHTTYPE);
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
RTC_DS1307 RTC;
void setup () {
  dht.begin();
  lcd.begin(16, 2);
  Wire.begin();
Wire.beginTransmission(0x68);
Wire.write(0x07);
Wire.write(0x10);
Wire.endTransmission();  
    RTC.begin();
 RTC.adjust(DateTime(__DATE__, __TIME__));
  if (! RTC.isrunning()) {
    Serial.println("Error");  
  }
}
void loop () {
   DateTime now = RTC.now();
  int h = dht.readHumidity();
  int t = dht.readTemperature();  
   lcd.setCursor(1, 0);
   if ( now.hour() < 10)
   {
     lcd.print(" ");
     lcd.print(now.hour(), DEC);
   }
   else
   {
   lcd.print(now.hour(), DEC);
   }
   lcd.print(":");
   if ( now.minute() < 10)
   {
     lcd.print("0");
     lcd.print(now.minute(), DEC);
   }
   else
   {
   lcd.print(now.minute(), DEC);
   }
   lcd.print(":");
   if ( now.second() < 10)
   {
     lcd.print("0");
     lcd.print(now.second(), DEC);
   }
   else
   {
   lcd.print(now.second(), DEC);
   }
   lcd.print(" ");
   
   lcd.setCursor(12, 0);
   lcd.print(t);
   lcd.write(0b11011111);
   lcd.print("C");
    
   lcd.setCursor(0, 1);
   if ( now.day() < 10)
   {
     lcd.print("0");
     lcd.print(now.day(), DEC);
   }
   else
   {
   lcd.print(now.day(), DEC);
   }
   lcd.print("/");
   if ( now.month() < 10)
   {
     lcd.print("0");
     lcd.print(now.month(), DEC);
   }
   else
   {
   lcd.print(now.month(), DEC);
   }
   lcd.print("/");
   lcd.print(now.year(), DEC);
   lcd.print("");
   
   lcd.setCursor(12, 1);
   lcd.print(h);
   lcd.print(" %");
   delay(500);
}

 

avton
avton аватар
Offline
Зарегистрирован: 11.05.2014
Wire.endTransmission();  
    RTC.begin();
 //RTC.adjust(DateTime(__DATE__, __TIME__));
  if (! RTC.isrunning()) {
    Serial.println("Error");  

 

sergeyovs1980
Offline
Зарегистрирован: 20.09.2015

Спасибо помогло.

sergeyovs1980
Offline
Зарегистрирован: 20.09.2015

avton пишет:

Wire.endTransmission();  
    RTC.begin();
 //RTC.adjust(DateTime(__DATE__, __TIME__));
  if (! RTC.isrunning()) {
    Serial.println("Error");  

 

А не подскажите как сделать чтоб часы продолжали идти от батарейки?

avton
avton аватар
Offline
Зарегистрирован: 11.05.2014

они и так должны идти от батареи ,в чем проблема?

sergeyovs1980
Offline
Зарегистрирован: 20.09.2015

avton пишет:

они и так должны идти от батареи ,в чем проблема?

После отключения время показывает то которое установилось при заливке скетча

avton
avton аватар
Offline
Зарегистрирован: 11.05.2014

попробуйте просто пример из родной библиотеки ,без этой гремучей смеси)