Прежде чем загружать программу в плату Arduino, необходимо указать тип платы и номер последовательного порта. Находим в меню опцию Tools -> Board (Сервис-> Плата) и выбираем из списка плату Arduino. В книге мы используем Arduino Uno, если у вас другая плата, выберите ее наименование.

Затем необходимо указать порт, к которому подсоединена плата. Переходим к опции Tools -> Serial Port (Сервис -> Последовательный порт) и выбираем последовательный порт. На компьютерах с Windows это будет СОМ*, где * - некоторое число, соответствующее номеру последовательного порта. На компьютерах с Linux и Мас порт обозначен как dev/tty.usbmodem* или /dev/tty.usbserial*, где* - строка алфавитно-цифровых символов.

Совет Если в списке присутствует несколько последовательных портов, и вы не можете определить, к какому из них подключена плата Arduino, отключите плату, чтобы увидеть, какой порт исчезнет из меню, это и есть порт подсоединения платы Arduino.

Теперь можно загрузить первую программу. Нажимаем кнопку Upload (Загрузить), расположенную в левом верхнем углу Arduino IDE. В строке состояния, находящейся внизу, отображается процесс компиляции и загрузки программы. После загрузки программы светодиод, подключенный к выводу 13 Arduino, должен мигать оранжевым цветом с частотой один раз в секунду. Поздравляем! Ваша первая программа работает успешно.

- 39 -

1.8.3. Анализируем программу Blink

Подробно рассмотрим текст программы Blink (рис. 1.13), чтобы понять базовую структуру программ, написанных для Arduino.


Рис. 1.13. Структура программы Blink

Цифрами на рис. 1.13 обозначено следующее:

1 - многострочный комментарий. Комментарии важны для пояснения кода программы. Все, что написано между этими символами, не будет обрабатываться компилятором. Многострочные комментарии начинаются с /* и заканчиваются */. Многострочные комментарии удобны, когда текст пояснения большой, например описание программы.

2 - однострочный комментарий. Если поместить // на любую строку, компилятор проигнорирует весь текст строки после этого символа. Однострочный комментарий обычно поясняет определенную строку кода.

- 40 -

3 - код объявления переменной. Переменная - это ячейка памяти, содержащая информацию. Существуют переменные различных типов. В нашем примере указана переменная типа int, что означает целое число. Целочисленной переменной led присвоено значение 13 - номер цифрового контакта, к которому подключен светодиод на плате Arduino. Всюду в остальной части программы можно использовать переменную led, когда мы хотим управлять контактом 13. Переменные в данном случае удобны, потому что при необходимости поменять контакт ввода-вывода достаточно изменить только одну строку, а остальная часть кода не изменится.

4 - функция setup(), одна из двух функций, которые должны быть включены в каждую программу Arduino. Функция - это фрагмент кода, выполняющий определенную задачу. Код в теле функции setup() выполняется один раз в начале программы. Это полезно для установки начальных параметров настройки, назначения режимов портов ввода-вывода, инициализации коммуникационных интерфейсов и т. д.

5 - цифровые контакты Arduino могут быть запрограммированы на ввод или вывод. Сконфигурировать их направление позволяет команда pinMode(), имеющая два параметра, указанных в круглых скобках. Первый параметр pinMode определяет номер контакта. Поскольку переменная led уже назначена ранее в программе, конфигурация задается для контакта 13. Второй параметр устанавливает направление контакта: INPUT (вход) или OUTPUT (выход). По умолчанию все контакты настроены на ввод. Чтобы сконфигурировать их на вывод, следует явно указать значение этого параметра OUTPUT. Поскольку нам нужно управлять светодиодом, контакт 13 должен быть выходом. Настройка конфигурации контакта сохраняется до тех пор, пока вы не измените его назначение на ввод.

6 - вторая обязательная функция во всех программах Arduino - loop(). Это оператор цикла.

7 - функция digitalWrite() устанавливает состояние выходного контакта: 5 или 0 В. Если светодиод подсоединен к контакту через резистор, то установка значения логической "1" позволит зажечь светодиод (вы узнаете больше об этом в следующей главе). Первый параметр функции digitalWrite() - номер контакта, которым требуется управлять. Второй параметр - значение, которое нужно задать: HIGH (5 В) или LOW (0 В). Контакт остается в этом состоянии, пока не будет изменен следующей командой digitalWrite().