logo
"Умная штора"

1.2.1 Язык программирования

Язык программирования Ардуино является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.

Программы, написанные программистом Ардуино называются наброски (или иногда скетчи - варваризм от англ. sketch) и сохраняются в файлах с расширением ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++.

Обязательную в C++ функцию main() препроцессор Ардуино создает сам, вставляя туда необходимые «черновые» действия.

Программист должен написать две обязательные для Ардуино функции setup() и loop(). Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле.

В текст своей программы (скетча) программист не обязан вставлять заголовочные файлы используемых стандартных библиотек. Эти заголовочные файлы добавит препроцессор Ардуино в соответствии с конфигурацией проекта. Однако пользовательские библиотеки нужно указывать.

Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки и они вносятся в список компиляции.

Arduino IDE не предлагает никаких настроек компилятора и минимизирует другие настройки, что упрощает начало работы для новичков и уменьшает риск возникновения проблем.

Простейшая Ардуино-программа состоит из двух функций:

· setup(): функция вызывается однократно при старте микроконтроллера.

· loop(): функция вызывается после setup () в бесконечном цикле все время работы микроконтроллера.

Так выглядит полный текст простейшей программы (скетча) мигания светодиодом с периодом 2 секунды:

#define LED_PIN 13 //Связывание 13-го выхода платы с переменной LED_PIN

void setup () {

pinMode (LED_PIN, OUTPUT); // Назначение переменной LED_PIN и 13-го выхода на вывод

}

void loop () {

digitalWrite (LED_PIN, HIGH); // Включение светодиода, параметр вызова функции digitalWrite HIGH - признак высокого логического уровня

delay (1000); // Цикл задержки на 1000 мс - 1 секунду

digitalWrite (LED_PIN, LOW); // Выключение светодиода, параметр вызова LOW - признак низкого логического уровня

delay (1000); // Цикл задержки на 1 секунду

}

Все используемые в примере функции являются библиотечными. В комплекте Arduino IDE имеется множество примеров программ. Существует перевод документации по Arduino на русский язык.