Arduino:Примеры/TimeRTC
Перейти к навигации
Перейти к поиску
Поддержать проект | Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.
Содержание
Синхронизация времени с помощью RTC (для остальных Arduino)[1]
Это скетч для библиотеки Time и платы Arduino, который демонстрирует, как использовать эту библиотеку вместе с часами реального времени (или просто RTC).
Код
1 /*
2
3 Синхронизация времени с помощью RTC
4
5 Пример, демонстрирующий работу библиотеки Time с RTC
6 (от «Real Time Clock», что значит «часы реального времени»).
7
8 */
9
10 #include <TimeLib.h>
11 #include <Wire.h>
12 #include <DS1307RTC.h> // базовая библиотека DS1307, возвращающая время в типе данных time_t
13
14 void setup() {
15 Serial.begin(9600);
16 while (!Serial) ; // ждем открытия монитора порта в IDE Arduino
17 setSyncProvider(RTC.get); // функция, считывающая время с RTC
18 if(timeStatus()!= timeSet)
19 Serial.println("Unable to sync with the RTC"); // "Не удалось синхронизироваться с RTC"
20 else
21 Serial.println("RTC has set the system time"); // "RTC настроено на системное время"
22 }
23
24 void loop()
25 {
26 if (timeStatus() == timeSet) {
27 digitalClockDisplay();
28 } else {
29 Serial.println("The time has not been set. Please run the Time"); // "Время задано не было. Пожалуйста, запустите"
30 Serial.println(" пример «Установка RTC-времени».");
31 Serial.println();
32 delay(4000);
33 }
34 delay(1000);
35 }
36
37 void digitalClockDisplay(){
38 // показываем цифровые часы:
39 Serial.print(hour());
40 printDigits(minute());
41 printDigits(second());
42 Serial.print(" ");
43 Serial.print(day());
44 Serial.print(" ");
45 Serial.print(month());
46 Serial.print(" ");
47 Serial.print(year());
48 Serial.println();
49 }
50
51 void printDigits(int digits){
52 // вспомогательная функция для печати данных о времени
53 // на монитор порта; добавляет в начале двоеточие и ноль:
54 Serial.print(":");
55 if(digits < 10)
56 Serial.print('0');
57 Serial.print(digits);
58 }
См.также
Внешние ссылки