Циклы 1 — Введение в циклы Arduino
Введение
Циклы — это важный инструмент в программировании, позволяющий многократно повторять набор инструкций без их ручного дублирования. В Arduino циклы применяются практически в каждом проекте — от простого мигания светодиодом до сложной логики управления устройствами.
Что такое цикл в программировании
Цикл — это конструкция, которая выполняет код определённое количество раз или до выполнения заданного условия. Пример из жизни: если нужно моргнуть лампой 10 раз, вместо того чтобы писать 10 команд, мы используем цикл, который сам считает количество повторений.
Бесконечный цикл loop() в Arduino
В Arduino есть особая функция loop(), в которой размещается основной код программы. Она выполняется бесконечно, начиная с момента запуска платы. Это и есть главный цикл программы.
void setup() {
// Код, который выполняется один раз
}
void loop() {
// Код, который выполняется снова и снова
}
Отличие от циклов for, while, do...while
- for — выполняет код заданное количество раз, удобно для счётчиков.
- while — выполняет код, пока условие истинно.
- do...while — выполняет код хотя бы один раз, затем проверяет условие.
Внутри loop() можно использовать любые из этих циклов для управления выполнением программы.
Практика
Пример 1 — цикл for для мигания светодиодом
int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
for (int i = 0; i < 5; i++) { // Мигаем 5 раз
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
delay(2000); // Пауза перед повторением
}
Пример 2 — бесконечный цикл while(true)
void loop() {
while (true) { // Никогда не закончится
// Действие, которое выполняется всегда
}
}
Такой код может быть полезен в тестах, но в реальных проектах обычно используют стандартный loop().
Проект: «Моргающий маяк»
Светодиод мигает заданное количество раз, затем пауза — как маяк на берегу.
int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// Моргаем 3 раза
for (int i = 0; i < 3; i++) {
digitalWrite(ledPin, HIGH);
delay(300);
digitalWrite(ledPin, LOW);
delay(300);
}
delay(2000); // Пауза перед следующим циклом мигания
}
Заключение
Циклы позволяют экономить время программиста и ресурсы микроконтроллера. Понимание того, как и когда использовать разные типы циклов, — основа для написания эффективных скетчей Arduino.





