Ang batay sa Arduino na Real time na orasan ay isang digital na orasan upang maipakita ang real time gamit ang isang RTC IC DS1307 na gumagana sa I2C protocol. Ang ibig sabihin ng real time na orasan ay tumatakbo ito kahit na pagkabigo ng kuryente. Kapag nakakonekta muli ang kuryente, ipinapakita nito ang totoong oras na hindi tumututol sa oras at tagal na ito ay wala sa estado. Sa proyekto ng alarming Arduino na ito nagamit namin ang isang 16x2 LCD module upang maipakita ang oras sa format na "oras, minuto, segundo, petsa, buwan at taon". Ang isang pagpipilian sa Alarm ay idinagdag din at maaari naming i-set up ang oras ng alarma. Sa sandaling ang oras ng alarma ay nai-save sa panloob na EEPROM ng arduino, nananatili itong nai-save kahit na matapos ang pag-reset o pagkabigo sa kuryente. Ang mga real time na orasan ay karaniwang ginagamit sa aming mga computer, bahay, tanggapan at aparato ng electronics para mapanatili itong na-update gamit ang real time.
Ang I2C protocol ay isang pamamaraan upang ikonekta ang dalawa o higit pang mga aparato gamit ang dalawang wires sa isang solong system, at sa gayon ang protokol na ito ay tinatawag ding dalawang wire protocol. Maaari itong magamit upang maipaabot ang 127 mga aparato sa isang solong aparato o processor. Karamihan sa mga aparato ng I2C ay tumatakbo sa dalas ng100Khz.
Mga hakbang para sa master ng pagsulat ng data sa alipin (mode ng pagtanggap ng alipin)
- Nagpapadala ng simulang kondisyon sa alipin.
- Nagpapadala ng address ng alipin sa alipin.
- Magpadala ng sumulat ng kaunti (0) sa alipin.
- Natanggap ang ACK ng kaunti mula sa alipin
- Nagpapadala ng mga salita address sa alipin.
- Natanggap ang ACK ng kaunti mula sa alipin
- Nagpapadala ng data sa alipin.
- Natanggap ang ACK ng kaunti mula sa alipin.
- At huling nagpapadala ng kundisyon ng STOP sa alipin.
Mga hakbang para sa pagbabasa ng data mula sa alipin hanggang sa master (mode ng paglilipat ng alipin)
- Nagpapadala ng simulang kondisyon sa alipin.
- Nagpapadala ng address ng alipin sa alipin.
- Magpadala ng read bit (1) sa alipin.
- Natanggap ang ACK ng kaunti mula sa alipin
- Nakatanggap ng data mula sa alipin
- Natanggap ang ACK ng kaunti mula sa alipin.
- Nagpapadala ng kundisyon ng STOP sa alipin.
Upang maitayo ang RTC DS1307 IC batay sa digital na orasan, ginamit namin dito ang Arduino Pro Mini, ngunit maaari mo ring gamitin ang anumang iba pang modelo ng Arduino tulad ng Arduino Uno o Arduino Nano. Kasama ng Arduino board, DS1307 RTC IC, gumamit kami ng 16x2 LCD module upang maipakita ang oras at petsa, isang kristal osciallator, 7805 boltahe na regulator, isang buzzer at ilang mga transistor at resistor.
Circuit Diagram at Paglalarawan
Sa ganitong Arduino batay sa digital na orasan circuit, gumamit kami ng tatlong pangunahing mga bahagi na ang IC DS1307, Arduino Pro Mini Board at 16x2 LCD module.
Narito ang arduino ay ginagamit para sa oras ng pagbabasa mula sa ds1307 at ipakita ito sa 16x2 LCD. Nagpapadala ang DS1307 ng oras / petsa gamit ang 2 linya sa arduino. Ginagamit din ang isang buzzer para sa indikasyon ng alarma, na kung saan beep kapag ang activated alarm. Ipinapakita ang isang diagram ng block sa ibaba upang maunawaan ang pagtatrabaho ng Real Time Clock na ito.
Tulad ng nakikita mo sa diagram ng circuit, ang DS1307 chip pin SDA at SCL ay konektado sa mga arduino pin na SDA at SCL na may pull up risistor na humahawak ng default na halaga na TAAS sa mga linya ng data at orasan. Ang 32.768KHz crystal oscillator ay konektado sa DS1307 chip para sa pagbuo ng eksaktong 1 segundong pagkaantala, at isang 3 volt na baterya ay nakakonekta din sa pin 3 rd (BAT) ng DS1307 na nagpapanatili ng oras na tumatakbo pagkatapos ng pagkabigo ng elektrisidad. Ang 16x2 LCD ay konektado sa arduino sa 4-bit mode. Ang control pin RS, RW at En ay direktang konektado sa arduino pin 2, GND at 3. At ang data pin na D0-D7 ay konektado sa 4, 5, 6, 7 ng arduino. Ang isang buzzer ay konektado sa arduino pin number 13 sa pamamagitan ng isang NPN BC547 transistor na mayroong 1 k resistor sa base nito.
Tatlong mga pindutan lalo na itinakda, INC at Susunod ay ginagamit para sa setting ng alarma upang i-pin ang 12, 11 at 10 ng arduino sa aktibong mababang mode. Kapag pinindot namin ang hanay, ang mode ng alarm set ay magpapagana at ngayon kailangan naming magtakda ng alarma sa pamamagitan ng paggamit ng pindutan ng INC at Susunod na pindutan ang ginagamit para sa paglipat sa digit. Ang kumpletong pag-setup ng breadboard ng real time na orasan na ito na may alarma ay ipinapakita sa larawan sa ibaba. Maaari mo ring suriin ang isang detalyadong tutorial sa digital alarm clock gamit ang AVR microcontroller.
Paglalarawan ng Programa
Upang mai-program para sa orasan na ito ng real time, gumamit kami ng ilang mga aklatan para sa pagkuha ng oras / petsa mula sa DS1307 at para sa pagpapakita sa LCD, na ibinibigay sa ibaba:
At ang pagsisimula ng RTC, LCD at output output ay ginaganap sa setup loop.
Ang natitirang mga bagay tulad ng oras sa pagbabasa, ang alarm ng setting ay ginaganap sa seksyon ng void loop.