Цикли 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...24В/5...28В 2А

Модуль живлення збільшуючий 2...24В/5...28В 2А

Модуль збільшуючий напругу постійного струму з 2 ... 24 В до 5 ... 28 ВНапруга на виході регулю..

36.78грн.

Клавіатура мембранна 4х4

Клавіатура мембранна 4х4

Герметична клавіатура для приміщень з підвищеною вологістю, запиленістю та вібрацієюОпір контактів к..

53.68грн.

Що потрібно знати, щоб зібрати свій ЧПУ?

Що потрібно знати, щоб зібрати свій ЧПУ?

Верстат ЧПУ (з числовим програмним управлінням) або англійською CNC дозволяє будь-якому умі..

Джойстик шилд для Arduino UNO MEGA

Джойстик шилд для Arduino UNO MEGA

Шилд джойстика для контролерів Arduino UNO та MEGAМожна використовувати для саморобних ігор, а також..

176.49грн.

Стойка роликова для вісі Х 2шт. з кріпленням

Стойка роликова для вісі Х 2шт. з кріпленням

Монтажна панель з МДФ для організації вісі Х автоматичного лазерного гравера.Отвори під кроковий дви..

167.68грн.