В мире программирования микроконтроллеров Arduino одной из ключевых функций является void loop. Эта функция представляет собой бесконечный цикл, который выполняется после завершения настройки в void setup. Именно в void loop реализуется основная логика программы, которая повторяется снова и снова, пока устройство включено.
Цикл void loop работает по принципу непрерывного выполнения кода. После завершения каждой итерации программа автоматически возвращается к началу цикла и запускает его заново. Это позволяет микроконтроллеру постоянно реагировать на изменения в окружающей среде, обрабатывать данные с датчиков, управлять устройствами и выполнять другие задачи.
В этой статье мы рассмотрим, как работает void loop, и приведем несколько практических примеров, которые помогут лучше понять его применение. Вы узнаете, как использовать эту функцию для создания эффективных и функциональных программ на Arduino.
Принцип работы цикла loop в Arduino
После запуска программы Arduino сначала выполняет инициализацию в setup, а затем переходит к выполнению кода в loop. Этот цикл повторяется до тех пор, пока устройство включено или пока не будет прервано внешними факторами.
Пример использования:
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // Включение светодиода
delay(1000); // Пауза 1 секунда
digitalWrite(LED_BUILTIN, LOW); // Выключение светодиода
delay(1000); // Пауза 1 секунда
}
В данном примере светодиод на плате будет мигать с интервалом в 1 секунду. Код внутри loop выполняется снова и снова, создавая непрерывный процесс.
Важно помнить, что loop не имеет условий завершения, поэтому разработчик должен самостоятельно контролировать выполнение программы, чтобы избежать бесконечных циклов или ошибок.
Практические примеры использования loop
Функция loop в Arduino выполняется циклически, что позволяет реализовать множество задач. Рассмотрим несколько практических примеров.
Пример 1: Мигание светодиодом
Самый простой пример – мигание встроенным светодиодом на плате. Внутри loop задаются команды включения и выключения светодиода с задержкой:
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Пример 2: Управление сервоприводом
С помощью loop можно управлять сервоприводом, плавно изменяя его угол поворота:
#include <Servo.h>
Servo myServo;
int angle = 0;
void setup() {
myServo.attach(9);
}
void loop() {
for (angle = 0; angle <= 180; angle++) {
myServo.write(angle);
delay(15);
}
for (angle = 180; angle >= 0; angle--) {
myServo.write(angle);
delay(15);
}
}
Пример 3: Считывание данных с датчика
void loop() {
int sensorValue = analogRead(A0);
float voltage = sensorValue * (5.0 / 1023.0);
float temperature = voltage * 100;
Serial.println(temperature);
delay(1000);
}
Пример 4: Управление RGB-светодиодом
Используя loop, можно создавать плавные переходы цветов на RGB-светодиоде:
int redPin = 9;
int greenPin = 10;
int bluePin = 11;
void loop() {
for (int i = 0; i <= 255; i++) {
analogWrite(redPin, i);
analogWrite(greenPin, 255 - i);
delay(10);
}
for (int i = 255; i >= 0; i--) {
analogWrite(redPin, i);
analogWrite(greenPin, 255 - i);
delay(10);
}
}
Эти примеры демонстрируют, как функция loop может быть использована для реализации различных задач в проектах на Arduino.









































































