Ардуино Урок 1.1. Цикл for

Цикл for()
Ардуино UNO
Ардуино UNO

Привет. Продолжаем изучать ардуино. Пока что не будем использовать новое оборудование и подключать к ардуино модули, а посмотрим на возможности языка программирования ардуино.

В прошлый раз мы написали нашу первую программу для ардуино. Мы зажигали и выключали светодиод на плате. Если вы не видели или уже забыли о чем речь, пожалуйста, посмотрите предыдущую статью здесь.

А сейчас мы снова немного модифицируем стандартную программу blink, чтобы научиться использовать оператор цикла for.

Цикл for в Ардуино

Для того, чтобы продемонстрировать возможности цикла for, изменим задержку в моргании светодиода на динамически изменяющуюся. Добавим в цикл loop новую функцию for() следующим образом.

void loop() {
...
  for(i = 100; i <= 1000; i+=100){

  }
}

С помощью этой структуры мы создаем циклическое изменение переменной i от 100 до 1000 с шагом в 100. Когда мы поставим эту переменную в функцию задержки, светодиод будет мигать не каждую секунду, а с изменяющейся частотой.

Для того, чтобы мы могли обращаться к новой переменной, необходимо ее объявить. Для этого, в самом начале программы, перед функцией setup(), в блоке объявления переменных, напишем:

int i = 100;

Таким образом переменная i еще до обращения к ней в цикле for будет равна 100.

Теперь перенесем строки программы отвечающие за включение и выключение светодиода в новый цикл for и заменим значение в функции delay().

void loop() {

  for(i = 100; i <= 1000; i+=100){
    digitalWrite(LED_BUILTIN, HIGH);
    delay(i);
    digitalWrite(LED_BUILTIN, LOW);
    delay(i);
  }

}

Таким образом светодиод будет загораться и гаснуть с увеличивающейся паузой пока переменная i не станет равна 1000. После этого программа выйдет из цикла for и передаст управление циклу loop. Поскольку других функций в цикле loop нет, он опять передаст управление циклу for. И for начнет работать сначала.

Полный текст программы с циклом for.


int i = 100;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  
}

void loop() {

  for(i = 100; i <= 1000; i+=100){
    digitalWrite(LED_BUILTIN, HIGH);
    delay(i);
    digitalWrite(LED_BUILTIN, LOW);
    delay(i);
  }
  
}
Цикл for()
Цикл for()

Заключение

В этот раз мы улучшили стандартную программу blink, чтобы посмотреть как работает цикл for на языке программирования ардуино. Естественно, все происходит как и в других языках программирования. Не забывайте объявлять переменные, чтобы не вызывать ошибки в программе. И помните, что цикл может работать как в сторону увеличения, так и в сторону уменьшения. А в следующий раз мы изменим программу опять, чтобы посмотреть на управляющие операторы if и else.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *