Циклы 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. Он делает код компактным, а управление счётчиком — простым и гибким. Освоив его, вы сможете легко создавать эффекты, управлять несколькими устройствами и писать более структурированные программы.




