Virtuabotixrtch Arduino Library (2025)
If you are using the standard Virtuabotix DS1302 module, it typically requires a 3-wire interface (I2C is not used for the DS1302; it uses a serial protocol).
Typical Pinout:
(Note: Unlike I2C sensors, the DS1302 does not require specific hardware I2C pins (SDA/SCL); you can define the pins in the code.) virtuabotixrtch arduino library
#include <VirtuabotixRTC.h> #include <LiquidCrystal.h>VirtuabotixRTC myRTC(6, 7, 8); LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() lcd.begin(16, 2); lcd.print("RTC Clock"); delay(1000); If you are using the standard Virtuabotix DS1302
void loop() myRTC.updateTime();
lcd.clear(); lcd.setCursor(0, 0); lcd.print("Time:"); lcd.print(myRTC.hours); lcd.print(":"); lcd.print(myRTC.minutes); lcd.print(":"); lcd.print(myRTC.seconds); (Note: Unlike I2C sensors, the DS1302 does not
lcd.setCursor(0, 1); lcd.print(myRTC.month); lcd.print("/"); lcd.print(myRTC.dayofmonth); lcd.print("/20"); lcd.print(myRTC.year);
delay(500);
#include <Wire.h>
#include <VirtuabotixRTC.h>
// Use the device address the library expects (example: 0x68) and set starting pin if required
VirtuabotixRTC myRTC(0x68); // constructor may vary by library version
void setup()
Serial.begin(9600);
Wire.begin();
// Optionally set time once:
// myRTC.setTime(14, 30, 0); // hh, mm, ss
// myRTC.setDate(9, 4, 2026); // dd, mm, yyyy or yy depending on library version
void loop()
// read time
int hour = myRTC.getHour();
int minute = myRTC.getMinute();
int second = myRTC.getSecond();
int day = myRTC.getDay();
int month = myRTC.getMonth();
int year = myRTC.getYear(); // check if returns full year or two-digit
// print formatted
Serial.print(hour); Serial.print(":");
if(minute < 10) Serial.print("0");
Serial.print(minute); Serial.print(":");
if(second < 10) Serial.print("0");
Serial.print(second);
Serial.print(" ");
Serial.print(month); Serial.print("/");
Serial.print(day); Serial.print("/");
Serial.println(year);
delay(1000);
Notes:






