Циклы 2 — Цикл for

Введение

Цикл for — один из самых часто используемых инструментов в Arduino-программировании. Он идеально подходит для задач, где нужно выполнить набор команд фиксированное количество раз. Благодаря компактному синтаксису for легко управлять счётчиком, шагом и условиями выхода из цикла.

Синтаксис и структура


for (начало; условие; шаг) {
  // Код, который будет повторяться
}
  
  • начало — выполняется один раз перед началом цикла (обычно здесь объявляют счётчик).
  • условие — проверяется перед каждой итерацией; если оно ложно, цикл завершится.
  • шаг — выполняется в конце каждой итерации (увеличение или уменьшение счётчика).

Счётчики, шаги, условия

В качестве счётчика чаще всего используется переменная типа int. Шаг может быть как положительным (увеличение), так и отрицательным (уменьшение). Условие можно задавать любое — не обязательно только i < 10.


// Прямой перебор
for (int i = 0; i < 10; i++) {
  // код
}

// Обратный перебор
for (int i = 10; i > 0; i--) {
  // код
}
  

Прямой и обратный перебор

Цикл for позволяет как увеличивать, так и уменьшать значение счётчика. Это удобно, например, при обратном отсчёте или при переборе массива с конца.

Практика

Перебор пинов для включения светодиодов

Предположим, у нас есть 5 светодиодов, подключённых к пинам 2–6.


void setup() {
  for (int pin = 2; pin <= 6; pin++) {
    pinMode(pin, OUTPUT);
  }
}

void loop() {
  for (int pin = 2; pin <= 6; pin++) {
    digitalWrite(pin, HIGH);
    delay(200);
    digitalWrite(pin, LOW);
  }
}
  

Обратный отсчёт на Serial Monitor


void setup() {
  Serial.begin(9600);
}

void loop() {
  for (int i = 10; i >= 0; i--) {
    Serial.println(i);
    delay(500);
  }
  delay(2000);
}
  

Проект: «Бегущий огонь» на 5–10 светодиодов

Классический эффект бегущего огня можно реализовать с помощью цикла for.


const int firstLed = 2;
const int lastLed = 6;

void setup() {
  for (int pin = firstLed; pin <= lastLed; pin++) {
    pinMode(pin, OUTPUT);
  }
}

void loop() {
  // Прямое движение
  for (int pin = firstLed; pin <= lastLed; pin++) {
    digitalWrite(pin, HIGH);
    delay(100);
    digitalWrite(pin, LOW);
  }
  
  // Обратное движение
  for (int pin = lastLed; pin >= firstLed; pin--) {
    digitalWrite(pin, HIGH);
    delay(100);
    digitalWrite(pin, LOW);
  }
}
  

Заключение

Цикл for — мощный инструмент для работы с повторяющимися действиями в Arduino. Он делает код компактным, а управление счётчиком — простым и гибким. Освоив его, вы сможете легко создавать эффекты, управлять несколькими устройствами и писать более структурированные программы.

Циклы 3 — Цикл while

<< Проекты << Все товары >> Статьи, уроки >>

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Муфта на шаговый двигатель 8x8x25мм

Муфта на шаговый двигатель 8x8x25мм

Данная муфта служит переходником между валами 8 мм и 8 мм. Тоесть имеет с обеих сторон отверстие диа..

61.62грн.

HTTP запрос через GSM GPRS модуль NEOWAY M590

HTTP запрос через GSM GPRS модуль NEOWAY M590

Постановка задачи. В этом проекте посмотрим на практический пример отправки http get запроса при по..

Регулятор оборотов двигателя 3А 6-28В

Регулятор оборотов двигателя 3А 6-28В

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

151.10грн.

Создание простого таймера на ESP32: пример периодического вызова функции

Создание простого таймера на ESP32: пример периодического вызова функции

Создание простого таймера на ESP32: пример периодического вызова функции При разработке проектов ..

Держатель 8мм линейных направляющих CNC или 3d принтера 2шт.

Держатель 8мм линейных направляющих CNC или 3d принтера 2шт.

Держатель для крепления цилиндрических направляющих каретки CNC-станка или 3d-принтераПод диаметр на..

108.96грн.