Arduino:Примеры/SimpleRTCAlarm

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Простой будильник для часов реального времени (RTC)[1]

Этот пример показывает, как, используя функции библиотеки RTC, сделать что-либо при срабатывании будильника. В данном примере RTC-время будет выставлено на 16:00:00, а будильник – на 16:00:10. Когда RTC-время будет соответствовать времени срабатывания будильника (которое задано параметром MATCH_HHMMSS), запустится прерывание, а вместе с ним – функция внешнего вызова, которая напишет в мониторе порта «Alarm Match!» (что можно перевести как «время будильника»).

Необходимое оборудование

  • Плата Arduino Zero

Код

/*
  Простой RTC-будильник для Arduino Zero или MKR1000

  Демонстрирует, как настроить будильник на Arduino Zero или MKR1000.

  Этот код не защищен авторским правом.

  http://arduino.cc/en/Tutorial/SimpleRTCAlarm

  Создан Артуро Гуадалупи (Arturo Guadalupi; a.guadalupi@arduino.cc)
  25 сентября 2015 года, модифицирован 21 октября 2015 года
*/

#include <RTCZero.h>

/* создаем объект RTC */
RTCZero rtc;

/* меняем эти значения на текущее время */
const byte seconds = 0;
const byte minutes = 0;
const byte hours = 16;

/* меняем эти значения на текущую дату */
const byte day = 25;
const byte month = 9;
const byte year = 15;

void setup()
{
  Serial.begin(9600);

  rtc.begin(); // инициализируем 24-часовой RTC-формат

  rtc.setTime(hours, minutes, seconds);
  rtc.setDate(day, month, year);

  rtc.setAlarmTime(16, 0, 10);
  rtc.enableAlarm(rtc.MATCH_HHMMSS);
  
  rtc.attachInterrupt(alarmMatch);
}

void loop()
{

}

void alarmMatch()
{
  Serial.println("Alarm Match!");  //  "Время будильника!"
}

См.также

Внешние ссылки