Presnost DS3231 v čase

cz_marek
Příspěvky: 104
Registrován: 31 led 2018, 09:01
Reputation: 0

Re: Presnost DS3231 v čase

Příspěvek od cz_marek » 03 led 2022, 14:30

Parada - rozhodne zainvestuji do dobijeci baterky a upravy.

Diky za pomoc

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Presnost DS3231 v čase

Příspěvek od AstroMiK » 03 led 2022, 15:58

Používám nějaký levný modul nakoupený přes e-bay a je pravda, že ta automatická teplotní korekce mi taky nějak nefungovala.
Proto jsem nastavoval "Aging Ofset" registr napevno. Ladil jsem to několik týdnů, až jsem určil nějakou skoro správnou hodnotu.

Naposledy jsem seřizoval hodiny při změně času 28.11.2021 (67dní) a od té doby se mi zpozdilo RTC o 9 sekund.

analytik
Příspěvky: 148
Registrován: 26 čer 2020, 12:48
Reputation: 0
Bydliště: Děčín

Re: Presnost DS3231 v čase

Příspěvek od analytik » 03 led 2022, 16:05

Zajímalo by mě porovnání cen a dodacích lhůt laciných zahraničních dodavatelů proti tuzemským překupníkům jako jsou Hadex.cz, Dratek.cz nebo Laskarduino.cz. :)

cz_marek
Příspěvky: 104
Registrován: 31 led 2018, 09:01
Reputation: 0

Re: Presnost DS3231 v čase

Příspěvek od cz_marek » 04 led 2022, 20:34

Nasel jsem doma celkem 5 modulu z Aliku tak jsem vsechny nastavil na sekundu presne podle NTP casu a necham to bezet 10dnu a pak je zkontroluju a uvidim kolik bude smejdu.
Objednal jsem dnes 2 kousky z Hadexu tak jak dorazi hned je stejne prověřím - vzal jsem radeji 2 kousky kdybych nahodou dostal jeden nahodny smejd ktery se muze objevit i v jinak kvalitni serii...

Jindra
Příspěvky: 19
Registrován: 28 čer 2020, 22:24
Reputation: 0

Re: Presnost DS3231 v čase

Příspěvek od Jindra » 18 led 2022, 18:49

Ahoj,

koupil jsem tento modul na Ebay z Číny a taky není zrovna moc přesný od změny času letní - zimní udělá klidně několik minut.
Horší je, že i kdyby jsem do něj dal pozlacenou baterii posázenou démanty tak stejně po odpojení napájení ztratí čas, nebo se alespoň zastaví.

Nicméně nevíte někdo jak přímo Arduinem nastavit hodiny a minuty ? Umím to jen pomocí rtc.setDateTime("Nov 22 2020", "22:01:00")
kdy za text dodám řetězec a na jeho pozice pak nahrazuji proměnnými, jenže to znamená nejdřív načíst čas včetně datumu - poté nastavit a zase vložit do řetězce. Je to strašně složité respektive při použití kalendáře nepoužitelné. Někde jsem viděl příkaz příkaz rtc.setHour, ale nenašel jsem knihovnu, která tento příkaz obsahuje. Nejlepší by bylo zapsat hodnotu přímo pomocí Write, ale nevím adresu v paměti a formát hodnoty. Na vše mám 3% paměti.
Poradí někdo ??

peterple
Příspěvky: 156
Registrován: 22 zář 2021, 20:20
Reputation: 0

Re: Presnost DS3231 v čase

Příspěvek od peterple » 18 led 2022, 19:01

Informácie o chipe sa získavajú v jeho datasheete. Ten sa nájde googlením.
https://datasheets.maximintegrated.com/ ... df#page=11
3% volného miesta na pár I2C zapisov by malo byť dosť. Ale zaleží aj na tom aké to arduino je a ako je šikovný programátor. Takže to negarantujem.

Jindra
Příspěvky: 19
Registrován: 28 čer 2020, 22:24
Reputation: 0

Re: Presnost DS3231 v čase

Příspěvek od Jindra » 18 led 2022, 19:16

Díky,
kdybych uměl z datascheetu vyčíst adresu a formát + sestavit instrukci tak bych se neptal.

peterple
Příspěvky: 156
Registrován: 22 zář 2021, 20:20
Reputation: 0

Re: Presnost DS3231 v čase

Příspěvek od peterple » 18 led 2022, 19:53

Prepáč že som to nepochopil z tvojej otázky. Klikol si na odkaz?
Prvý stĺpec sú adresy. Hours - 02
Zapis po I2C
Priklady - Wire - Master_writer

Jindra
Příspěvky: 19
Registrován: 28 čer 2020, 22:24
Reputation: 0

Re: Presnost DS3231 v čase

Příspěvek od Jindra » 18 led 2022, 19:58

Wire.beginTransmission(0x68);
Wire.write(01h);
Wire.write(0000001);
Wire.endTransmission(); // stop transmitting
jedna minuta ??

Uživatelský avatar
SkullKeep
Příspěvky: 290
Registrován: 23 srp 2017, 18:51
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Presnost DS3231 v čase

Příspěvek od SkullKeep » 18 led 2022, 20:05

No já používám u svých hodin toto:

Kód: Vybrat vše

void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte dayOfMonth, byte month, byte year) {
  // sets time and date data to DS3231
  Wire.beginTransmission(RTC); //Adresa je prednastavena
  Wire.write(0); // set next input to start at the seconds register
  Wire.write(decToBcd(second)); // set seconds
  Wire.write(decToBcd(minute)); // set minutes
  Wire.write(decToBcd(hour)); // set hours
  Wire.write(decToBcd(dayOfWeek)); // set day of week (1=Sunday, 7=Saturday)
  Wire.write(decToBcd(dayOfMonth)); // set date (1 to 31)
  Wire.write(decToBcd(month)); // set month
  Wire.write(decToBcd(year)); // set year (0 to 99)
  Wire.endTransmission();
}
// prevod jednotek pro ulozeni dat do hodinoveho modulu
byte decToBcd(byte val) {
  return ((val / 10 * 16) + (val % 10));
}
:twisted: :?: :arrow: :geek: P. Q. M.

Odpovědět

Kdo je online

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