20 fontnál több rendelés esetén ingyen szállítsák!

Hogyan kell használni a DS1307 RTC -t az Arduino -val

How to Use the DS1307 RTC with the Arduino

A DS1307 valós idejű óra (RTC) egy széles körben használt modul az időmérésre az Arduino projektekben. A beépített gombelemnek köszönhetően akkor is pontosan mutatja az időt, amikor az Arduino ki van kapcsolva. Ebben az útmutatóban megtanulhatja, hogyan csatlakoztassa és programozza a DS1307 RTC-modul az Arduino-val az idő megjelenítéséhez és frissítéséhez.


Amire szükséged lesz

  1. Arduino kártya (pl. Uno, Mega, Nano)
  2. DS1307 RTC modul
  3. Próbapanel és összekötő vezetékek
  4. Egy számítógép, amelyre telepítve van az Arduino IDE
  5. Könyvtárak: RTClib

1. lépés: A huzalozás DS1307 RTC modul

A DS1307 RTC az I2C-protokollon keresztül kommunikál az Arduinóval.

Kapcsolatok

RTC Pin Arduino kivezetés
VCC 5V
GND GND
SDA A4
SCL A5

Megjegyzés: Ha dedikált SDA és SCL pinekkel rendelkező Arduino kártyát használ (pl. Mega), akkor az RTC SDA/SCL pinjeit ezekhez csatlakoztassa.


Step 2: Installing the Required Library

A használatához a DS1307 RTC RTClib library.

Az RTClib telepítésének lépései

  1. Nyissa meg az Arduino IDE-t.
  2. Ugrás ide: Vázlat > Könyvtár hozzáadása > Könyvtárak kezelése.
  3. Keressen rá az „RTClib” kifejezésre a Könyvtárkezelőben (Library Manager).
  4. Telepítés.

3. lépés: Mintakód feltöltése

Íme egy példa vázlat (sketch) az aktuális dátum és idő megjelenítésére a DS1307 modul:

Példakód

cpp
#include 
#include 

RTC_DS1307 cpp
 rtc;

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

  // Az RTC inicializálása
  if (!rtc.begin()) {
    Serial.println("Nem található az RTC");
    while (1);
  }

  // Ellenőrzés, hogy fut-e az RTC
  if (!rtc.isrunning()) {
    Serial.println("Az RTC NEM fut! Idő beállítása...");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

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

  // Idő megjelenítése
  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());

  // Dátum megjelenítése
  Serial.print(now.day());
  Serial.print("/");
  Serial.print(now.month());
  Serial.print("/");
  Serial.println(now.year());

  delay(1000); // Frissítés másodpercenként
}

4. lépés: Az idő beállítása

Ha az RTC nem fut, vagy az idő frissítésre szorul, a következő sort használhatja a javascript setup() funkció:

rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  • F(__DATE__) F(__TIME__) olyan makrók, amelyek a vázlat feltöltésekor beállítják a számítógép dátumát és idejét.

Egy adott időpont kézi beállításához használja a következőt:

rtc.adjust(DateTime(2025, 1, 1, 12, 0, 0)); // ÉÉÉÉ, HH, NN, ÓÓ, PP, MP

5. lépés: Az RTC-adatok használata a projektjeiben

A DS1307 időadatokat szolgáltathat számos különböző alkalmazáshoz, mint például:

  1. Data Logging: Időbélyeggel ellátott szenzorleolvasások vagy események.
  2. Ébresztők és időzítők: Műveletek indítása meghatározott időpontok alapján.
  3. Órák: Készítsen digitális vagy analóg kijelzős órákat.

Példa: Művelet indítása egy adott időpontban

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

  // Ellenőrzés, hogy 8:00 óra van-e
  if (now.hour() == 8 && now.minute() == 0 && now.second() == 0) {
    Serial.println("It's 8:00 AM!");
  }

  delay(1000);
}

Hibaelhárítás

  1. RTC nem található:

    • Ellenőrizze az SDA és SCL csatlakozásokat.
    • Győződjön meg arról, hogy az akkumulátor megfelelően van-e behelyezve. Bureau
  2. Helytelen idő:

    • Használat javascript rtc.adjust() azen idő visszaállításához.
    • Ellenőrizze, hogy az RTC-akkumulátor lemerült-e vagy hiányzik-e.
  3. Inkonzisztens adatok:

    • Biztosítson stabil tápellátást az Arduino és az RTC modul számára.

Alkalmazásai a DS1307 RTC

  1. Valós idejű órák és riasztások
  2. Időzített automatizálási rendszerek`
  3. Adatnaplózás időbélyegekkel
  4. Emlékeztető rendszerek

Összegzés

A DS1307 RTC-modul egy kiváló eszköz arra, hogy időmérő funkciót adjon az Arduino projektjeihez. Ezt az útmutatót követve beállíthatja az RTC-t, megjelenítheti az időt és a dátumot, valamint beépítheti azt különböző alkalmazásokba. Kísérletezzen a DS1307 kijelzőkkel vagy érzékelőkkel, hogy még dinamikusabb projekteket építhess!

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 megjegyzés

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,

Hagyj egy megjegyzést