Циклы в Arduino

Циклы используются для многократного повторения однотипных действий. Они позволяют сделать код более компактным и удобным для чтения.

Выделяют 3 вида циклов: с предусловием, с постусловием и со счетчиком. Начнем с последнего, как с наиболее удобного.

Цикл со счетчиком

Цикл со счетчиком задается следующим образом:

for (инициализация; условие; изменение счетчика){

// список команд

}

В разделе инициализация создается переменная (счетчик) и ей присваивается начальное значение. В разделе условие записывается условие работы цикла (цикл выполняется пока выполняется условие). Чаще всего условие напрямую связано со счетчиком. В изменении счетчика указывается, как будет изменяться счетчик после каждого шага цикла.

Допустим, мы хотим моргнуть светодиодом 3 раза, после чего сделать паузу на 3 секунды. Напишем цикл, который повторит моргание 3 раза.

Здесь счетчик i начинается с 0, условие i<3, изменение переменной i++ (увеличение на 1). Вот как пошагово происходит работа цикла:

  • сначала создается переменная i и ей присваивается значение 0
  • проверяется условие. 0<3 — истинно, поэтому
  • заходим в цикл и выполняем моргание
  • после чего i увеличивается на 1
  • снова проверяется условие. 1<3 — истинно, поэтому
  • вновь выполняется моргание (уже второй раз)
  • i увеличивается на 1
  • проверяется условие. 2<3 — истинно
  • выполняется моргание (третий раз)
  • i увеличивается на 1
  • проверяется условие. 3<3 — ложно, поэтому
  • цикл заканчивается, моргания не происходит

Так получилось моргание 3 раза. После цикла допишите delay(3000) для трехсекундной паузы.

Сам счетчик i может использоваться в повторяющихся командах. Например, напишем плавное зажигание светодиода на ШИМ-порте (например, 10).

Здесь переменная i изменяется свое значение от 0 до 255 и это значение на каждом шаге передается как значение яркости светодиода.

Цикл с предусловием

Это цикл, который выполняется пока истинно условие, стоящее перед повторяющимися командами. В Arduino задаются так:

While (условие){

// Список команд

}

Посмотрим, как повторение моргания 3 раза будет выглядеть с использованием цикла с предусловием.

 

Цикл с постусловием

Цикл, в котором условие проверяется после выполнения тела цикла. В Arduino записываются так:

do {

// список команд

} while (условие)

Изменим программу на цикл с постусловием.

У этого цикла есть особенность: так как сначала выполняется тело цикла и лишь затем проверяется условие, то тело цикла выполнится как минимум 1 раз.
Обязательно научитесь работать с циклами, они делают код намного удобнее и ряд задач без них практически невозможно решить.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *