Введение в программирование
Общая структура программы: void loop(), void setup()
Программа на Arduino состоит из следующих разделов (в том порядке, как они обычно должны идти в программе):
- Подключение библиотек
- Глобальные переменные
- void setup()
- Пользовательские процедуры и функции
- void loop()
При этом обязательными являются разделы setup и loop , которые обычно создаются сразу при открытии новой программы. Остальные разделы пользователь заполняет при необходимости.
При включении контроллера сначала запускается bootloader . Это маленькая программа, которая уже залита в Arduino на заводе. После этого bootloader подгружает программу, которая была записана в память микроконтроллера.
Первым выполняется раздел setup, который задаёт для Arduino основные настройки. При желании, кроме необходимых настроек, в него можно записать пользовательский код, который должен выполниться только один раз, при старте программы.
Далее выполняется раздел loop, именно в нём будет находиться основная программа. При этом, программа в разделе loop выполняется бесконечно: как только будет выполнена последняя команда в разделе, выполняется переход на первую команду в нём. Таким образом остановить выполнение программы можно только отключив Arduino от питания.
Параллельно с основной программой продолжает работать bootloader. Его задача опрашивать соединение с компьютером по USB. Такое соединение работает через интерфейс, называемый COM-порт . При появлении команды на загрузку новой программы, которая называется скетч, bootloader примет её и разместит в памяти Arduino.
Void setup что это
Шановні друзі! Сайт знаходиться в процесі перекладу на солов’їну мову. Все буде Україна!
void
Ключевое слово void используется только при объявлении функций. Оно указывает на то, что объявляемая функция не возвращает никакого значения той функции, из которой она была вызвана.
Пример:
// операции выполняются в функциях "setup" и "loop" // но общей программе никакой информации не возвращается void setup() < // . >void loop() < // . >
Смотрите также
Функции void loop и void setup Ардуино
Функции void loop () и void setup () в Aduino IDE — это первое с чем сталкивается любой, кто начинает знакомство с языком программирования микроконтроллеров Ардуино. Разберем для чего нужны в скетче данные функции, что следует размещать внутри циклов. Данные правила относятся ко всем платам — от Arduino UNO до Arduino MEGA и перед изучением языка Aduino IDE, следует подробно изучить данные функции.
Процедуры void loop и void setup
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega
Данные циклы должны быть в каждом скетче и вызываться только один раз, даже если один из циклов не используется. Дело в том, что при запуске микроконтроллера Arduino, начинают работать встроенные микропрограммы, которые первым делом проверяют не началась загрузка новой программы с компьютера. Если пользователь не начал прошивку, то контроллер начинает выполнять ранее загруженный скетч.
Оба цикла вызываются встроенной функцией main() из файла main.cpp. При этом функция void setup () вызывается один раз, а и void loop() вызывается в цикле for бесконечное количество раз. Если в вашем скетче будет присутствовать более одного раза функция void setup() или void loop(), то при компиляции Aduino IDE выдаст ошибку: redefinition of ‘void setup()‘ или redefinition of ‘void loop()’, соответственно.
void setup в Ардуино что это, как выполняется
Функция setup в Aduino IDE имеет следующую конструкцию:
void setup() < // код должен располагаться между фигурных скобок >
Фигурные скобки указывают, где начало и конец цикла, поэтому все команды должны располагаться между ними. Если вы случайно удалите или поставите лишнюю фигурную скобку, то при компиляции скетча будет выходить ошибка. Процедура void setup вызывается один раз и ее используют для назначения режима работы пинов или команд, которые необходимо выполнить только в момент загрузки программы.
void loop в Ардуино что это, как выполняется
После выполнения цикла setup, программа переходит в цикл loop, который будет повторяться до тех пор, пока на плату подано питание. Если цикл содержит одну команду, то она будет выполняться тысячи раз в секунду. Если вы решите написать скетч для мигания светодиодом на Arduino, то необходимо добавлять в код задержку для выполнения программы, иначе мигания светодиода не будет заметно.
Функция loop в Aduino IDE имеет следующую конструкцию:
void loop() < // основной код программы располагается здесь >
Таким образом, если вам необходимо при запуске программы включить один раз светодиод для индикации работы устройства на микроконтроллере Arduino Nano, то команду лучше написать в цикле void setup(). Если в программе необходимо выполнять какое-то действие постоянно, например, получать данные с ультразвукового дальномера HC-SR04, то команду следует располагать в цикле void loop ().
Урок 2. Программируем Arduino: структура кода
В прошлой статье мы разобрали устройство платы Arduino, научились подключать ее к компьютеру и загрузили свой первый скетч! Называется он Blink и отвечает за мигание встроенного светодиода в плату с определенной частотой. Если вы начинающий, и только начали изучать мир Arduino, то вам некоторые функции в коде могут быть непонятны. Поэтому давайте разберем все по порядку. Структура кода в Arduino IDE – начинаем!
Программный код состоит из двух обязательных частей – функций. Первая часть называется void setup() (в переводе на русский – установка) и в ней прописывается код, который отработает всего один раз. Во второй обязательной функции void loop() прописывается код, работающий в бесконечном цикле. Сюда прописывается то, что будет происходить циклично (то есть с определенной частотой в определенный промежуток времени). Еще перед этими двумя функциями, то есть в самом начале кода, иногда прописываются различные директивы или переменные, которые будут необходимы для дальнейшей работы кода. Они будут постоянны на протяжении всего кода (это различные библиотеки, введенные названия устройств и т.д.)
Если перенестись на минутку в реальный мир, то эту структуру легко можно представить на простых вещах. Например, вы включаете свет в комнате, когда темно. Для этого, вы нажали на выключатель и лампочка загорелась. Также и в коде: сначала мы задаем постоянные данные, которые нам необходимы, то есть прописываем, что существует некое устройство (лампочка), прописываем для нее низкой значение
Таким образом, структура кода будет всегда одна и та же, вы ее сейчас видите ниже (от нее уже и нужно будет отталкиваться в дальнейшем, в зависимости от того, что вы хотите сделать и запрограммировать)
В нашем первом коде Blink есть некая функция PinMode(), а также delay() и digitalWrite()
Разберемся с каждой из них в отдельности.
В нашем коде встроенный светодиод мигает с частотой в одну секунду. Он подключается к выводу 13. В прошлом статье мы уже говорили, что на плате Arduino имеются выводы для подключения различных устройств и периферии – они делятся на цифровые и аналоговые. По отдельности их мы разберём чуть позднее, а пока скажем, что у каждого вывода есть номер. На плате Arduino Uno вверху расположены выводы, пронумерованные от 0 до 13. Это цифровые выводы, к ним подключают обычно различные светодиоды. Однако, вывод номер 13 отвечает за работу встроенного светодиода на плате и служит, чаще всего, для проверки ее работоспособности. Указав в скетче номер вывода, мы можем работать с устройством, которое подключено к нему.
Функция PinMode() служит для настройки этого самого вывода. Все выводы на плате могут работать, как входы, так и выходы. Потому пользователь это также должен учитывать. По умолчанию, все контакты являются входами, но для светодиода нужен выходной сигнал, так как на него идет рабочая команда и подается напряжение.
Функция PinMode(pin, mode); состоит из двух значений. Это pin — номер вывода (например у нас светодиод подключен к выводу 13) и mode — режим входа/выхода (INPUT/OUTPUT)
PinMode(13,OUTPUT);
Дальше в функции void loop() прописывается сам цикл. После определения контакта, как выход — можно устанавливать ей высокое или низкое состояние, это 0 или 5 вольт напряжения (иногда бывает и 3,3 вольт, но об этом тоже позднее)
Изменять состояние выходного сигнала можно с помощью функции digitalWrite(pin, level); Она тоже состоит из двух значений. Это pin — номер вывода (например у нас светодиод подключен к выводу 13) и level — уровень выходного сигнала: он может быть низкий(HIGH) или высокий(LOW)
digitalWrite(13, HIGH); // подается высокое напряжение и светодиод включается.
digitalWrite(13, LOW); // напряжение не подается, светодиод выключен.
Функция delay() служит для установки задержки в программном коде между выполнением различных действий (так как контроллер не может одновременно выполнять несколько действий, а выполняет их последовательно). В самой функции прописывается время этой самой задержки в миллисекундах (1000мс=1с)
delay(1000); //устанавливаем задержку в 1 секунду
Пример кода Blink:
void setup()
<
pinMode(13, OUTPUT);
>
void loop()
<
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
>
На этом наш второй урок по программированию на Arduino подходит к концу. Сегодня мы познакомились со структурой кода на примере Blink, узнали о новых функциях и как их использовать, а впереди нас ожидает еще много всего интересного и познавательного. Всем удачной компиляции и отличного настроения!
Данная статья — является собственностью интернет-магазина РОБОТОТЕХНИКА