Elementy, które będziesz potrzebować:
- Arduino Nano
- Zegar czasu rzeczywistego RTC DS1307
- Wyświetlacz LCD 2×16
- Konwerter I2C dla LCD 2×16
- Przewody połączeniowe
- 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:
- Wire
- LiquidCrystal_I2C
- 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.
Ok