Примерами функций являются обязательные для любой программы для Arduino функции setup() и loop() . Но можно создавать и свои функции:
void setup() < setupPorts(); >void loop() < >void setupPorts()
Функция setupPorts() задает режимы работы используемых в скетче пинов.
При написании скетчей крайне рекомендуется использовать функции. Это дает следующие преимущества:
- Избавление от одинаковых блоков кода в скетче, достаточно создать функцию и перенести в нее повторно исполняемый код. При этом размер скетча также станет меньше.
- Код гораздо легче отлаживать. В случае неверного выполнение кода легко проверить все функции по отдельности и выяснить, в какой из них ошибка.
- Намного легче прочитать и понять, как код должен работать. Особенно если выбраны «говорящие» названия функций, а также каждая функция выполняет свою конкретную логическую задачу.
- Дорабатывать такой код также гораздо проще. Если нужно внести исправление в логику работы какого-то алгоритма в коде, достаточно найти функцию, в которой реализована логика, поправить код и проверить ее работу.
- Код становится более модульным и уже разработанные функции в одном проекте легко перенести в другой проект.
Параметры
Функция может принимать на вход некоторое количество переменных, называемых параметрами. Пример функций, принимающих параметры:
🔥 Как писать хороший код новичкам? Функции и их применение в Arduino
void lampOn(int pin) < digitalWrite(pin, HIGH); >void lampOff(int pin)
Функция lampOn() зажигает светодиод, а функция lampOff() — гасит. Параметром является переменная pin типа int , в значении которой передается номер пина, к которому подключен светодиод.
Конечно можно было сделать переменную pin глобальной. Но гораздо лучше использовать параметры, это делает код менее подверженным ошибкам и более понятным.
Возвращаемые значения
Функция также может возвращать значение. Тип возвращаемого значения указывается перед именем функции. Если функция не возвращает значение, то перед ней указывается ключевое слово void .
void setup() < Serial.begin(9600); if (isEven(7)) < Serial.println(«7 — четное число»); >else < Serial.println(«7 — не четное число»); >if (isEven(10)) < Serial.println(«10 — четное число»); >else < Serial.println(«10 — не четное число»); >> void loop() < >bool isEven(int num) < if (num % 2 == 0) < return true; >else < return false; >>
Здесь мы определили функцию, которая проверяет, является ли число четным. Имя функции isEven() , на вход она принимает целое число, а возвращает результат типа bool . При выполнении кода в мониторе последовательного интерфейса мы увидим:
7 — не четное число
10 — четное число
Источник: arduino-technology.ru
Функции. Урок 3. Ардуино
Уроки Arduino #13 — создаём свою функцию
Привет. Сегодня поговорим про организацию своей функции в языке программирования ардуино.
В предыдущих статьях мы писали код непосредственно в две управляющие функции программы. На этот раз посмотрим как можно организовать код более удобным способом.
В прошлый раз мы рассматривали программу устранения дребезга кнопки. Если вы уже забыли или пропустили предыдущую статью, пожалуйста, посмотрите её.
Теперь попробуем изменить программу таким образом, чтобы выделить код отвечающий за устранение дребезга в отдельную функцию. Мы будем использовать эту функцию в будущем, и будет намного удобнее просто копировать уже написанный код в новую программу.
Кроме того используем старые наработки из предыдущих статей. А также подключим к ардуино несколько светодиодов и будем управлять всеми с помощью одной кнопки.
Чтобы выполнить этот урок нам понадобятся.
- Ардуино UNO
- Макетная плата
- Перемычки
- 4 Резистора номиналом 220 Ом
- Резистор номиналом 10 кОм
- Кнопка
- 4 Светодиода 5 мм
- Кабель USB
Функции
Блог
В этой статье по программированию Arduino вы узнаете, как писать свои собственные функции и использовать их в своих программах. Подробно объясняется структура и использование функций.
Функции были кратко описаны в первой нашей статье , где указаны некоторые основные факты о функциях:
- каждая функция должна иметь уникальное имя,
- имя функции следует за круглыми скобками ()
- функции имеют тип возвращаемого значения, напримерvoid,
- тело функции заключено в открывающуюся и закрывающуюся фигурные скобки <>.