Stránka 2 z 3
Re: Presnost DS3231 v čase
Napsal: 03 led 2022, 14:30
od cz_marek
Parada - rozhodne zainvestuji do dobijeci baterky a upravy.
Diky za pomoc
Re: Presnost DS3231 v čase
Napsal: 03 led 2022, 15:58
od AstroMiK
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.
Re: Presnost DS3231 v čase
Napsal: 03 led 2022, 16:05
od analytik
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.

Re: Presnost DS3231 v čase
Napsal: 04 led 2022, 20:34
od cz_marek
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...
Re: Presnost DS3231 v čase
Napsal: 18 led 2022, 18:49
od Jindra
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 ??
Re: Presnost DS3231 v čase
Napsal: 18 led 2022, 19:01
od peterple
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.
Re: Presnost DS3231 v čase
Napsal: 18 led 2022, 19:16
od Jindra
Díky,
kdybych uměl z datascheetu vyčíst adresu a formát + sestavit instrukci tak bych se neptal.
Re: Presnost DS3231 v čase
Napsal: 18 led 2022, 19:53
od peterple
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
Re: Presnost DS3231 v čase
Napsal: 18 led 2022, 19:58
od Jindra
Wire.beginTransmission(0x68);
Wire.write(01h);
Wire.write(0000001);
Wire.endTransmission(); // stop transmitting
jedna minuta ??
Re: Presnost DS3231 v čase
Napsal: 18 led 2022, 20:05
od SkullKeep
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));
}