Циклы 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 разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Шилд 2 реле для Arduino NANO

Шилд 2 реле для Arduino NANO

Шилд для проектов с двумя электромеханическими реле под контроллер Arduino NANO. Упрощает монтаж и о..

257.82грн.

ESP32: независимое управление двумя шаговыми двигателями NEMA17

ESP32: независимое управление двумя шаговыми двигателями NEMA17

ESP32: независимое управление двумя шаговыми двигателями NEMA17 Кратко: ниже — два готовых варианта:..

Электрозамок 12В 2А

Электрозамок 12В 2А

Очень функциональный надёжный и удобный в использовании замокТакие замки используются в электронных ..

501.00грн.

Измерение времени и точные задержки на ESP32

Измерение времени и точные задержки на ESP32

Измерение времени и точные задержки на ESP32 ESP32 обладает мощной системой аппаратных таймеров, ..

Arduino Pro Micro ATmega32U4 5V

Arduino Pro Micro ATmega32U4 5V

Миниатюрная плата разработчика из линейки Arduino на основе микропроцессора ATMega 32U4Тактовая част..

282.78грн.