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

Датчик влажности и температуры DHT21

Датчик влажности и температуры DHT21 (AM2301) – точный цифровой сенсор для Arduino и других микрокон..

261.32грн.

Умный дом #2: Wi-Fi управление лампочкой через реле

Умный дом #2: Wi-Fi управление лампочкой через реле

Умный дом #2: Wi-Fi управление лампочкой через реле Один из самых простых и наглядных проек..

Оптопара PC817C

Оптопара PC817C

Оптопара со светодиодом на входе и открытым коллектором на выходе в корпусе DIP-4..

3.52грн.

Arduino SIM800 GPRS HTTP GET запрос

Arduino SIM800 GPRS HTTP GET запрос

Привет, друзья! Мы с каждым разом разбираем все более интересные применения GSM-модуля SIM800. В это..

SMD светодиод 0805

SMD светодиод 0805

SMD светодиоды видимого диапазона для поверхностного монтажа на плату Типоразмер 0805 Крас..

2.39грн.