pinMode(led, OUTPUT);// данная команда настраивает порт led как выход
Программирование Arduino. Основы.
Структура программы
Arduino программируется на специализированном варианте языка C/C++ для микроконтроллеров AVR.
Базовая структура программы для Arduino состоит из двух обязательных частей: функций setup() и loop()(рис.).
Рис.
Перед функцией setup() идет объявление переменных, подключение библиотек. Функция setup() запускается один раз после каждого включения питания или сброса платы Arduino. Она используется для инициализации переменных, установки режима работы портов и прочих подготовительных для основного цикла программы действий. Она обязательно должна быть включена в программу, даже если не выполняет никаких действий.
Функция loop() в бесконечном цикле последовательно исполняет команды, которые описаны в ее теле. Эта функция выполняется циклически, она выполняет основную работу.
Синтаксис языка программирования
Изучение языка программирования начнем с примера видоизмененного скетча «Blink» (рис.).
Рис. Скетч «Blink»
Комментарии
Комментарии нужны для пояснения текста программы.
Комментарии бывают однострочные и многострочные.
Однострочные комментарии начинаются с символов //.
Пример:
// Объявление глобальных переменных
Многострочные комментарии (состоит из нескольких строк) должны обрамляться ограничивать парами символов /* и */.
Пример:
/* Программа мигания светодиода
на цифровом выходе D13*/
Переменные и типы данных
Для обработки данных их необходимо хранить в памяти. При этом к этим данным надо
как-то обращаться.
Каждой ячейке памяти или группе ячеек дается свое собственное имя. Используя это имя можно прочитать информацию из ячейки и записать туда новую информацию.
Переменная -это ячейка в памяти компьютера, которая имеет имя и хранит некоторое значение. Значение переменной может меняться во время выполнения программы. При записи в ячейку нового значения старое стирается.
С точки зрения компьютера, все данные в памяти – это числа, точнее, наборы нулей и единиц.
С целыми и дробными числами компьютеры работают по-разному. Поэтому в каждом языке программирования есть разные типы данных, для обработки которых используются разные методы.
Например:
- целые переменные – тип int (от английского integer – целый), занимают 4 байта в памяти;
- вещественные переменные, которые могут иметь дробную часть (тип float – от английского floating point – плавающая точка) , занимают 4 байта в памяти;
- символы (тип char – от английского character – символ), занимают 1 байт в памяти.
Объявление переменных
Все переменные должны быть объявлены до их использования.
Нужно сказать компьютеру, чтобы он выделил для неё ячейку памяти нужного размера и присвоил ей имя.
В объявлении переменной помимо ее имени необходимо указать, значения какого типа данных она может хранить. Тем самым объявляется тип переменной.
Переменные обычно объявляются в начале программы. Для объявления надо написать название типа переменных (int, floatили char), а затем через запятую имена всех объявляемых переменных. При желании можно сразу записать в новую ячейку нужное значение.
Если переменной не присваивается никакого значения, то в ней находится неопределенное (случайное) значение.
Пример:
int led = 13;// объявление и инициализация глобальной переменной
Область действия переменных
Переменные могут быть объявлены в начале программы перед функцией setup(), локально внутри функций и иногда в блоке выражений, таком как цикл for.
То, где объявлена переменная, определяет ее границы (область видимости), т.е. возможность некоторых частей программы ее использовать.
Глобальные переменные таковы, что их могут видеть и использовать любые функции и выражения программы. Такие переменные декларируются в начале программы перед функцией setup().
Локальные переменные определяются внутри функций или таких частей, как цикл for. Они видимы и могут использоваться только внутри функции, в которой объявлены.
Таким образом, могут существовать несколько переменных с одинаковыми именами в разных частях одной программы, которые содержат разные значения.
; (точка с запятой)
; (точка с запятой) используется для обозначения конца оператора.
Каждая команда заканчивается знаком “;”, который обозначает конец команды.
Функции setup() и loop()
Базовая структура программы для Arduino состоит, по меньшей мере, из двух обязательных частей: функций setup() и loop().
Перед функцией setup() идет объявление переменных, подключение библиотек.
Функция setup() запускается один раз после каждого включения питания или сброса платы Arduino. Она используется для инициализации переменных, установки режима работы портов и прочих подготовительных для основного цикла программы действий. Она обязательно должна быть включена в программу, даже если не выполняет никаких действий.
Функция loop() в бесконечном цикле последовательно исполняет команды, которые описаны в ее теле. Эта функция выполняется циклически, она выполняет основную работу.
{} (фигурные скобки)
Фигурные скобки {} — важный элемент языка программирования С.
Открывающая скобка { должна всегда сопровождаться закрывающей скобкой }. Это условие, известное как парность (симметричность) фигурных скобок.
Фигурные скобки обозначают начало и конец блока операторов функций, циклов, условий.
Пример:
void setup() {
// Здесь начинается блок операторов функции (тело функции)
// Настройка цифрового порта D13 на режим выхода
pinMode(led, OUTPUT);
}
Команды
Пример:
pinMode(led, OUTPUT);// данная команда настраивает порт led как выход
Практическое задание:
1. Подробнее ознакомьтесь с информацией по теме в учебной литературе (Петин В.А. - Проекты с использованием контроллера Arduino, стр.47, 52, 53;Соммер У. - Программирование микроконтроллерных плат Arduino/Freeduino, стр.57-65)
2. Ответьте на контрольные вопросы
Контрольные вопросы
1. Базовая структура скетча
2. Функция setup()
3. Функция loop()
4. Комментарии
5. Переменные
6. Типы данных
7. Область действия переменных
|