Arduino:Примеры/SleepRTCAlarm

Материал из Онлайн справочника
Версия от 09:09, 14 декабря 2016; Myagkij (обсуждение | вклад) (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


RTC-будильник, выводящий плату из спящего режима[1]

Этот пример показывает, как использовать функции библиотеки RTC, чтобы вывести плату Arduino/Genuino Zero из спящего режима.

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

  • Плата Arduino Zero

Код

/*
  RTC-будильник, выводящий Arduino Zero из спящего режима 

  Демонстрирует, как использовать будильник, чтобы вывести Arduino
  Zero из спящего режима. 

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

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

  Создан Артуро Гуадалупи (Arturo Guadalupi) 17 ноября 2015 года,
  Модифицирован 01 марта 2016 года
  
  ПРИМЕЧАНИЕ:
  Если использовать этот скетч с MKR1000, то никакой выдачи в
  мониторе порта не будет. Причина – в прекращении отправки
  тактового импульса, из-за чего прекращает работать и
  USB-соединение. Чтобы снова увидеть USB-порт, дважды нажмите на
  кнопку сброса. 
*/

#include <RTCZero.h>

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

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

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

void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LOW);

  rtc.begin();

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

  rtc.setAlarmTime(17, 00, 10);
  rtc.enableAlarm(rtc.MATCH_HHMMSS);

  rtc.attachInterrupt(alarmMatch);

  rtc.standbyMode();
}

void loop()
{
  rtc.standbyMode();    // переходим в спящий режим до тех пор, пока снова не сработает будильник 
}

void alarmMatch()
{
  digitalWrite(LED_BUILTIN, HIGH);
}

См.также

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