Arduino

Zegar czasu RTC DS1307, Arduino Nano

Elementy, które będziesz potrzebować:

  1. Arduino Nano
  2. Zegar czasu rzeczywistego RTC DS1307
  3. Wyświetlacz LCD 2×16
  4. Konwerter I2C dla LCD 2×16
  5. Przewody połączeniowe
  6. Płytka stykowa

Połączenia:

  • Arduino Nano – Pin A4 (SDA) -> LCD 2×16 – SDA
  • Arduino Nano – Pin A5 (SCL) -> LCD 2×16 – SCL
  • Arduino Nano – Pin 5V -> LCD 2×16 – VCC
  • Arduino Nano – Pin GND -> LCD 2×16 – GND
  • Arduino Nano – Pin A4 (SDA) -> RTC DS1307 – SDA
  • Arduino Nano – Pin A5 (SCL) -> RTC DS1307 – SCL
  • Arduino Nano – Pin 5V -> RTC DS1307 – VCC
  • Arduino Nano – Pin GND -> RTC DS1307 – GND

Biblioteki do Instalacji:

  1. Wire
  2. LiquidCrystal_I2C
  3. RTClib

Kod dla Arduino Nano:

// Kod ze strony TechMaker.pl/arduino/zegar-czasu-rtc-ds1307-arduino-nano/
// Autor: Martin
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>

RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(0x27, 16, 2); // Adres ekranu I2C: 0x27, 16 kolumn, 2 wiersze

void setup() {
  Wire.begin();
  rtc.begin();

  if (!rtc.isrunning()) {
    Serial.println("RTC nie działa! Przywracanie danych...");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  lcd.init();                      // Inicjalizacja wyświetlacza
  lcd.backlight();                 // Włączenie podświetlenia
}

void loop() {
  DateTime now = rtc.now();  // Pobranie aktualnego czasu z RTC

  // Formatowanie i wyświetlanie godziny
  lcd.setCursor(4, 0);
  lcd.print(now.hour(), DEC);
  lcd.print(':');
  if (now.minute() < 10) lcd.print('0');
  lcd.print(now.minute(), DEC);
  lcd.print(':');
  if (now.second() < 10) lcd.print('0');
  lcd.print(now.second(), DEC);

  // Formatowanie i wyświetlanie daty
  lcd.setCursor(3, 1);
  lcd.print(now.day(), DEC);
  lcd.print('/');
  lcd.print(now.month(), DEC);
  lcd.print('/');
  lcd.print(now.year(), DEC);

  delay(1000);  // Opóźnienie 1 sekundy
}

Uwaga! Przesyłając kod do Arduino, czas i data zostaje pobierane z komputera. Odłączenie baterii 3V, kiedy Arduino jest odłączone od zasilania, spowoduje utratę prawidłowej godziny i daty.

Ten projekt integruje moduł czasu rzeczywistego (RTC) oraz wyświetlacz LCD poprzez interfejs I2C, oferując użyteczne narzędzie do nauki i eksperymentowania z mikrokontrolerami. Dzięki precyzyjnemu śledzeniu czasu przez RTC oraz czytelnemu wyświetlaniu danych na LCD, projekt ten jest przydatny w różnych aplikacjach. Jego elastyczny kod umożliwia łatwą rozbudowę i modyfikację, co sprzyja eksperymentowaniu z różnymi funkcjonalnościami oraz integracją z innymi modułami. To doskonała platforma do zgłębiania wiedzy z zakresu elektroniki i programowania mikrokontrolerów.

1 komentarz

  1. ProGamer says:

    Ok

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *