Arduino:Примеры/TimeTeensy3
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Синхронизация времени с помощью RTC на Teensy[1]
Это скетч для библиотеки Time и платы Arduino, который демонстрирует, как синхронизировать время при помощи RTC на плате Teensy.
Чтобы использовать RTC на Teensy 3.0, к нижней части платы нужно подключить кристалл на 12,5 пФ и 32,768 КГц. Например, CFS-206 (Citizen), 300-8303-ND, 300-8762-ND, 300-8763-ND или 300-1002-ND (Digikey).
RTC на Teensy может работать и без батареи, но чтобы время и дата не сбрасывались, когда плата будет отключена от питания, имеет смысл подключить батарейку на 3V.
Код
/*
Синхронизация времени с помощью RTC на Teensy
Этот пример показывает, как синхронизировать время
с помощью RTC на Teensy.
*/
#include <TimeLib.h>
void setup() {
// задаем время библиотеки Time при помощи RTC на Teensy 3.0:
setSyncProvider(getTeensy3Time);
Serial.begin(115200);
while (!Serial); // ждем открытия монитора порта в IDE Arduino Wait
delay(100);
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 (Serial.available()) {
time_t t = processSyncMessage();
if (t != 0) {
Teensy3Clock.set(t); // задаем RTC
setTime(t);
}
}
digitalClockDisplay();
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();
}
time_t getTeensy3Time()
{
return Teensy3Clock.get();
}
/*
Код, обрабатывающий сообщения с информацией о синхронизации
времени, которые приходят по последовательному порту.
*/
#define TIME_HEADER "T" // тег заголовка для сообщений
// с информацией о синхронизации времени,
// приходящих по последовательному порту.
unsigned long processSyncMessage() {
unsigned long pctime = 0L;
const unsigned long DEFAULT_TIME = 1357041600; // Jan 1 2013
if(Serial.find(TIME_HEADER)) {
pctime = Serial.parseInt();
return pctime;
if( pctime < DEFAULT_TIME) { // проверяем, корректно ли время (больше 1 января 2013 года)
pctime = 0L; // если время не корректно, возвращаем «0»
}
}
return pctime;
}
void printDigits(int digits){
// вспомогательная функция для печати данных о времени
// на монитор порта; добавляет в начале двоеточие и ноль:
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits);
}
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
Категории:
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino