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

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

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


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

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

Код

 1 /*
 2 
 3 Периодическое мигание двумя светодиодами
 4 
 5 Этот пример каждые 250 миллисекунд переключает состояние 
 6 на 13-ом выходном контакте Arduino и каждые 125 миллисекунд – 
 7 на 9-ом выходном контакте Arduino.
 8 
 9 Если подключить к этим контактам светодиоды (к 13-ому контакту светодиод, как правило, подключен по умолчанию), то эти светодиоды будут включаться/выключаться с указанной выше периодичностью.
10 
11 */
12 
13 #include <Metro.h> // подключаем библиотеку Metro
14 #define LED0 13 // задаем первый светодиод
15 #define LED1 9 // задаем второй светодиод
16 
17 // создаем переменные для хранения состояний этих контактов:
18 int state0 = HIGH;
19 int state1 = HIGH;
20 
21 // создаем экземпляр класса Metro и задаем интервал 
22 // в 250 миллисекунд (это 0,25 секунды): 
23 Metro metro0 = Metro(250); 
24 
25 // создаем еще один экземпляр класса Metro и задаем интервал 
26 // в 125 миллисекунд (это 0,125 секунды): 
27 Metro metro1 = Metro(125); 
28 
29 void setup()
30 {
31   pinMode(LED0,OUTPUT);
32   digitalWrite(LED0,state0);
33   
34    pinMode(LED1,OUTPUT);
35   digitalWrite(LED1,state1);
36   
37 }
38 
39 void loop()
40 {
41 
42   if (metro0.check() == 1) { // проверяем, прошел ли объект Metro 
43                              // заданный временной интервал
44 
45     if (state0==HIGH)  { 
46       state0=LOW;
47     } else {
48       state0=HIGH;
49     }
50     digitalWrite(LED0,state0);
51   }
52   
53    if (metro1.check() == 1) { // проверяем, прошел ли объект Metro 
54                               // заданный временной интервал
55 
56     if (state1==HIGH)  { 
57       state1=LOW;
58     } else {
59       state1=HIGH;
60     }
61     digitalWrite(LED1,state1);
62   }
63   
64   
65 }

См.также

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