====== RTC / Időmérés ====== {{anchor:arduino_rtc}} {{ :wiki:arduino:ds1307.png?200|DS1307 RTC modul}} ===== DS1307 ===== {{anchor:ds1307}} A DS1307 egy RTC (Real Time Clock) modul, mely az Arduinoval [[hu:comm:bus_i2c#i2c|I²C]] kommunikációt folytat. Ez a modul tartalmaz egy DS1307 [[hu:comm:bus_i2c#i2c|I²C]] valós idejű RTC IC-t és egy 24C32 32K I²C EEPROM tárolót. Sőt, ráadásként egy DS18B20 hőmérséklet szenzort is integráltak a modulra, igaz, ez [[hu:comm:bus_1wire#1-wire|1-Wire]] kommunikációt igényel. A modul LIR2303 újratölthető lítium akkumulátorral van szerelve, és a töltőáramkört a modul tartalmazza. Ha a hőmérséklet-érzékelő ki van kapcsolva, az RTC modul akár egy évig is működhet egy töltéssel. Ezt a modult olyan például a adatgyűjtésre, vagy időzítési alkalmazásokhoz lehet felhasználni. Mivel a modul önműködően működik, az időadatok akkor is megmaradnak, ha az Arduino ki van kapcsolva, lehetővé téve olyan kis teljesítményű rendszerek kiépítését, amelyek hosszú távon is működhetnek az elemek cseréje nélkül. A modul nagyjából és maximum 1 percet téved havonta, pontossága meglehetősen érzékeny a külső hőmérsékletre. A DS3231 pontosság szempontjából jobb választás, ott az 1 perces eltérés egy év alatt tud összejönni, mivel belső oszcillátort használ. A kommunikáció összekötése után érdemes az [[hu:arduino:soft_basic#i_c_scanner|Arduino I²C scanner]] programmal tesztelni a modul jelenlétét. ==== DS1307 portok ==== ^pin^leírás^megjegyzés| |BAT|az akkumulátor (gombelem) feszülségszintje|itt mérhető a feszültségszint, többnyire nincs bekötve| |GND|grund|grund| |VCC|5V+ táp|a modul tápellátása és az akkumulátor töltése| |SDA|I²C data|I²C adatvonal| |SCL|I²C clock|I²C órajel| |DS|DS18B20|Hőmérsékletmérés kimenet, 1-wire busz csatlakozó| |SQ|négyszögjel kimenet|általában nincs bekötve, konfigurálható 1Hz, 4kHz, 8kHz vagy 32kHz kimenet| ==== DS1307 bekötése ==== {{:wiki:arduino:ds1307_wiring.jpg?400|DS1307 bekötése}} A lila szaggatott vonal a DS18B20 hőmérséklet-szenzor bekötését jelzi. Ez 1-wire kommunikációt igényel, melyet itt az Arduino 2. portján valósítottak meg. ==== Github ==== https://github.com/PaulStoffregen/DS1307RTC ==== DS1307 példaprogram ==== A DS1307 könyvtárat [[https://github.com/PaulStoffregen/DS1307RTC|innen, a GitHub-ról]] lehet letölteni. Ennek telepítése után az alábbi példaprogram is futtathatóvá válik. A modul kiolvasásához és az idő beállításához is található példa ugyanitt, a GitHub-on. A kiolvasóprogramot ide másolom: #include #include #include void setup() { Serial.begin(9600); while (!Serial) ; // wait for serial delay(200); Serial.println("DS1307RTC Read Test"); Serial.println("-------------------"); } void loop() { tmElements_t tm; if (RTC.read(tm)) { Serial.print("Ok, Time = "); print2digits(tm.Hour); Serial.write(':'); print2digits(tm.Minute); Serial.write(':'); print2digits(tm.Second); Serial.print(", Date (D/M/Y) = "); Serial.print(tm.Day); Serial.write('/'); Serial.print(tm.Month); Serial.write('/'); Serial.print(tmYearToCalendar(tm.Year)); Serial.println(); } else { if (RTC.chipPresent()) { Serial.println("The DS1307 is stopped. Please run the SetTime"); Serial.println("example to initialize the time and begin running."); Serial.println(); } else { Serial.println("DS1307 read error! Please check the circuitry."); Serial.println(); } delay(9000); } delay(1000); } void print2digits(int number) { if (number >= 0 && number < 10) { Serial.write('0'); } Serial.print(number); } ==== Források ==== http://www.hobbyist.co.nz/?q=real_time_clock \\ http://www.instructables.com/id/Arduino-Real-Time-Clock-DS1307/ \\ https://github.com/PaulStoffregen/DS1307RTC \\ {{ :wiki:arduino:ds3231.jpg?200|DS3231}} ===== DS3231 ===== {{anchor:ds3231}} A DS3231 egy RTC (Real Time Clock) modul, mely az Arduinoval [[hu:comm:bus_i2c#i2c|I²C]] kommunikációt folytat. Ez a modul tartalmaz egy DS3231 [[hu:comm:bus_i2c#i2c|I²C]] valós idejű RTC IC-t és egy 24C32 32K I²C EEPROM tárolót. A modul LIR2303 újratölthető lítium akkumulátorral van szerelve, és a töltőáramkört a modul tartalmazza. Ha a hőmérséklet-érzékelő ki van kapcsolva, az RTC modul akár egy évig is működhet egy töltéssel. Ezt a modult olyan például a adatgyűjtésre, vagy időzítési alkalmazásokhoz lehet felhasználni. Mivel a modul önműködően működik, az időadatok akkor is megmaradnak, ha az Arduino ki van kapcsolva, lehetővé téve olyan kis teljesítményű rendszerek kiépítését, amelyek hosszú távon is működhetnek az elemek cseréje nélkül. A modulon egy riasztásfunkció is elérhető. A korábbi, DS1307 modul nagyjából és maximum 1 percet téved havonta, pontossága meglehetősen érzékeny a külső hőmérsékletre. A DS3231 pontosság szempontjából jobb választás, itt az 1 perces eltérés egy év alatt tud összejönni, mivel belső oszcillátort használ. A kommunikáció összekötése után érdemes az [[hu:arduino:soft_basic#i_c_scanner|Arduino I²C scanner]] programmal tesztelni a modul jelenlétét. ==== DS3231 portok ==== ^pin^leírás^megjegyzés| |BAT|az akkumulátor (gombelem) feszülségszintje|itt mérhető a feszültségszint, többnyire nincs bekötve| |GND|grund|grund| |VCC|5V+ táp|a modul tápellátása és az akkumulátor töltése| |SDA|I²C data|I²C adatvonal| |SCL|I²C clock|I²C órajel| |SQW|négyszögjel kimenet|általában nincs bekötve, konfigurálható 1Hz, 1.024kHz, 4.096kHz, 8.192kHz kimenet| |32Khz|négyszögjel kimenet|általában nincs bekötve, 32kHz kimenet| ==== DS3231 bekötése ==== {{:wiki:arduino:ds3231_wiring.jpg?300|DS3231 bekötése}} ==== DS3231 példaprogram ==== A DS3231 könyvtárat [[https://github.com/rodan/ds3231|innen, a GitHubról]] lehet letölteni. Ennek telepítése után az alábbi példaprogram is futtathatóvá válik. A példatárban az alábbi programok használják a DS3231-t: * [[hu:arduino:soft_solutions|FC-k hívása másodpercenként és percenként DS3231-gyel]] ===== DS3231 for Pi ===== {{anchor:ds3231_for_pi}} Az, hogy ez a modul a Pi-hez készült, nem kell, hogy bárkit is elijesszen, ugyanis a modul tápjának jó a 3,3V és az 5V is, azaz simán működik Arduino-val is (kipróbáltam). Egyébként minden paraméterében és beállításában megegyezik a fenti DS3231-gyel. {{:wiki:arduino:ds3231_for_pi.png?300|DS3231 for Pi}} ==== Források ==== https://github.com/JChristensen/DS3232RTC \\ https://github.com/rodan/ds3231 \\ http://tronixstuff.com/2014/12/01/tutorial-using-ds1307-and-ds3231-real-time-clock-modules-with-arduino/ \\ **[[hu:project:arduino|>> Vissza az Arduino projektek listájához]]**