Мазмуну:

DS1307 Real Time Clock RTC Arduino менен: 4 кадам
DS1307 Real Time Clock RTC Arduino менен: 4 кадам

Video: DS1307 Real Time Clock RTC Arduino менен: 4 кадам

Video: DS1307 Real Time Clock RTC Arduino менен: 4 кадам
Video: Урок 99. Создание цифровых часов Arduino с использованием ЖК-дисплея DS3231 и семисегментного дисплея. 2024, Июнь
Anonim
DS1307 Real Time Clock RTC Arduino менен
DS1307 Real Time Clock RTC Arduino менен

Бул үйрөткүчтө биз Real Time Clock (RTC) жана Arduino & Real Time Clock IC DS1307 убакыт түзмөгү катары кантип чогулганын билебиз.

Чыныгы убакыт сааты (RTC) убакытты көзөмөлдөө жана календарды жүргүзүү үчүн колдонулат. RTC колдонуу үчүн, биз аны учурдагы күн жана убакыт менен программалашыбыз керек. Бул бүткөндөн кийин, RTC регистрлерин каалаган убакта окууга болот, убакытты жана датаны билүү үчүн. DS1307 - бул I2C протоколу боюнча иштеген RTC. Ар кандай реестрдеги маалыматтарды I2C байланышын колдонуу менен окуу үчүн алардын даректерине кирүү аркылуу окууга болот.

1 -кадам: Сизге керектүү нерселер

Сиз керек
Сиз керек
Сиз керек
Сиз керек
Сиз керек
Сиз керек

Бул көрсөтмөлөр үчүн сизге керектүү нерселер:

Arduino uno

Ds1307 rtc модулу

Өткөргүч зымдар

3.7v монета клеткасы

2 -кадам: Байланыштар

Байланыштар
Байланыштар
Байланыштар
Байланыштар

Сураныч, сүрөттөр бөлүмүндө тиркелген шматиктерди ээрчип, бардыгын схматика боюнча туташтырыңыз.

3 -кадам: Коддоо бөлүгү

Коддоо бөлүгү
Коддоо бөлүгү

Программалоо Arduino учурдагы датасы жана убактысы менен RTC тамактандыруу үчүн; жана RTCден датаны жана убакытты окуу.

Бул жерде биз GitHubдан Уоттеротт тарабынан DS1307 китепканасын колдонобуз.

Бул китепкананы бул жерден жүктөп алыңыз.:

Китепкананы чыгарып, DS1307 аттуу папканы Arduino IDEнин китепканалар папкасына кошуңуз.

Китепкана Arduino IDEге кошулгандан кийин, IDE ачыңыз жана DS1307 китепканасынан Мисал аттуу мисал эскизин ачыңыз.

Эскертүү сөзү: Мисалдын эскизинде, орнотуу циклинде rtc.set () функциясы колдонулат. Бул функцияга айтылгандай, учурдагы күн жана убакыт аргументтерин өткөрүп бериңиз. Мисалдын эскизинде бул билдирүүгө комментарий берилет. Комментарий калтырбаңыз жана эскизди жүктөңүз. Эскиз жүктөлгөндөн кийин, арызды кайра комментарийлеп, эскизди жүктөңүз. Эгерде бул аткарылбаса, Arduino UNO тактайы өчүрүлгөндөн кийин кайра орнотулганда же күйгүзүлгөндө, сиз койгон күн менен убакыт кайра -кайра коюлат жана так учурдагы убакытты жана датаны окуй албай каласыз.

/* DS1307 RTC (Real-Time-Clock) Мисал

Uno A4 (SDA), A5 (SCL) Mega 20 (SDA), 21 (SCL) Леонардо 2 (SDA), 3 (SCL) */

#"Wire.h" кошуу

#"DS1307.h" кошуу

DS1307 rtc;

void setup () { /*init Serial port* / Serial.begin (9600); while (! Сериялык); /*сериялык порттун туташуусун күт - Леонардо үчүн гана керек*/

/*init RTC*/ Serial.println ("RTC'ни баштоо …");

/*күндү+убакытты бир жолу коюңуз*/ rtc.set (0, 0, 8, 24, 12, 2014); /*08: 00: 00 24.12.2014 // сек, мүн, саат, күн, ай, жыл*/

/*токтотуу/тындыруу RTC*/// rtc.stop ();

/*RTC баштоо*/ rtc.start (); }

void loop () {uint8_t сек, мүн, саат, күн, ай; uint16_t жыл;

/*RTCден убакыт алуу*/ rtc.get (& сек, & мин, & саат, & күн, & ай, & жыл);

/*сериялык чыгаруу*/ Serial.print ("\ nУбакыт:"); Serial.print (саат, DEC); Serial.print (":"); Serial.print (мүн., DEC); Serial.print (":"); Serial.print (сек, DEC);

Serial.print ("\ nКүнү:"); Serial.print (күн, DEC); Serial.print ("."); Serial.print (ай, DEC); Serial.print ("."); Serial.print (жыл, DEC);

/*бир секунд күт*/ кечигүү (1000); }

Жогорудагы кодду көчүрүп, ардуино тактаңызга жүктөңүз

4 -кадам: Убакытты алуу

Убакыт алуу
Убакыт алуу
Убакыт алуу
Убакыт алуу

Баарын бириктирип, кодду arduino тактаңызга жүктөгөндөн кийин, arduino ide сериялык мониторун ачыңыз, андан кийин сиз сериалдык мониторуңуздагы датаны жана убакытты көрө аласыз, мен көрүп тургандай, мен өз убактымды көрө алам. Менин сериялык мониторумдагы күн, демо чыгаруу үчүн, жогорудагы сүрөттүн чыгышына кайрылып, долбооруңузга RTC саатын кошуп көңүл ачыңыз.

Сунушталууда: