Paano at Bakit Magdagdag ng isang Oras ng Oras sa Arduino

Paano at Bakit Magdagdag ng isang Oras ng Oras sa Arduino

Ang pagpapanatili ng oras sa mga proyekto ng Arduino ay hindi ganoon kadali sa maaari mong isipin: sa sandaling ang koneksyon ng computer ay wala doon, ang iyong walang kapangyarihan na Arduino ay titigil lamang sa pagtakbo, kasama ang panloob na ticker nito.





kung paano i-bypass ang administrator password windows 10

Upang mapanatili ang iyong Arduino na naka-sync sa mundo sa paligid nito, kakailanganin mo ang tinatawag na 'Real Time Clock module'. Narito kung paano gumamit ng isa.





Ano ang punto ng isang Real Time Clock (RTC)?

Ang iyong computer ay malamang na nagsi-sync ng oras nito sa internet, ngunit mayroon pa ring panloob na orasan na nagpapatuloy kahit na walang koneksyon sa Internet o naka-off ang kuryente. Kapag gumamit ka ng isang Arduino na naka-plug sa isang computer, mayroon itong access sa tumpak na oras na ibinigay ng iyong orasan ng system. Iyon ay lubos na kapaki-pakinabang, ngunit ang karamihan sa mga proyekto ng Arduino ay idinisenyo upang magamit ang layo mula sa isang computer - sa oras na iyon, anumang oras na ang kapangyarihan ay hindi naka-plug, o ang Arduino ay nag-restart, wala talagang ideya kung anong oras na ito. Ang panloob na orasan ay mai-reset at magsisimulang magbilang muli mula sa zero sa susunod na ito ay pinalakas.





Kung ang iyong proyekto ay may kinalaman sa kailangan ng oras - tulad ng aking nightlight at sunrise alarm clock - malinaw na magiging isyu ito. Sa proyektong iyon, nakuha namin ang isyu sa pamamagitan ng manu-manong pagtatakda ng oras bawat gabi sa isang medyo krudo - pipilitin ng gumagamit ang pindutan ng pag-reset bago sila matulog, na nagbibigay ng manu-manong pag-sync ng oras. Malinaw na hindi iyon isang perpektong pangmatagalang solusyon.

Ang isang module ng RTC ay isang karagdagang piraso ng circuitry, na nangangailangan ng isang maliit na baterya ng cell ng coin, na patuloy na binibilang ang oras kahit na naka-off ang iyong Arduino. Matapos maitakda nang isang beses - itatago nito ang oras na iyon para sa buhay ng baterya, karaniwang isang magandang taon o higit pa.



TinyRTC

Ang pinakatanyag na RTC para sa Arduino ay tinatawag na TinyRTC at mabibili ng humigit-kumulang na $ 5- $ 10 sa eBay. Malamang na kakailanganin mong ibigay ang iyong sariling baterya (labag sa batas na ipadala ang mga ito sa ibang bansa sa maraming mga lugar), at ilang mga header (ang mga pin na puwang sa mga butas, na kakailanganin mong maghinang sa iyong sarili).

Ito ang modyul na mayroon ako:





Mayroon pa itong built-in na sensor ng temperatura, kahit na ang baterya ay magtatagal kung hindi mo ito ginagamit.

Ang bilang ng mga butas sa bagay na iyon ay mukhang nakakatakot, ngunit kailangan mo lamang ang apat sa kanila; GND, VCC, SCL at SDA - maaari mong gamitin ang mga nauugnay na mga pin sa magkabilang panig ng module na RTC. Kausapin mo ang orasan gamit I2C na protokol , na nangangahulugang dalawang mga pin lamang ang ginagamit - isa para sa 'orasan' (isang serial data data na komunikasyon, walang kinalaman sa oras) at isa para sa data. Sa katunayan, nag-chain ka rin ng hanggang sa 121 I2C na aparato sa parehong dalawang mga pin - suriin ang pahina ng Adafruit na ito para sa isang pagpipilian ng iba pang mga aparato ng I2C na maaari mong idagdag, dahil maraming!





Nagsisimula

I-hook up ang iyong module ng TinyRTC alinsunod sa diagram sa ibaba - hindi kinakailangan ang linya ng rosas na DS, dahil iyan para sa sensor ng temperatura.

Susunod, i-download ang Oras at DS1307RTC aklatan at ilagay ang mga nagresultang folder sa iyong / aklatan folder.

Lumabas at ilunsad muli ang kapaligiran ng Arduino upang mai-load sa mga aklatan at halimbawa.

Makakakita ka ng dalawang halimbawa sa menu ng DS1307RTC: i-upload at patakbuhin ang SetTime halimbawa muna - itatakda nito ang RTC sa tamang oras. Ang aktwal na code ay hindi nagkakahalaga ng pagdedetalye sa, malaman lamang na kailangan mo itong patakbuhin nang isang beses upang maisagawa ang paunang pagsasabay sa oras.

Susunod, tingnan ang halimbawang paggamit ng ReadTest .

kung paano lumikha ng isang recovery drive

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

Tandaan na isinama din namin ang core Wire.h library - kasama ito ng Arduino at ginagamit para sa pakikipag-usap sa paglipas ng I2C. I-upload ang code, buksan ang serial console sa 9600 baud, at panoorin at ang iyong Arduino ay naglalabas ng kasalukuyang oras bawat segundo. Kahanga-hanga!

Ang pinakamahalagang code sa halimbawa ay ang paglikha ng a tmMga Elemento_t tm - ito ay istraktura na mamuhay tayo sa kasalukuyang oras; at ang RTC.read (tm) Ang pagpapaandar, na nakakakuha ng kasalukuyang oras mula sa module ng RTC, ay inilalagay sa atin tm istraktura, at nagbabalik totoo kung naging maayos ang lahat. Idagdag ang iyong debug o lohika code sa loob ng pahayag na 'kung', tulad ng pag-print ng oras o pagtugon dito.

paano ka makakagawa ng iyong sariling snapchat filter

Ngayon na alam mo kung paano makakuha ng tamang oras kasama ang Arduino, maaari mong subukang muling isulat ang proyekto ng alarm ng pagsikat o lumikha ng isang LED na orasan ng salita - ang mga posibilidad ay walang katapusan! Ano ang gagawin mo?

Mga Kredito sa Larawan: Snootlab Sa pamamagitan ni Flickr

Magbahagi Magbahagi Mag-tweet Email Paano Baguhin ang hitsura at pakiramdam ng iyong Windows 10 Desktop

Nais bang malaman kung paano gawing mas mahusay ang Windows 10? Gamitin ang simpleng mga pagpapasadya na ito upang gawin ang iyong Windows 10 na iyong sarili.

Basahin Susunod
Mga Kaugnay na Paksa
  • DIY
  • Arduino
Tungkol sa May-akda James Bruce(707 Mga Artikulo Nai-publish)

Si James ay mayroong BSc sa Artipisyal na Katalinuhan at sertipikado sa CompTIA A + at Network +. Kapag hindi siya abala bilang Hardware Review Editor, nasisiyahan siya sa LEGO, VR, at mga board game. Bago sumali sa MakeUseOf, siya ay isang tekniko sa pag-iilaw, guro ng Ingles, at inhinyero ng data center.

Higit pa Mula kay James Bruce

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe
Kategorya Diy