Arduino Polska Forum
Działanie modułu RTC DS1307z - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Działanie modułu RTC DS1307z (/watek-dzia%C5%82anie-modu%C5%82u-rtc-ds1307z)



Działanie modułu RTC DS1307z - havoc777 - 11-02-2017

Witam szanownych forumowiczów.
Mam pytanie dotyczące modułu TinyRTC opartego na DS1307. Uruchomiłem przykład z projektu RTCnew autorstwa Peter Schmelzer, Oliver Kraus dostępnego na stronie https://code.google.com/archive/p/ds1307new/ na Arduino Mega2560.
Po odłączeniu zasilania arduino czas się zatrzymuje, po podłączeniu zasilanie z powrotem, czas wznawia się od momentu kiedy było wyłączone zasilanie. Jak na mój rozum to podtrzymanie bateryjne w module jest po to aby po ustawieniu czas był aktualny (coś na zasadzie podtrzymania bateryjnego biosu komputera)
Próbowałem różnych bibliotek dla DS1307 ale pojawiały się błędy. Zakładam że ta sytuacja powtarza się na różnych bibliotekach. Moje pytanie - czy taka sytuacja (zatrzymanie czasu) to coś normalnego dla tego modułu?


RE: Działanie modułu RTC DS1307z - namok - 11-02-2017

W przykładzie zawarte są uwagi autora odnośnie ustawienia czasu. Czy zastosowałeś się do nich?


RE: Działanie modułu RTC DS1307z - havoc777 - 11-02-2017

Prawdopodobnie ten czas nie był podawany z RTC. Próbowałem ustawić czas poprzez załączony przykład, ale wprowadzałem chyba w złym formacie dane. Jak dla mnie chyba zbyt zaawansowany był ten przykład. Natomiast rozwiązałem swój problem za pomocą prostego kodu:
Kod:
#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 rtc;

void setup () {
 Serial.begin(9600);
#ifdef AVR
 Wire.begin();
#else
 Wire1.begin(); // Shield I2C pins connect to alt I2C bus on Arduino Due
#endif
 rtc.begin();

 if (! rtc.isrunning()) {
   Serial.println("RTC is NOT running!");

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

 }
 
//  rtc.adjust(DateTime(2017, 2, 11, 18, 17, 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(now.hour(), DEC);
   Serial.print(':');
   Serial.print(now.minute(), DEC);
   Serial.print(':');
   Serial.print(now.second(), DEC);
   Serial.println();
   
   Serial.println();
   delay(10000);
}
Może się przyda się komuś takiemu jak ja.


RE: Działanie modułu RTC DS1307z - namok - 11-02-2017

(11-02-2017, 19:51)havoc777 napisał(a): Może się przyda się komuś takiemu jak ja.
Takiemu komuś przyda się czytanie dokumentacji/opisów/uwag.
Nie sztuka wziąć coś, wgrać gdzieś i narzekać że nie działa.


RE: Działanie modułu RTC DS1307z - havoc777 - 11-02-2017

Kolego - mądrze prawisz. W tym momencie chciałem sprawdzić moduł RTC (myślałem że coś w nim padło), a pobrałem chyba pięć różnych przykładów i bibliotek do niego które wyrzucały błędy. Z tego co pamiętam był kiedyś w przykładach time w arduino ide.