• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Działanie modułu RTC DS1307z
#1
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?
 
Odpowiedź
#2
W przykładzie zawarte są uwagi autora odnośnie ustawienia czasu. Czy zastosowałeś się do nich?
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#3
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.
 
Odpowiedź
#4
(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.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#5
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.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości