Цикли 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 размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Розробка електроніки під замовлення (схема + плата + прошивка)

Розробка електроніки під замовлення (схема + плата + прошивка)

Розробка електроніки під замовлення (схема + плата + прошивка) Якщо вашому бізнесу потрібен еле..

Коннектор питания влагозащищенный 5,5х2,1мм (2,5)

Коннектор питания влагозащищенный 5,5х2,1мм (2,5)

Коннектор влагозащитный с резиновой пробкой для заводки питания в корпус электронного устройства.Про..

16.54грн.

Змінне жало паяльника 900M-T 1шт.

Змінне жало паяльника 900M-T 1шт.

Жало для паяльника 60Вт з регуляторомДіаметр робочої частини 3 ммВнутрішній діаметр отвору під ..

34.24грн.

Міні кнопка SMD 6 x 6 x 5 мм

Міні кнопка SMD 6 x 6 x 5 мм

Мініатюрна кнопка з SMD виводамиРозміри 6 x 6 x 5 мм..

1.05грн.

Arduino багатомірні масиви

Arduino багатомірні масиви

Привіт друзі! Це вже друге відео про масиви. У першому я розповів, що знаю про одновимірні масиви в ..