Arduino:Примеры/blinking 2 instances

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

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


Периодическое мигание двумя светодиодами[1]

Это скетч для библиотеки Metro и платы Arduino, который демонстрирует, как мигать через определенные интервалы двумя светодиодами, подключенными к 13-ому и 9-ому контактам.

Код

/*

Периодическое мигание двумя светодиодами

Этот пример каждые 250 миллисекунд переключает состояние 
на 13-ом выходном контакте Arduino и каждые 125 миллисекунд – 
на 9-ом выходном контакте Arduino.

Если подключить к этим контактам светодиоды (к 13-ому контакту светодиод, как правило, подключен по умолчанию), то эти светодиоды будут включаться/выключаться с указанной выше периодичностью.

*/

#include <Metro.h> // подключаем библиотеку Metro
#define LED0 13 // задаем первый светодиод
#define LED1 9 // задаем второй светодиод

// создаем переменные для хранения состояний этих контактов:
int state0 = HIGH;
int state1 = HIGH;

// создаем экземпляр класса Metro и задаем интервал 
// в 250 миллисекунд (это 0,25 секунды): 
Metro metro0 = Metro(250); 

// создаем еще один экземпляр класса Metro и задаем интервал 
// в 125 миллисекунд (это 0,125 секунды): 
Metro metro1 = Metro(125); 

void setup()
{
  pinMode(LED0,OUTPUT);
  digitalWrite(LED0,state0);
  
   pinMode(LED1,OUTPUT);
  digitalWrite(LED1,state1);
  
}

void loop()
{

  if (metro0.check() == 1) { // проверяем, прошел ли объект Metro 
                             // заданный временной интервал

    if (state0==HIGH)  { 
      state0=LOW;
    } else {
      state0=HIGH;
    }
    digitalWrite(LED0,state0);
  }
  
   if (metro1.check() == 1) { // проверяем, прошел ли объект Metro 
                              // заданный временной интервал

    if (state1==HIGH)  { 
      state1=LOW;
    } else {
      state1=HIGH;
    }
    digitalWrite(LED1,state1);
  }
  
  
}

См.также

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