Далее вы должны проверить, не допустили ли вы какую-либо опечатку. В меню Скетч (Sketch) выберите команду Проверить/Компилировать (Verify/Compile), как показано на рис. 5.85. Среда IDE проверит ваш код и выдаст сообщение, если обнаружит какую-то проблему.
Можно проверить, как компилятор реагирует на ошибки. В листинге программы измените

В нижней части окна IDE, в черной области, появится сообщение об ошибке. Вы можете растянуть эту область, перетаскивая мышью верхнюю границу так, чтобы можно было без прокрутки увидеть больше двух строк. Сообщение об ошибке, которое получил я, гласит «piMode was not declared in this scope» («переменная piMode не была описана в этой области действия»).
Видите ли, в языке С есть зарезервированные слова и определенные функции, которые имеют особое значение. Пару из них — digitaiWrite и delay — вы уже использовали.
Но переменная piMode не существует ни как зарезервированное слово, ни как определенная функция, и поэтому компилятор сообщает, что вы ее не объявили, чтобы указать, что она собой представляет.
Исправляйте текст вашей программы до тех пор, пока команда Проверить/Компилировать (Verify/Compile) не перестанет находить ошибки.
Загрузка и запуск
Теперь в меню Скетч (Scetch) выберите команду Загрузка (Upload). Лично я всегда представляю, что я переписываю программу с моего большого компьютера на маленький компьютер Arduino, но все называют этот процесс загрузкой, и поэтому будем считать, что так оно и есть.
Если загрузка прошла успешно, то чуть выше черной области сообщений об ошибках вы увидите сообщение Загрузка завершена (Done Uploading).
Если же процесс загрузки слишком долго не завершается — это плохо. Это означает, что по- прежнему есть какие-то проблемы со связью, возможно, потому что конфигурация СОМ-порта настроена неверно. Вернитесь к приведенному ранее разделу поиска и устранения неисправностей для вашего компьютера. Но вначале сохраните программу. В меню Файл (File) выберите команду Сохранить (Save) и введите имя для своей программы. После того как вы исправите проблемы с COM-портом, вы сможете заново загрузить программу, если необходимо, и попробовать снова.
Если все работает как предполагалось, то теперь встроенный светодиод и ваш светодиод быстро мигают — включаются на одну десятую секунды и выключаются на десятую секунды, в соответствии с инструкциями в вашей программе.
Вам может показаться, что после стольких усилий полученное достижение невелико, но мы ведь должны были с чего-то начать, а программирование микроконтроллера обычно начинается с мигания светодиода. В следующем эксперименте вы создадите новую программу, которая делает нечто более полезное.
Кратко подведем итог тому, что вы уже узнали и что необходимо делать для программирования платы Arduino.
• Создайте новую программу (или «эскиз», как его предпочитает называть среда Arduino).
• Выберите в меню Файл (File) пункт Новый (New), если это необходимо.
• Каждая программа должна начинаться с функции задания конфигурации setup о, которая выполняется один раз.
• Прежде чем что-либо делать с каким-либо контактом платы, вы должны объявить его номер и режим работы, используя команду pinMode.
• Для контакта может быть указан режим INPUT (Вход) или OUTPUT (Выход).
• Некоторые номера контактов недопустимы. Посмотрите на вашу плату, чтобы увидеть используемую систему нумерации.
• Каждую функцию или блок программы следует заключать в фигурные скобки. Скобки могут быть расположены на разных строках.
• Компилятор игнорирует разрывы строк и дополнительные пробелы.
• Каждая команда функции или блока должна завершаться точкой с запятой.
• Каждая программа Arduino должна содержать функцию
• Команда digitalWrite переводит контакт, который настроен на работу в качестве выхода, в состояние HIGH («высокий» уровень) или LOW («низкий» уровень).
• Команда delay говорит плате Arduino ничего не делать в течение указанного интервала времени в миллисекундах (тысячных долях секунды).
Числа в круглых скобках после команды — это параметры, которые говорят о том, как применять данную команду.