Како и зашто додати сат у реалном времену у Ардуино

Како и зашто додати сат у реалном времену у Ардуино

Одржавање времена на Ардуино пројектима није тако лако као што мислите





како преузимате иоутубе видео записе на свој иПхоне

Да би ваш Ардуино био синхронизован са светом који га окружује, биће вам потребан оно што се назива „Модул сата у реалном времену“. Ево како га користити.





Која је сврха сата у реалном времену (РТЦ)?

Ваш рачунар највероватније синхронизује своје време са интернетом, али и даље има интерни сат који наставља да ради чак и без интернет везе или је напајање искључено. Када користите Ардуино прикључен на рачунар, он има приступ тачном времену које обезбеђује системски сат. То је прилично корисно, али већина Ардуино пројеката је дизајнирана за употребу ван рачунара - у том тренутку, сваки пут кад се напајање искључи или када се Ардуино поново покрене, неће имати апсолутно појма колико је сати. Интерни сат ће се ресетовати и поново ће почети да броји од нуле следећи пут када се укључи.





Ако ваш пројекат има било какве везе са потребом времена - као што је моја ноћна лампица и будилник - то ће очигледно бити проблем. У том пројекту смо заобишли проблем ручним постављањем времена сваке ноћи на прилично груб начин - корисник би притиснуо дугме за ресетовање непосредно пре одласка у кревет, обезбеђујући ручну синхронизацију времена. Јасно је да то није идеално дугорочно решење.

РТЦ модул је додатни део кола, који захтева малу дугмасту батерију, која наставља да броји време чак и када је ваш Ардуино искључен. Након што је једном подешен - то време ће се задржати за животни век батерије, обично добрих годину дана.



ТиниРТЦ

Најпопуларнији РТЦ за Ардуино зове се ТиниРТЦ и може се купити за око 5-10 УСД на еБаиу. Највероватније ћете морати да набавите сопствену батерију (незаконито је слати ове производе у иностранство на многа места) и неке заглавље (иглице које се убацују у рупе, а које ћете морати сами да залемите).

Ово је модул који имам:





Чак има и уграђени сензор температуре, мада ће батерија трајати дуже ако је не користите.

Број рупа на тој ствари изгледа прилично застрашујуће, али требају вам само четири; ГНД, ВЦЦ, СЦЛ и СДА - можете користити одговарајуће пинове са обе стране РТЦ модула. Разговарате са сатом користећи И2Ц протокол , што значи да се користе само два пина - један за „сат“ (сат за серијске комуникационе податке, нема везе са временом) и један за податке. У ствари, чак и ланцем повежете до 121 И2Ц уређаја на иста два пина - одјавите се ову страницу Адафруит за избор других И2Ц уређаја можете додати, јер има много!





Почетак

Повежите свој ТиниРТЦ модул према доњем дијаграму - ружичаста ДС линија није потребна, јер је то за сензор температуре.

Затим преузмите време и ДС1307РТЦ библиотеке и поставите настале фасцикле у своју /библиотеке фолдер.

Изађите и поново покрените Ардуино окружење да бисте га учитали у библиотеке и примере.

У менију ДС1307РТЦ пронаћи ћете два примера: отпремите и покрените Одредити време први пример - ово ће поставити РТЦ на тачно време. Са стварним кодом не вреди улазити у детаље, само знајте да га морате покренути једном да бисте извршили почетну синхронизацију времена.

Затим погледајте пример употребе са РеадТест .

како послати захтев за пријатељство на фб

#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);
}

Имајте на уму да смо укључили и језгро Вире.х библиотека - ово долази са Ардуином и користи се за комуникацију преко И2Ц. Отпремите код, отворите серијску конзолу на 9600 бауда и гледајте, а ваш Ардуино сваке секунде приказује тренутно време. Дивно!

Најважнији код у примеру је креирање тмЕлементс_т тм - ово структура које ћемо попунити тренутним временом; и РТЦ.читано (тм) функција, која добија тренутно време из РТЦ модула, ставља га у наш тм структуру, и враћа труе ако је све прошло добро. Додајте свој исправљач грешака или логички код унутар изјаве „иф“, као што је штампање времена или реаговање на њега.

како направити нумерисану листу у екцелу

Сада када знате како да добијете право време са Ардуином, могли бисте покушати да препишете пројекат аларма за излазак сунца или направите ЛЕД сат за речи - могућности су бескрајне! Шта ћете направити?

Заслуге за слике: Сноотлаб Преко Флицкр -а

Објави Објави Твеет Емаил Како променити изглед и осећај ваше Виндовс 10 радне површине

Желите да знате како да Виндовс 10 изгледа боље? Користите ове једноставне прилагодбе да бисте Виндовс 10 учинили својим.

Прочитајте следеће
Повезане теме
  • ДИИ
  • Ардуино
О аутору Јамес Бруце(707 објављених чланака)

Јамес је дипломирао вештачку интелигенцију и има ЦомпТИА А+ и Нетворк+ сертификат. Кад није заузет као уредник прегледа хардвера, ужива у ЛЕГО, ВР и друштвеним играма. Пре него што се придружио МакеУсеОф -у, био је техничар осветљења, учитељ енглеског језика и инжењер дата центра.

Више од Јамеса Бруцеа

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили