Arduino:Примеры/MultipleBlinks
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Мигание несколькими светодиодами[1]
Библиотека Scheduler позволяет плате Arduino Due выполнять несколько задач одновременно. В этом примере мы настроим несколько функций таким образом, чтобы они выполнялись одновременно с loop(), благодаря чему у нас будет несколько отдельных loop-функций, не требующих отдельного таймера.
Необходимое оборудование
- Плата Arduino Due
- Три светодиода
- Три резистора на 220 Ом
Цепь
Аноды светодиодов нужно подключить последовательно при помощи 220-Омовых резисторов к 11-ому, 12-ому и 13-ому контактам на Due. Катоды светодиодов нужно подключить к «земле».
Код
// раз мы хотим выполнить несколько задач одновременно, то подключаем библиотеку Scheduler:
#include <Scheduler.h>
int led1 = 13;
int led2 = 12;
int led3 = 11;
void setup() {
Serial.begin(9600);
// выставляем три светодиодных контакта в положение OUTPUT:
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
// добавляем в планировщик функции loop2 и loop3;
// loop() всегда запускается по умолчанию:
Scheduler.startLoop(loop2);
Scheduler.startLoop(loop3);
}
// Задача номер 1 – мигать светодиодом с секундной задержкой:
void loop() {
digitalWrite(led1, HIGH);
// ВАЖНО:
// когда запущено несколько задач, delay() переводит задачу в
// состояние ожидания и передает управление другим задачам, тем
// самым гарантируя, что они будут выполняться:
delay(1000);
digitalWrite(led1, LOW);
delay(1000);
}
// Задача номер 2 – мигать светодиодом с 0,1-секундной задержкой:
void loop2() {
digitalWrite(led2, HIGH);
delay(100);
digitalWrite(led2, LOW);
delay(100);
}
// Задача номер 3 – прием команд через последовательный порт;
// «0» выключает светодиод,
// «1» включает светодиод:
void loop3() {
if (Serial.available()) {
char c = Serial.read();
if (c=='0') {
digitalWrite(led3, LOW);
Serial.println("Led turned off!"); // "Светодиод выключен!" }
if (c=='1') {
digitalWrite(led3, HIGH);
Serial.println("Led turned on!"); // "Светодиод выключен!"
}
}
// ВАЖНО:
// функцию yield() нужно вызывать постоянно, чтобы передавать
// управление другим задачам:
yield();
}
См.также
Внешние ссылки
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