Kako i zašto dodati sat u stvarnom vremenu u Arduino

Kako i zašto dodati sat u stvarnom vremenu u Arduino

Održavanje vremena na Arduino projektima nije tako jednostavno kao što mislite





kako ubrzati vaš Windows 10

Kako bi vaš Arduino bio usklađen sa svijetom koji ga okružuje, trebat će vam ono što se naziva 'Modul sata u stvarnom vremenu'. Evo kako ga koristiti.





Koja je svrha sata u stvarnom vremenu (RTC)?

Vaše računalo najvjerojatnije sinkronizira svoje vrijeme s internetom, ali još uvijek ima unutarnji sat koji nastavlja raditi čak i bez internetske veze ili je napajanje isključeno. Kada koristite Arduino priključen na računalo, on ima pristup točnom vremenu koje vam daje sistemski sat. To je prilično korisno, ali većina Arduino projekata osmišljena je za korištenje izvan računala - u tom trenutku, svaki put kad se napajanje isključi ili kada se Arduino ponovo pokrene, neće imati apsolutno pojma koliko je sati. Unutarnji sat će se poništiti i sljedeći put će se ponovno početi brojati od nule.





Ako vaš projekt ima bilo kakve veze s potrebom vremena - poput moje noćne svjetlosti i budilice - to će očito biti problem. U tom smo projektu zaobišli problem ručnim postavljanjem vremena svake noći na prilično grub način - korisnik bi pritisnuo gumb za poništavanje neposredno prije odlaska u krevet, pružajući ručnu sinkronizaciju vremena. Jasno je da to nije idealno dugogodišnje rješenje.

RTC modul dodatni je sklop koji zahtijeva malu dugmastu bateriju koja nastavlja brojati vrijeme čak i kad je vaš Arduino isključen. Nakon što se jednom postavi - to će vrijeme ostati za cijeli životni vijek baterije, obično dobrih godinu dana.



TinyRTC

Najpopularniji RTC za Arduino zove se TinyRTC i može se kupiti za oko 5-10 USD na eBayu. Najvjerojatnije ćete morati nabaviti vlastitu bateriju (nezakonito je slati ih u inozemstvo na mnoga mjesta) i neke zaglavlje (igle koje se ubacuju u rupe, a koje ćete morati lemiti u sebi).

Ovo je modul koji imam:





Čak ima i ugrađeni senzor temperature, iako će baterija trajati dulje ako ga ne koristite.

Broj rupa na toj stvari izgleda prilično zastrašujuće, ali trebaju vam samo četiri; GND, VCC, SCL i SDA - možete koristiti odgovarajuće pinove s obje strane RTC modula. Razgovarate sa satom koristeći I2C protokol , što znači da se koriste samo dva pina - jedan za 'sat' (serijski podatkovni sat za komunikaciju, nema veze s vremenom) i jedan za podatke. Zapravo, čak možete povezati do 121 I2C uređaja na iste dvije pinove - provjerite ovu stranicu Adafruit za izbor drugih I2C uređaja mogli biste dodati, jer ima puno!





Početak rada

Priključite svoj TinyRTC modul prema donjem dijagramu - ružičasta DS linija nije potrebna, jer je to za osjetnik temperature.

Zatim preuzmite Vrijeme i DS1307RTC bibliotekama i rezultirajuće mape smjestite u svoju /knjižnice mapu.

Izađite i ponovo pokrenite Arduino okruženje za učitavanje u knjižnice i primjere.

U izborniku DS1307RTC pronaći ćete dva primjera: prenesite i pokrenite Postavi vrijeme prvi primjer - ovo će postaviti RTC na točno vrijeme. Sa stvarnim kodom ne vrijedi ulaziti u detalje, samo znajte da ga morate pokrenuti jednom da biste izvršili početnu sinkronizaciju vremena.

Zatim pogledajte primjer uporabe s ReadTest .

kako pristupiti bios windows 10

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

Imajte na umu da smo uključili i jezgru Žica.h knjižnica - ovo dolazi s Arduinom i koristi se za komunikaciju preko I2C. Učitajte kôd, otvorite serijsku konzolu na 9600 bauda i gledajte, a vaš Arduino svake sekunde prikazuje trenutno vrijeme. Čudesno!

Najvažniji kôd u primjeru je stvaranje tmElements_t tm - ovo struktura da ćemo popuniti trenutnim vremenom; i RTC. čitanje (tm) funkcija, koja dobiva trenutno vrijeme iz RTC modula, stavlja ga u naš tm strukturu i vraća true ako je sve prošlo dobro. Dodajte svoj kôd za otklanjanje pogrešaka ili logiku u izraz 'if', poput ispisivanja vremena ili reagiranja na njega.

kako preuzeti filmove sa web stranica

Sada kad znate kako dobiti pravo vrijeme s Arduinom, mogli biste pokušati prepisati projekt alarma za izlazak sunca ili stvoriti LED LED sat - mogućnosti su beskrajne! Što ćete napraviti?

Zasluge za slike: Snootlab Preko Flickra

Udio Udio Cvrkut E -pošta Kako promijeniti izgled i osjećaj radne površine sustava Windows 10

Želite li znati kako Windows 10 izgledati bolje? Pomoću ovih jednostavnih prilagodbi Windows 10 učinite svojim.

Pročitajte Dalje
Povezane teme
  • Uradi sam
  • Arduino
O autoru James Bruce(707 objavljenih članaka)

James je diplomirao umjetnu inteligenciju i ima CompTIA A+ i Network+ certifikat. Kad nije zaposlen kao urednik pregleda hardvera, uživa u LEGO -u, VR -u i društvenim igrama. Prije nego što se pridružio MakeUseOfu, bio je tehničar rasvjete, učitelj engleskog jezika i inženjer podatkovnog centra.

Više od Jamesa Brucea

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu