Kā un kāpēc Arduino pievienot reāllaika pulksteni

Kā un kāpēc Arduino pievienot reāllaika pulksteni

Laika pavadīšana Arduino projektos nav tik vienkārša, kā jūs varētu domāt: tiklīdz nav izveidots datora savienojums, jūsu bez jaudas esošais Arduino vienkārši pārtrauc darboties, ieskaitot tā iekšējo atzīmi.





kā iegūt pielāgotus snapchat filtrus

Lai jūsu Arduino būtu sinhronizēts ar apkārtējo pasauli, jums būs nepieciešams tā sauktais “reālā laika pulksteņa modulis”. Lūk, kā to izmantot.





Kāda ir reālā laika pulksteņa (RTC) jēga?

Jūsu dators, visticamāk, sinhronizē savu laiku ar internetu, taču tam joprojām ir iekšējs pulkstenis, kas turpina darboties pat bez interneta savienojuma vai ja strāva ir izslēgta. Kad izmantojat datoram pievienotu Arduino, tam ir pieejams precīzs laiks, ko nodrošina jūsu sistēmas pulkstenis. Tas ir diezgan noderīgi, taču lielākā daļa Arduino projektu ir paredzēti izmantošanai prom no datora - jebkurā brīdī, kad strāvas padeve tiek atvienota vai Arduino tiek restartēts, tam nebūs ne jausmas par pulksteni. Iekšējais pulkstenis tiks atiestatīts un nākamreiz, kad tas tiks ieslēgts, atkal sāks skaitīt no nulles.





Ja jūsu projektam ir kāds sakars ar nepieciešamību pēc laika, piemēram, mana naktsgaisma un modinātājs saullēktā, tas noteikti būs problēma. Šajā projektā mēs atrisinājām šo problēmu, manuāli iestatot laiku katru nakti diezgan rupjā veidā - lietotājs nospiedīs atiestatīšanas pogu tieši pirms gulētiešanas, nodrošinot manuālu laika sinhronizāciju. Skaidrs, ka tas nav ideāls ilgtermiņa risinājums.

RTC modulis ir papildu shēma, kurai nepieciešams neliels monētu šūnu akumulators, kas turpina skaitīt laiku pat tad, kad jūsu Arduino ir izslēgts. Pēc vienreizējas iestatīšanas - šis laiks saglabāsies akumulatora darbības laikā, parasti labs gads.



TinyRTC

Arduino populārāko RTC sauc par TinyRTC, un to var iegādāties par aptuveni USD 5–10 USD vietnē eBay. Visticamāk, jums būs jāpiegādā savs akumulators (šo preču piegāde uz ārzemēm uz daudzām vietām ir nelikumīga) un dažas galvenes (tapas, kas ievietotas caurumos, kuras jums vajadzēs pielodēt).

Šis ir mans modulis:





Tam pat ir iebūvēts temperatūras sensors, lai gan akumulators kalpos ilgāk, ja to neizmantojat.

Caurumu skaits uz šīs lietas izskatās diezgan biedējoši, bet jums ir nepieciešami tikai četri no tiem; GND, VCC, SCL un SDA - jūs varat izmantot atbilstošās tapas abās RTC moduļa pusēs. Jūs runājat ar pulksteni, izmantojot I2C protokols , kas nozīmē, ka tiek izmantotas tikai divas tapas - viena “pulkstenim” (sērijas sakaru datu pulkstenim, nav nekāda sakara ar laiku) un otra - datiem. Patiesībā jūs pat savienojat ķēdi līdz 121 I2C ierīcēm uz tām pašām divām tapām - pārbaudiet šī Adafruit lapa citu I2C ierīču izvēlei jūs varētu pievienot, jo to ir daudz!





Darba sākšana

Pievienojiet savu TinyRTC moduli saskaņā ar zemāk redzamo diagrammu - rozā DS līnija nav nepieciešama, jo tas attiecas uz temperatūras sensoru.

Tālāk lejupielādējiet Laiks un DS1307RTC bibliotēkas un ievietojiet iegūtās mapes savā /bibliotēkas mape.

Izejiet un restartējiet Arduino vidi, lai ielādētu bibliotēkās un piemēros.

Izvēlnē DS1307RTC atradīsit divus piemērus: augšupielādējiet un palaidiet Uzstādīt laiku piemērs vispirms - tas iestatīs RTC pareizo laiku. Faktiskais kods nav vērts iedziļināties, vienkārši ziniet, ka tas ir jāizpilda vienreiz, lai veiktu sākotnējo laika sinhronizāciju.

Tālāk apskatiet lietošanas piemēru ar ReadTest .

zils ekrāns ar skumjām sejas logiem 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);
}

Ņemiet vērā, ka esam iekļāvuši arī kodolu Vads.h bibliotēka - tas nāk ar Arduino un tiek izmantots saziņai, izmantojot I2C. Augšupielādējiet kodu, atveriet seriālo konsoli ar 9600 bodu un skatieties, un jūsu Arduino katru sekundi izvada pašreizējo laiku. Brīnišķīgi!

Svarīgākais piemērs ir a izveidošana tmElements_t tm - šis a struktūra ka mēs aizpildīsim pašreizējo laiku; un RTC.read (tm) funkcija, kas iegūst pašreizējo laiku no RTC moduļa, ievieto to mūsu tm struktūru un atgriež patiesību, ja viss noritēja labi. Pievienojiet atkļūdošanas vai loģikas kodu paziņojumam “ja”, piemēram, izdrukājiet laiku vai reaģējiet uz to.

kā Mac datorā izmantot xbox one kontrolieri

Tagad, kad jūs zināt, kā iegūt pareizo laiku ar Arduino, varat mēģināt pārrakstīt saullēkta modinātāja projektu vai izveidot LED vārdu pulksteni - iespējas ir bezgalīgas! Ko tu taisīsi?

Attēlu kredīti: Snootlab Izmantojot Flickr

Kopīgot Kopīgot Čivināt E -pasts Kā mainīt Windows 10 darbvirsmas izskatu

Vai vēlaties uzzināt, kā uzlabot Windows 10 izskatu? Izmantojiet šos vienkāršos pielāgojumus, lai padarītu Windows 10 savu.

Lasīt Tālāk
Saistītās tēmas
  • DIY
  • Arduino
Par autoru Džeimss Brūss(Publicēti 707 raksti)

Džeimsam ir mākslīgā intelekta bakalaura grāds, un viņam ir CompTIA A+ un Network+ sertifikāts. Kad viņš nav aizņemts kā aparatūras pārskatu redaktors, viņam patīk LEGO, VR un galda spēles. Pirms pievienošanās MakeUseOf viņš bija gaismas tehniķis, angļu valodas skolotājs un datu centra inženieris.

Vairāk no Džeimsa Brūsa

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu
Kategorija Diy