Сегодня в уроке программирования Arduino познакомимся с циклом for. Для этого разберём пример подачи сигнала бедствия SOS (СОС) с помощью Arduino и светодиода.
SOS — радиосигнал о помощи от терпящих бедствие на море. Состоит из сочетания трех точек, трёх тире и ещё трех точек азбуки Морзе. Мнение, будто SOS — аббревиатура английского словосочетания «Save Our Souls» («Спасите наши души») или «Save Our Ship» («Спасите наш корабль») — красивая легенда. На самом деле расшифровки нет, просто соединение точек, тире, точек — наиболее простая и отчетливая комбинация.
Основные правила:
Подать сигнал SOS можно с помощью дыма, огня, отражения. В данном уроке мы научимся подавать сигнал бедствия с помощью светодиода и Arduino.
Схема подключения проста. Достаточно подключить всего один светодиод к Arduino. Для данного урока можно воспользоваться встроенным светодиодом на плате Arduino UNO, который подключен к 13 пину, и на плате обозначается буквой L. Но для наглядного примера подключим внешний светодиод.
Из названия урока понято, что будем изучать цикл forцикл for.
Конструкция for используется для повторения блока операторов, заключенных в фигурные скобки. Счетчик приращений обычно используется для прибавления и завершения цикла. Оператор for подходит для любых повторяющихся действий и часто используется в сочетании с массивами коллекций данных/выводов.
Заголовок цикла for состоит из трех частей:
for (initialization; condition; increment) {операторы выполняющиеся в цикле}
Инициализация (Initialization) выполняется самой первой и один раз. Каждый раз в цикле проверяется условие (condition), если оно верно, выполняется блок операторов и приращение (increment), затем условие проверяется вновь. Когда логическое значение условия становится ложным, цикл завершается.
Чтобы подать сигнал SOS можно написать по порядку все необходимые команды. Например, чтобы подать 3 точки можно написать вот такие строки кода.
digitalWrite(led_pin, HIGH); delay(350); // digitalWrite(led_pin, LOW); delay(300); // digitalWrite(led_pin, HIGH); delay(350); // digitalWrite(led_pin, LOW); delay(300); // digitalWrite(led_pin, HIGH); delay(350); // digitalWrite(led_pin, LOW); delay(300); //
По аналогии можно подать 3 тире. Как видим данную задачу можно решить и без использования цикла. Но код в таком случае будет очень большой. Чтобы сделать код более читабельным, и чтобы он стал меньше, будем использовать цикл. Цикл for выполняет повторяющиеся команды нужное количество раз.
В итоге у нас получается вот такой код.
int led_pin =2; void setup() { pinMode(led_pin, OUTPUT); } void loop() { for (int i = 0; i<3; i++) { digitalWrite(led_pin, HIGH); delay(350); // digitalWrite(led_pin, LOW); delay(300); // } delay(300); for (int i=0; i<3; i++) { digitalWrite(led_pin, HIGH); delay(1000); // digitalWrite(led_pin, LOW); delay(300); // } delay(300); for (int i=0; i<3; i++) { digitalWrite(led_pin, HIGH); delay(350); // digitalWrite(led_pin, LOW); delay(300); // } delay(5000); }
Рассмотрим первый цикл из кода:
for (int x=0; x<3; x++)
Изначально Икс ( x) равен 0. Сравниваем 0<3, прибавляем к x единицу и выполняем действия в {}. После выполнения действия в скобках. Выполняем проверку x у нас сейчас равен 1. 1<3, прибавляем к x единицу и выполняем действия в {}. Аналогично пройдет третий проход по циклу. А при попытке выполнить цикл четвертый раз у нас получится, что 3=3. Условия цикла не выполняется. Выполнение цикла прекращаться.
Остальные циклы в скетче выполняются аналогично.
Arduino UNO уроки для начинающих можно использовать не только в симуляторе, но и программировать реальную Arduino UNO. Для этого полученный код можно скопировать в Arduino IDE и загрузить в отладочную плату. Подробнее о загрузке кода смотрите в предыдущем уроке.
Мы рады объявить о нашем присутствии на Boosty! Arduino-Tex приглашает всех наших друзей и последователей поддержать нас на этой замечательной платформе. Здесь вы найдете эксклюзивный контент, уникальные проекты и возможность стать частью нашей творческой команды. Присоединяйтесь к нам на Boosty и вместе мы сделаем мир Arduino еще удивительнее!
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Файлы для скачивания
![]() |
Скетч (код) к уроку 4. Arduino - цикл for.ino | 1 Kb | 981 | Скачать |
Уроки Arduino для начинающих
24 августа , 2020
Комментариев:0
Файлов для скачивания:1
Понравилась статья? Нажми
Виджеты для Easy HMI
Читайте также
Мы в соц сетях
Комментарии