Hogyan és miért adjunk valós idejű órát az Arduino -hoz

Hogyan és miért adjunk valós idejű órát az Arduino -hoz

Az Arduino projekteken való időtöltés nem olyan egyszerű, mint gondolná: ha a számítógépkapcsolat nincs meg, az áramtalan Arduino egyszerűen leáll, beleértve a belső jelölőt is.





játékok, amelyeket szövegen keresztül játszhat

Annak érdekében, hogy szinkronban tartsa Arduino -ját a környező világgal, szüksége lesz az úgynevezett „Valós idejű óra modulra”. Így használjon egyet.





Mi értelme van a valós idejű órának (RTC)?

A számítógép nagy valószínűséggel szinkronizálja az idejét az internettel, de még mindig rendelkezik egy belső órával, amely még internetkapcsolat nélkül is működik, vagy ha ki van kapcsolva. Ha egy számítógéphez csatlakoztatott Arduino -t használ, akkor hozzáférhet a rendszeróra által megadott pontos időhöz. Ez nagyon hasznos, de a legtöbb Arduino projektet úgy tervezték, hogy távol legyenek a számítógéptől - ekkor, amikor az áramellátás ki van húzva, vagy az Arduino újraindul, fogalma sincs arról, hány óra van. A belső óra alaphelyzetbe áll, és a következő bekapcsoláskor újra nulláról kezd számolni.





Ha a projektnek bármi köze van az időigényhez - például az éjszakai fényemhez és a napkelte ébresztőórámhoz -, akkor ez nyilvánvalóan probléma lesz. Ebben a projektben megkerültük a problémát úgy, hogy minden este kézzel állítottuk be az időt meglehetősen nyers módon - a felhasználó közvetlenül a lefekvés előtt megnyomta a reset gombot, kézi időszinkronizálást biztosítva. Nyilvánvaló, hogy ez nem ideális hosszú távú megoldás.

Az RTC modul egy további áramkör, amelyhez egy kis gombelem szükséges, amely akkor is számolja az időt, amikor az Arduino ki van kapcsolva. Az egyszeri beállítás után ez az idő megmarad az akkumulátor élettartamára, általában jó egy évre.



TinyRTC

Az Arduino legnépszerűbb RTC-jét TinyRTC-nek hívják, és körülbelül 5-10 dollárért vásárolható meg az eBay-en. Valószínűleg saját akkumulátort kell biztosítania (tilos ezeket a tengerentúlra sok helyre szállítani), és néhány fejlécet (a lyukakba illeszkedő csapokat, amelyeket be kell forrasztania).

Ez a modul van nálam:





Még beépített hőmérséklet-érzékelővel is rendelkezik, bár az akkumulátor tovább tart, ha nem használja.

A lyukak száma azon a dologon elég ijesztőnek tűnik, de csak négyre van szüksége; GND, VCC, SCL és SDA - használhatja a megfelelő csapokat az RTC modul mindkét oldalán. Beszél az órával I2C protokoll , ami azt jelenti, hogy csak két érintkezőt használnak - egyet az 'óra' (soros kommunikációs adatóra, semmi köze az időhöz) és egyet az adatokhoz. Valójában akár 121 I2C eszközt is láncolhat ugyanazon a két érintkezőn - nézze meg ezt az Adafruit oldalt további I2C eszközök kiválasztásához hozzáadhat, mert sok van!





Elkezdeni

Csatlakoztassa a TinyRTC modult az alábbi ábra szerint - a rózsaszín DS vonalra nincs szükség, mivel ez a hőmérséklet -érzékelőre vonatkozik.

Ezután töltse le a Idő és DS1307RTC könyvtárakat, és helyezze a kapott mappákat a mappájába /könyvtárak mappa.

Lépjen ki és indítsa újra az Arduino környezetet a könyvtárak és példák betöltéséhez.

A DS1307RTC menüben két példát talál: töltse fel és futtassa a Beállítani az időt példa először - ez az RTC -t a megfelelő időre állítja. A tényleges kóddal nem érdemes részletezni, csak tudnia kell, hogy a kezdeti időszinkronizálás végrehajtásához egyszer kell futtatnia.

Ezután nézze meg a példát a használatával ReadTest .

nem kapott csomagot az amazontól

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

Ne feledje, hogy a magot is beépítettük Drót.h könyvtár - ez az Arduino tartozéka, és az I2C -n keresztüli kommunikációra szolgál. Töltse fel a kódot, nyissa ki a soros konzolt 9600 baudon, és nézze meg, és az Arduino másodpercenként kimeneti az aktuális időt. Csodálatos!

A példa legfontosabb kódja a tmElements_t tm - ez egy szerkezet hogy a jelenlegi idővel fogunk feltöltődni; és a RTC.read (tm) függvény, amely az RTC modulból kapja meg az aktuális időt, beilleszti a miénkbe tm struktúrát, és igaz lesz, ha minden jól ment. Adja hozzá hibakeresési vagy logikai kódját az „if” utasításhoz, például nyomtatja ki az időt vagy reagáljon rá.

szükségem van egy microsoft fiókra?

Most, hogy tudja, hogyan kell elérni a megfelelő időt az Arduino segítségével, megpróbálhatja újraírni a napfelkelte riasztási projektjét, vagy létrehozhat egy LED szóórát - a lehetőségek végtelenek! Mit fogsz csinálni?

Képhitelek: Snootlab Flickr -en keresztül

Részvény Részvény Csipog Email Hogyan lehet megváltoztatni a Windows 10 asztal megjelenését

Szeretné tudni, hogyan teheti szebbé a Windows 10 -et? Használja ezeket az egyszerű testreszabásokat, hogy sajátjává tegye a Windows 10 rendszert.

Olvassa tovább
Kapcsolódó témák
  • DIY
  • Arduino
A szerzőről James Bruce(707 megjelent cikk)

James mesterséges intelligenciával rendelkezik, és rendelkezik CompTIA A+ és Network+ tanúsítvánnyal. Amikor nem a Hardware Reviews szerkesztőként van elfoglalva, élvezi a LEGO, a VR és a társasjátékokat. Mielőtt csatlakozott a MakeUseOf -hoz, fénytechnikus, angol tanár és adatközpont -mérnök volt.

Továbbiak James Bruce -tól

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, véleményeket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide
Kategória Diy