Цикли 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 размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Розумний дім #7: ESP32 — тепла підлога з автоматичним регулюванням за DS18B20 та WEB-керуванням

Розумний дім #7: ESP32 — тепла підлога з автоматичним регулюванням за DS18B20 та WEB-керуванням

Розумний дім #7: ESP32 — тепла підлога з автоматичним регулюванням за DS18B20 та WEB-керуванням ..

Корпус пластиковий 85x58x33мм з прозорою кришкою

Корпус пластиковий 85x58x33мм з прозорою кришкою

Герметичний корпус для саморобних електронних пристроївМатеріал - пластикРозміри 85 x 58 x 33 мм..

116.22грн.

Вибір крокового двигуна

Вибір крокового двигуна

Вам вже доводилося робити вибір між різними кроковими двигунами для реалізації своїх амбіційних прое..

Символьний LCD індикатор 16х2 синій

Символьний LCD індикатор 16х2 синій

Символьний двохрядний рідкокристалічний індикатор. 16 символів в одному рядку.Синя підсвіткаЗ'єднува..

83.25грн.

Аудіо штекер 3,5мм папа

Аудіо штекер 3,5мм папа

Аудіоштекер 3,5 мм використовується для подовжувачів аудіосигналу, для передачі сигналу з аудіороз'є..

20.98грн.