RTC läuft ohne Strom nicht weiter

Hallo,

ich versuche gerade eine kleine Uhr mit Temperatur- und Feuchtigkeitsanzeige zu bauen.

Dafür verwende ich:
DS3231
DHT22
LCD 20 x 4
Arduino Uno R3

Mein Problem ist, dass meine RTC die Uhrzeit immer ab dem Zeitpunkt der Übertragung des Programmes anzeigt. Also wenn ich ihn mit Strom versorge, fängt die Zeit um 19:40 Uhr an zu laufen.

Aus verschiedenen Programmen habe ich mir jetzt folgenden Sketch gebaut:

#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <DHT.h>
RTC_DS3231 rtc;

LiquidCrystal_I2C lcd(0x27, 20, 4);

DHT dht(3,DHT22);

void setup(){
  dht.begin();
  Wire.begin(0x27);
  Wire.begin(0x68);
  rtc.begin();
  rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  
  lcd.begin(20,4);
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Hallo");
  delay(2000);
  lcd.clear();
}

void loop(){
  float temp = dht.readTemperature();
  float hum = dht.readHumidity();

  DateTime now = rtc.now();

  lcd.setCursor(0,0);
  lcd.print("Temperatur:  ");
  lcd.print(temp);
  lcd.print("\xDF");
  lcd.print("C");
  lcd.setCursor(0,1);
  lcd.print("Luftfeuchte: ");
  lcd.print(hum);
  lcd.print("%");
  lcd.setCursor(0,2);
  lcd.print("Datum:   ");
  lcd.print(now.day(), DEC);
  lcd.print(".");
  lcd.print(now.month(), DEC);
  lcd.print(".");
  lcd.print(now.year(), DEC);
  lcd.setCursor(0,3);
  lcd.print("Uhrzeit: ");
  lcd.print(now.hour(), DEC);
  lcd.print(":");
  lcd.print(now.minute(), DEC);
  
}

Könnt Ihr mir helfen, warum meine RTC nicht auch ohne externe Stromversorgung weiterläuft?

Tausche bitte mal Quote-Tags durch Code-Tags.

Gruß Tommy

onkz_94:

rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

Wenn Du die Uhr bei jedem Start auf die aktelle Übersetzungszeit stellst, läuft sie natürlich auch immer da los.

MicroBahner:
Wenn Du die Uhr bei jedem Start auf die aktelle Übersetzungszeit stellst, läuft sie natürlich auch immer da los.

Also den Setz-Befehl vor dem Setup verwenden?

Uhr einmal stellen, dann Zeile auskommentieren und neu hochladen

Also, eine RTC braucht eine ständige Stromversorgung, das macht die Batterie. Hast du die mal ersetzt? Evtl. ist die leer.

Hat geklappt, Dankeschön

Vor dem setup geht gar nicht. Nein, wenn Du sehen willst,dass die Uhr im stromlosen Zustand weiterläuft, darfst Du sie beim Start garnicht setzen. Entweder, Du baust eine Zeitsetzroutine in den Sketch ein, oder Du kommentierst das Setzen aus, nachdem es einmal durchgelaufen ist. Eine exakte Zeit kannst Du so aber nicht setzen.

Ok, zu spät :wink:

Hihi ... bei meinen ersten Spielereien mit einer RTC ist mir das Problem mit der nicht auskommentierten Zeit-setzen-Zeile beim zweiten Hochladen aufgefallen, weil die Zeit erneut ab dem von Hand eingegebenen Zeitpunkt los lief. Bei einer Zeile wie

   rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

Kommt man da nicht so schnell drauf. Technik ist ein hässliches, altes Weib!

Gruß

Gregor

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.