Oldalforrás megtekintése Korábbi változatok Hivatkozások Exportálás PDF-be Share on ... Google+ Twitter LinkedIn Facebook Pinterest Telegram Tartalomjegyzék RTC / Időmérés DS1307 DS1307 portok DS1307 bekötése Github DS1307 példaprogram Források DS3231 DS3231 portok DS3231 bekötése DS3231 példaprogram DS3231 for Pi Források RTC / Időmérés DS1307 A DS1307 egy RTC (Real Time Clock) modul, mely az Arduinoval I²C kommunikációt folytat. Ez a modul tartalmaz egy DS1307 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 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 Arduino I²C scanner programmal tesztelni a modul jelenlétét. DS1307 portok pinleírásmegjegyzés BATaz akkumulátor (gombelem) feszülségszintjeitt mérhető a feszültségszint, többnyire nincs bekötve GNDgrundgrund VCC5V+ tápa modul tápellátása és az akkumulátor töltése SDAI²C dataI²C adatvonal SCLI²C clockI²C órajel DSDS18B20Hőmérsékletmérés kimenet, 1-wire busz csatlakozó SQnégyszögjel kimenetáltalában nincs bekötve, konfigurálható 1Hz, 4kHz, 8kHz vagy 32kHz kimenet 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 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 <Wire.h> #include <TimeLib.h> #include <DS1307RTC.h> 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 DS3231 A DS3231 egy RTC (Real Time Clock) modul, mely az Arduinoval I²C kommunikációt folytat. Ez a modul tartalmaz egy DS3231 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 Arduino I²C scanner programmal tesztelni a modul jelenlétét. DS3231 portok pinleírásmegjegyzés BATaz akkumulátor (gombelem) feszülségszintjeitt mérhető a feszültségszint, többnyire nincs bekötve GNDgrundgrund VCC5V+ tápa modul tápellátása és az akkumulátor töltése SDAI²C dataI²C adatvonal SCLI²C clockI²C órajel SQWnégyszögjel kimenetáltalában nincs bekötve, konfigurálható 1Hz, 1.024kHz, 4.096kHz, 8.192kHz kimenet 32Khznégyszögjel kimenetáltalában nincs bekötve, 32kHz kimenet DS3231 bekötése DS3231 példaprogram A DS3231 könyvtárat 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: FC-k hívása másodpercenként és percenként DS3231-gyel 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. 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/ >> Vissza az Arduino projektek listájához