Arduino:Примеры/TimeRTC
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Синхронизация времени с помощью RTC (для остальных Arduino)[1]
Это скетч для библиотеки Time и платы Arduino, который демонстрирует, как использовать эту библиотеку вместе с часами реального времени (или просто RTC).
Код
/*
Синхронизация времени с помощью RTC
Пример, демонстрирующий работу библиотеки Time с RTC
(от «Real Time Clock», что значит «часы реального времени»).
*/
#include <TimeLib.h>
#include <Wire.h>
#include <DS1307RTC.h> // базовая библиотека DS1307, возвращающая время в типе данных time_t
void setup() {
Serial.begin(9600);
while (!Serial) ; // ждем открытия монитора порта в IDE Arduino
setSyncProvider(RTC.get); // функция, считывающая время с RTC
if(timeStatus()!= timeSet)
Serial.println("Unable to sync with the RTC"); // "Не удалось синхронизироваться с RTC"
else
Serial.println("RTC has set the system time"); // "RTC настроено на системное время"
}
void loop()
{
if (timeStatus() == timeSet) {
digitalClockDisplay();
} else {
Serial.println("The time has not been set. Please run the Time"); // "Время задано не было. Пожалуйста, запустите"
Serial.println(" пример «Установка RTC-времени».");
Serial.println();
delay(4000);
}
delay(1000);
}
void digitalClockDisplay(){
// показываем цифровые часы:
Serial.print(hour());
printDigits(minute());
printDigits(second());
Serial.print(" ");
Serial.print(day());
Serial.print(" ");
Serial.print(month());
Serial.print(" ");
Serial.print(year());
Serial.println();
}
void printDigits(int digits){
// вспомогательная функция для печати данных о времени
// на монитор порта; добавляет в начале двоеточие и ноль:
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits);
}