FREE SHIPPING ON ALL ORDERS OVER £20

60 DAY HASSLE-FREE RETURNS

Paano gamitin ang DS1307 RTC kasama ang Arduino

How to Use the DS1307 RTC with the Arduino

Ang DS1307 Real-Time Clock (RTC) ay isang module na malawakang ginagamit para sa pagsubaybay ng oras sa mga proyekto sa Arduino. Pinapanatili nito ang tamang oras kahit na patay ang Arduino, salamat sa onboard na baterya nito. Sa tutorial na ito, matututuhan mo kung paano ikonekta at i-program ang DS1307 RTC module sa Arduino upang ipakita at i-update ang oras.


Mga Kakailanganin

  1. Arduino Board (hal. Uno, Mega, Nano)
  2. DS1307 RTC Module
  3. Breadboard at Jumper Wires
  4. Isang computer na may naka-install na Arduino IDE
  5. Mga Library: RTClib

Hakbang 1: Pag-wire sa DS1307 RTC Module

Ang DS1307 RTC ay nakikipag-ugnayan sa Arduino sa pamamagitan ng I2C protocol.

Mga Koneksyon

RTC Pin Arduino Pin
VCC 5V
GND GND
SDA A4
SCL A5

Paalala: Kung gumagamit ng Arduino board na may nakalaang SDA at SCL pins (hal. Mega), ikonekta ang SDA/SCL pins ng RTC sa mga ito sa halip.


Hakbang 2: Pag-install ng Kinakailangang Library

Para gumana ang DS1307 RTC, kakailanganin mo ang RTClib library.

Mga Hakbang para I-install ang RTClib

  1. Buksan ang Arduino IDE.
  2. Pumunta sa Sketch > Include Library > Manage Libraries.
  3. I-search ang "RTClib" sa Library Manager.
  4. I-click ang Install.

Hakbang 3: Pag-upload ng Halimbawang Code

Narito ang isang halimbawang sketch para ipakita ang kasalukuyang petsa at oras mula sa DS1307 module:

Halimbawang Code

#include 
#include 

RTC_DS1307 rtc;

void setup() {
  Serial.begin(9600);

  // I-initialize ang RTC
  if (!rtc.begin()) {
    Serial.println("Hindi mahanap ang RTC");
    while (1);
  }

  // Suriin kung tumatakbo ang RTC
  if (!rtc.isrunning()) {
    Serial.println("HINDI tumatakbo ang RTC! Itinatakda ang oras...");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  DateTime now = rtc.now();

  // Ipakita ang oras
  Serial.print(now.hour());
  Serial.print(":");
  if (now.minute() < 10) {
    Serial.print("0");
  }
  Serial.print(now.minute());
  Serial.print(":");
  if (now.second() < 10) {
    Serial.print("0");
  }
  Serial.println(now.second());

  // Ipakita ang petsa
  Serial.print(now.day());
  Serial.print("/");
  Serial.print(now.month());
  Serial.print("/");
  Serial.println(now.year());

  delay(1000); // Mag-update bawat segundo
}

Hakbang 4: Pagtatakda ng Oras

Kung hindi tumatakbo ang RTC o kailangang i-update ang oras, maaari mong gamitin ang sumusunod na linya sa setup() function:

rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  • F(__DATE__) at F(__TIME__) ay mga macro na nagtatakda ng petsa at oras mula sa iyong computer kapag nag-upload ka ng sketch.

Para magtakda ng partikular na oras nang manu-mano, gamitin ang:

rtc.adjust(DateTime(2025, 1, 1, 12, 0, 0)); // YYYY, MM, DD, HH, MM, SS

Hakbang 5: Paggamit ng Data ng RTC sa Iyong mga Proyekto

Ang DS1307 ay maaaring magbigay ng data ng oras para sa iba't ibang aplikasyon, gaya ng:

  1. Data Logging: Paglalagay ng timestamp sa mga reading ng sensor o mga kaganapan.
  2. Mga Alarm at Timer: Mag-trigger ng mga aksyon batay sa partikular na oras.
  3. Mga Orasan: Gumawa ng digital o analog na mga orasan na may display.

Halimbawa: Pag-trigger ng Aksyon sa Partikular na Oras

void loop() {
  DateTime now = rtc.now();

  // Suriin kung alas-8:00 ng umaga na
  if (now.hour() == 8 && now.minute() == 0 && now.second() == 0) {
    Serial.println("Alas-8:00 na ng umaga!");
  }

  delay(1000);
}

Troubleshooting

  1. Hindi Mahanap ang RTC:

    • I-verify ang mga koneksyon ng SDA at SCL.
    • Siguraduhing tama ang pagkakabit ng baterya.
  2. Maling Oras:

    • Gamitin ang rtc.adjust() para i-reset ang oras.
    • Suriin kung ubos na o wala ang baterya ng RTC.
  3. Hindi Consistent na Data:

    • Siguraduhing stable ang power supply sa Arduino at RTC module.

Mga Aplikasyon ng DS1307 RTC

  1. Real-time na mga orasan at alarm
  2. Mga sistemang automation na nakabase sa oras
  3. Data logging na may mga timestamp
  4. Mga sistema ng paalala

Konklusyon

Ang DS1307 RTC module ay isang mahusay na tool para sa pagdaragdag ng kakayahang mag-orasan sa iyong mga proyekto sa Arduino. Sa pagsunod sa gabay na ito, maaari mong i-set up ang RTC, ipakita ang oras at petsa, at isama ito sa iba't ibang aplikasyon. Mag-eksperimento sa pagsasama ng DS1307 sa mga display o sensor para makabuo ng mas dynamic na mga proyekto!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

1 Komento

Beim Verwenden des Befehls rtc.adjust(DateTime(F(DATE), F(TIME))); wird der sketch zwar fehlerlos kompiliert und hochgeladen, beim Ausführen des Programms stürzt das Programm aber ab, was auch zur Folge hat, dass die USB-Verbindung zum PC crasht und ein Hochladen von sketchs nicht mehr möglich ist. Abhilfe schafft dann nur ein Trick?. Nach einem Doppelclick auf die Reset-Taste des Boards funktioniert die USB-Verbindung wieder.

Ulf Jacob,

Mag -iwan ng komento