- 2. Характеристики
 - 3 Рейтинг
 - 4. Функциональный обзор
 - 10. Эксплуатация устройства
 
- Библиотеки
 
- Операторы
- Sketch
 - Управляющие операторы
 - Синтаксис
 - Арифметические операторы
 - Операторы сравнения
 - Логические операторы
 - Указатели доступа
 - Битовые операторы
 - Составные операторы
 
 - Данные
- Типы данных
 - Преобразование типов данных
 - Область видимости переменных и квалификаторы
 - Утилиты
 
 - Цифровой ввод/вывод
 - Аналоговый вход/выход
 - Расширенный ввод/вывод
 - Время
 - Математические функции
 - Тригонометрические функции
 - Символы
 - Случайные числа
 - Биты и байты
 - Внешние Прерывания
 - Прерывания
 - Функции передачи данных
 
- Функции
 
- Устройства
- Датчики
 - Модули
- Модуль часов реального времени
 
 
 
Модуль часов реального времени

Модуль часов реального времени (RTC)
 RTC (Real Time Clock) — это микросхема с кварцевым резонатором и батарейкой, которая отслеживает текущее время и дату даже при выключенном питании. Популярные модули: DS1307, DS3231.
- DS1307 – простой, но менее точный (дрейф до минут в месяц).
 - DS3231 – высокоточный, с температурной компенсацией (дрейф всего несколько секунд в год).
 
Подключение к Arduino Nano
 Модули DS1307/DS3231 работают по I2C, поэтому подключение одинаковое:
| RTC вывод | Arduino Nano | 
| VCC | 5V (или 3.3В для некоторых модулей) | 
| GND | GND | 
| SDA | A4 | 
| SCL | A5 | 
 Дополнительные выводы у DS3231:
| RTC вывод | Arduino Nano | 
| 32k | Выход генератора 32768 Гц | 
| SQW | Выход прямоугольного сигнала. Частота задается с помощью регистра управления 0x0E и может составлять 1, 1024, 4096 или 8192 Гц | 
Пример скетча (с библиотекой RTClib)
 Устанавливается через Arduino IDE → Менеджер библиотек → RTClib (от Adafruit)
#include <Wire.h>
 #include "RTClib.h"
 
 RTC_DS3231 rtc;
 
 void setup() {
   Serial.begin(9600);
   if (!rtc.begin()) {
     Serial.println("RTC не найден!");
     while (1);
   }
 
   if (rtc.lostPower()) {
     Serial.println("RTC потерял питание, установка времени!");
     // Устанавливаем время компиляции скетча
     rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
   }
 }
 
 void loop() {
   DateTime now = rtc.now();
 
   Serial.print(now.day());
   Serial.print('.');
   Serial.print(now.month());
   Serial.print('.');
   Serial.print(now.year());
   Serial.print(" ");
   Serial.print(now.hour());
   Serial.print(':');
   Serial.print(now.minute());
   Serial.print(':');
   Serial.println(now.second());
 
   delay(1000);
 }
Основные команды библиотеки RTClib
 Объекты
RTC_DS3231 rtc; // для DS3231
 RTC_DS1307 rtc; // для DS1307
 Инициализация
rtc.begin(); // запуск модуля
 rtc.lostPower(); // проверка: потерял ли питание
 rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // установка времени (по времени компиляции)
 rtc.adjust(DateTime(2025, 9, 22, 21, 30, 0)); // установка вручную (год, месяц, день, час, минута, секунда)
 Получение времени
DateTime now = rtc.now();
 now.year(); // год
 now.month(); // месяц
 now.day(); // день
 now.hour(); // часы
 now.minute(); // минуты
 now.second(); // секунды
 now.unixtime(); // время в формате UNIX
 DS3231 дополнительные возможности
rtc.getTemperature(); // получить температуру (°C)
