Načítání hodnot z RTC

Odpovědět
trajtr
Příspěvky: 1
Registrován: 09 říj 2020, 23:21
Reputation: 0

Načítání hodnot z RTC

Příspěvek od trajtr » 09 říj 2020, 23:37

Ahoj lidi,
pustil jsem se do malého projektu kde potřebuji pracovat s RTC. Mám Arduino UNO, RTC DS3231 přes I2C a LCD 2004 pres I2C. LCD zobrazuje čas i datum z RTC bez problémů. Moje slabé místo je že potřebuji z RTC vyčíst aktuální čas který potřebuji převést na sekundy a v programu porovnat s jinou proměnnou která je taky v sekundách. Už nad tím trávím nejeden večer a nic. Na úvodu programu, jak se inicializují knihovny, RTC i LCD, tak jsem se dočetl ze musím inicializovat proměnnou (třeba "datumCas") pro práci s časem : DateTime datumCas (někde je vidět typ proměnné jako RTCDateTime). V loopu se pak tato proměnná naplní z RTC datumCas = rtc.getDateTime() a dále se s ní může pracovat po částech třeba jako Serial.print(datumCas.hour);

Jenže já neprojdu kompilací, hned u inicializace proměnné "DateTime" mi to vyhodí chybu.

Zkoušel jsem několik knihoven ale také bez úspěchu 😭😭

Jak dál, poradí někdo?
Přílohy
02 - chyba pri kompilaci.PNG
02 - chyba pri kompilaci.PNG (6.8 KiB) Zobrazeno 3331 x
01 - úvodní knihovny.PNG
01 - úvodní knihovny.PNG (8.59 KiB) Zobrazeno 3331 x

Hanz
Příspěvky: 262
Registrován: 25 dub 2019, 23:52
Reputation: 0

Re: Načítání hodnot z RTC

Příspěvek od Hanz » 10 říj 2020, 00:40

myslím, že ti tam chybí knihovna
#include <DateTime.h>
a je lepším dát celý kód ;)

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Načítání hodnot z RTC

Příspěvek od pavel1tu » 10 říj 2020, 20:14

Nepoužívej název DateTime, ale tak jak je to v příkladech ;)
Taky nechápu to

Kód: Vybrat vše

DS3231 rtc(SDA,SCL);

Kód: Vybrat vše

#include <Wire.h>
#include <DS3231.h>
// inicializace RTC z knihovny
DS3231 rtc;
// vytvoření proměnné pro práci s časem
RTCDateTime datumCas;

void setup() {
  // zahájení komunikace po sériové lince
  // rychlostí 9600 baud
  Serial.begin(9600);
  // zahájení komunikace s RTC obvodem
  rtc.begin();
  // nastavení času v RTC podle času kompilace programu,
  // stačí nahrát jednou
  // rtc.setDateTime(__DATE__, __TIME__);
  // přímé nastavení času pro RTC
  //rtc.setDateTime(__DATE__, "12:34:56");
}
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Načítání hodnot z RTC

Příspěvek od kiRRow » 11 říj 2020, 09:26

A tady to právě záleží na tom co máš za knihovnu. V jedné verzi (ta za arduino navodu) co jsem našel je :

Kód: Vybrat vše

struct RTCDateTime
{
    uint16_t year;
    uint8_t month;
    uint8_t day;
    uint8_t hour;
    uint8_t minute;
    uint8_t second;
    uint8_t dayOfWeek;
    uint32_t unixtime;
};
Jiná knihovna má zase :

Kód: Vybrat vše

class DateTime {
public:
    DateTime (uint32_t t =0);
    DateTime (uint16_t year, uint8_t month, uint8_t day,
                uint8_t hour =0, uint8_t min =0, uint8_t sec =0);
    DateTime (const char* date, const char* time);
    uint16_t year() const       { return 2000 + yOff; }
    uint8_t month() const       { return m; }
    uint8_t day() const         { return d; }
    uint8_t hour() const        { return hh; }
    uint8_t minute() const      { return mm; }
    uint8_t second() const      { return ss; }
    uint8_t dayOfTheWeek() const;

    // 32-bit times as seconds since 1/1/2000
    long secondstime() const;
    // 32-bit times as seconds since 1/1/1970
    // THE ABOVE COMMENT IS CORRECT FOR LOCAL TIME; TO USE THIS COMMAND TO
    // OBTAIN TRUE UNIX TIME SINCE EPOCH, YOU MUST CALL THIS COMMAND AFTER
    // SETTING YOUR CLOCK TO UTC
    uint32_t unixtime(void) const;

protected:
    uint8_t yOff, m, d, hh, mm, ss;
};
A proto máme rádi, když někdo kdo chce najít chybu, nebo pomoc, pošle celý kód i s odkazy na knihovny, které používá. Ideálně i se schématem zapojení.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 11 hostů