Virtuabotixrtc.h Arduino Library Apr 2026

Choose VirtuabotixRTC when you want to keep I2C free or are using a DS1302 module you already own. The VirtuabotixRTC library is a reliable, lightweight way to add timekeeping to your Arduino projects. Its straightforward functions and flexible pin assignment make it perfect for beginners and pros alike. Whether you’re building an automatic plant waterer, a data logger, or a programmable timer, this library has you covered.

delay(1000); // Update every second

#include <VirtuabotixRTC.h> VirtuabotixRTC myRTC(6, 7, 8);

Open the Serial Monitor (9600 baud) and watch the live clock. This is where the RTC shines. Let’s turn an LED on at 8:00 AM and off at 8:00 PM. virtuabotixrtc.h arduino library

| Problem | Likely Cause | Solution | |---------|--------------|----------| | Time resets when powering off | No backup battery | Install a CR2032 coin cell in the RTC module | | Wrong time after re-upload | Setting time every boot | Comment out setDS1302Time after first use | | Weird characters on Serial | Baud rate mismatch | Ensure Serial.begin(9600) matches monitor | | Library compile error | Wrong pin order | Check VirtuabotixRTC myRTC(clk, dat, rst) | VirtuabotixRTC vs. RTClib | Feature | VirtuabotixRTC (DS1302) | RTClib (DS1307/DS3231) | |---------|-------------------------|-------------------------| | Interface | 3-wire (any pins) | I2C (A4/A5 on Uno) | | Accuracy | ±2 minutes/month | DS3231: ±2 minutes/year | | Battery life | ~5 years | ~10 years | | Ease of use | Very simple | Simple, more features |

// Print the time Serial.print(" – Time: "); Serial.print(myRTC.hours); Serial.print(":"); Serial.print(myRTC.minutes); Serial.print(":"); Serial.println(myRTC.seconds);

#include <VirtuabotixRTC.h> VirtuabotixRTC myRTC(6, 7, 8); const int ledPin = 13; Choose VirtuabotixRTC when you want to keep I2C

After running this, comment out myRTC.setDS1302Time(...) or upload a new sketch that only reads time. Example 2: Reading the Current Time Here’s the most common use: continuously reading the RTC and printing to Serial Monitor.

void setup() Serial.begin(9600);

| DS1302 Pin | Arduino Pin | |------------|--------------| | VCC | 5V | | GND | GND | | CLK | 6 | | DAT | 7 | | RST | 8 | Whether you’re building an automatic plant waterer, a

else digitalWrite(ledPin, LOW); if (currentHour == 20 && myRTC.minutes == 0 && myRTC.seconds < 5) Serial.println("Evening – LED is OFF.");

void setup() pinMode(ledPin, OUTPUT); Serial.begin(9600);

// Turn LED on between 8:00 and 19:59 (8 AM to 7:59 PM) if (currentHour >= 8 && currentHour < 20) digitalWrite(ledPin, HIGH); if (currentHour == 8 && myRTC.minutes == 0 && myRTC.seconds < 5) Serial.println("Good morning! LED is ON.");

#include <VirtuabotixRTC.h> // Pin connections: CLK, DAT, RST VirtuabotixRTC myRTC(6, 7, 8);

void loop() // Nothing here – this is a one‑time setup