Мазмұны:

DS1307 нақты уақыттағы RTC сағаты Arduino көмегімен: 4 қадам
DS1307 нақты уақыттағы RTC сағаты Arduino көмегімен: 4 қадам

Бейне: DS1307 нақты уақыттағы RTC сағаты Arduino көмегімен: 4 қадам

Бейне: DS1307 нақты уақыттағы RTC сағаты Arduino көмегімен: 4 қадам
Бейне: 7 projects Build LED LCD Alarm Clock using DS1307 with Arduino | Lesson 105 2024, Қыркүйек
Anonim
DS1307 Arduino көмегімен нақты уақыттағы RTC сағаты
DS1307 Arduino көмегімен нақты уақыттағы RTC сағаты

Бұл оқулықта біз нақты уақыт сағаты (RTC) және Arduino & Real Time Clock IC DS1307 қалай уақыт құралы ретінде біріктірілгенін білеміз.

Нақты уақыт сағаты (RTC) уақытты бақылауға және күнтізбені жүргізуге арналған, RTC пайдалану үшін алдымен оны ағымдағы күн мен уақытпен бағдарламалау керек. Бұл аяқталғаннан кейін, RTC регистрлерін уақыт пен күнді білу үшін кез келген уақытта оқуға болады. DS1307 - бұл I2C протоколында жұмыс істейтін RTC. Әр түрлі регистрлерден алынған мәліметтерді I2C байланысын қолдана отырып оқу үшін олардың адрестеріне қол жеткізу арқылы оқуға болады.

1 -қадам: Сізге қажет заттар

Сізге қажет заттар
Сізге қажет заттар
Сізге қажет заттар
Сізге қажет заттар
Сізге қажет заттар
Сізге қажет заттар

Бұл нұсқаулық үшін сізге қажет нәрселер:

Arduino Uno

Ds1307 rtc модулі

Өткізгіш сымдар

3.7В монеталық ұяшық

2 -қадам: Қосылымдар

Қосылымдар
Қосылымдар
Қосылымдар
Қосылымдар

Сурет бөлімінде бекітілген схматиктерді орындаңыз және бәрін схматикаға сәйкес қосыңыз.

3 -қадам: кодтау бөлігі

Кодтау бөлігі
Кодтау бөлігі

Arduino -ны RTC -ті ағымдағы күн мен уақытпен қамтамасыз ету үшін бағдарламалау; және RTC -ден күн мен уақытты оқу.

Мұнда біз GitHub -тан Уоттеротт DS1307 кітапханасын қолданатын боламыз.

Осы кітапхананы осы жерден жүктеп алыңыз.:

Кітапхананы шығарып, DS1307 атты қалтаны Arduino IDE кітапханалар қалтасының жолына қосыңыз.

Кітапхана Arduino IDE -ге қосылғаннан кейін, IDE ашыңыз және DS1307 кітапханасынан Мысал деп аталатын мысал эскизін ашыңыз.

Ескерту сөзі: мысалда эскизде, орнату циклінде rtc.set () функциясы қолданылады. Бұл функцияда айтылған ағымдағы күн мен уақыт аргументтерін жіберіңіз. Мысал эскизінде бұл мәлімдеме түсіндіріледі. Пікір қалдырыңыз және эскизді жүктеңіз. Эскиз жүктелгеннен кейін, мәлімдемеге қайтадан түсініктеме беріңіз және эскизді жүктеңіз. Егер бұл орындалмаса, Arduino UNO тақтасы электр қуатын өшіргеннен кейін қайта орнатылған немесе қосылған сайын, сіз орнатқан күн мен уақыт қайта -қайта орнатылады және сіз дәл қазіргі уақыт пен күнді оқи алмайсыз.

/* DS1307 RTC (нақты уақыттағы сағат) мысалы

Uno A4 (SDA), A5 (SCL) Mega 20 (SDA), 21 (SCL) Leonardo 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); }

Жоғарыдағы кодты көшіріп, оны arduino тақтасына жүктеңіз

4 -қадам: Уақытты алу

Уақыт алу
Уақыт алу
Уақыт алу
Уақыт алу

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

Ұсынылған: