18+
реклама
18+
Бургер менюБургер меню

Чарльз Платт – Электроника для начинающих (2-е издание) (страница 82)

18

Проверка и компилирование

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

Можно проверить, как компилятор реагирует на ошибки. В листинге программы измените pinMode на piMode, а затем выполните команду Проверить/Компилировать (Verify/Compile), чтобы увидеть, что произойдет.

Рис. 5.85. Прежде чем отправлять свою программу на плату Arduino, выполните команду Проверить/Компилировать

В нижней части окна IDE, в черной области, появится сообщение об ошибке. Вы можете растянуть эту область, перетаскивая мышью верхнюю границу так, чтобы можно было без прокрутки увидеть больше двух строк. Сообщение об ошибке, которое получил я, гласит «piMode was not declared in this scope» («переменная piMode не была описана в этой области действия»).

Видите ли, в языке С есть зарезервированные слова и определенные функции, которые имеют особое значение. Пару из них – digitalWrite и delay – вы уже использовали.

Но переменная piMode не существует ни как зарезервированное слово, ни как определенная функция, и поэтому компилятор сообщает, что вы ее не объявили, чтобы указать, что она собой представляет.

Исправляйте текст вашей программы до тех пор, пока команда Проверить/Компилировать (Verify/Compile) не перестанет находить ошибки.

Загрузка и запуск

Теперь в меню Скетч (Scetch) выберите команду Загрузка (Upload). Лично я всегда представляю, что я переписываю программу с моего большого компьютера на маленький компьютер Arduino, но все называют этот процесс загрузкой, и поэтому будем считать, что так оно и есть.

Если загрузка прошла успешно, то чуть выше черной области сообщений об ошибках вы увидите сообщение Загрузка завершена (Done Uploading).

Если же процесс загрузки слишком долго не завершается – это плохо. Это означает, что по-прежнему есть какие-то проблемы со связью, возможно, потому что конфигурация СОМ-порта настроена неверно. Вернитесь к приведенному ранее разделу поиска и устранения неисправностей для вашего компьютера. Но вначале сохраните программу. В меню Файл (File) выберите команду Сохранить (Save) и введите имя для своей программы. После того как вы исправите проблемы с COM-портом, вы сможете заново загрузить программу, если необходимо, и попробовать снова.

Если все работает как предполагалось, то теперь встроенный светодиод и ваш светодиод быстро мигают – включаются на одну десятую секунды и выключаются на десятую секунды, в соответствии с инструкциями в вашей программе.

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

Кратко подведем итог тому, что вы уже узнали и что необходимо делать для программирования платы Arduino.

• Создайте новую программу (или «эскиз», как его предпочитает называть среда Arduino).

• Выберите в меню Файл (File) пункт Новый (New), если это необходимо.

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

• Прежде чем что-либо делать с каким-либо контактом платы, вы должны объявить его номер и режим работы, используя команду pinMode.

• Для контакта может быть указан режим INPUT (Вход) или OUTPUT (Выход).

• Некоторые номера контактов недопустимы. Посмотрите на вашу плату, чтобы увидеть используемую систему нумерации.

• Каждую функцию или блок программы следует заключать в фигурные скобки. Скобки могут быть расположены на разных строках.

• Компилятор игнорирует разрывы строк и дополнительные пробелы.

• Каждая команда функции или блока должна завершаться точкой с запятой.

• Каждая программа Arduino должна содержать функцию loop (после функции setup), которая будет выполняться неоднократно.

• Команда digitalWrite переводит контакт, который настроен на работу в качестве выхода, в состояние HIGH («высокий» уровень) или LOW («низкий» уровень).

• Команда delay говорит плате Arduino ничего не делать в течение указанного интервала времени в миллисекундах (тысячных долях секунды).

Числа в круглых скобках после команды – это параметры, которые говорят о том, как применять данную команду.

Проверьте программу с помощью команды Проверить/Компилировать (Verify/Compile) в меню Скетч (Sketch), прежде чем загрузить ее в плату Arduino.

Вы должны исправить все ошибки, обнаруженные при проверке/компилировании.

Зарезервированные слова – это набор команд, которые понимает плата Arduino. Вы должны вводить их без ошибок. Заглавные и строчные буквы считаются различными.

После того как вы загрузили программу, она начнет работать автоматически, пока вы не отключите питание платы или не загрузите новую программу.

На плате Arduino Uno рядом с USB-разъемом находится кнопка сброса (тактильный переключатель). Когда вы нажимаете ее, плата Arduino сбрасывает все параметры и перезапускает программу.

Не забывайте сохранять программный код

Когда вы изменяете вашу программу и загружаете ее в микроконтроллер, новая версия будет записана поверх старой. Другими словами, предыдущая программа будет стерта. Если вы не сохранили ее под другим именем на компьютере, она будет утрачена навсегда. Будьте внимательны, когда загружаете модифицированные программы. Сохраняйте каждую версию на компьютере, присвоив ей новое имя, – это разумная мера предосторожности.

После того как инструкции программы будут загружены в микроконтроллер, извлечь их обратно невозможно.

Программирование требует внимания к мелочам

Не знаю, заметили ли вы, что краткая памятка для этого эксперимента оказалась длиннее, чем для всех других экспериментов, где мы работали с отдельными компонентами. При написании программы следует учитывать множество деталей, и вам необходимо все делать предельно аккуратно. Лично мне это нравится, ведь если что-либо сделано безошибочно, то оно будет правильным всегда, и всегда будет работать таким образом. Программы никогда не «изнашиваются». Если вы сохранили их на подходящем носителе, они могут прослужить бесконечно долго. Программы, которые я написал в 80-х годах, теперь спустя 30 лет, будут также работать в окне DOS на моем ПК.

Некоторым людям не по душе скрупулезная работа, они склонны делать опечатки или им не нравятся жесткие требования, которые предъявляет язык программирования (он, например, всегда настаивает, чтобы вы начинали программу с функции Setup, даже если у вас нет настройки). Разные люди предпочитают различные аспекты электроники, так и должно быть. Если бы всем хотелось писать программы и никому не нравилось заниматься «железом», то у нас не было бы никаких компьютеров. Какое занятие избрать – решать вам.

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

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

Вот несколько правил:

• Для работы программы плате Arduino необходимо питание.

• Плате не требуется питание, чтобы хранить программу. Она автоматически сохраняется в микроконтроллере, подобно данным на флэш-носителе.

• Если вы хотите запустить программу, когда плата не соединена с компьютером, то должны подключить источник питания через круглый черный разъем рядом с USB-разъемом на плате.

• Напряжение источника питания может составлять от 7 до 12 В. Его не нужно стабилизировать, потому что плата Arduino снабжена собственным стабилизатором, который превращает входное напряжение в постоянное напряжение 5 В. (Некоторые платы Arduino работают от источника 3,3 В, но не плата Uno.)

• Диаметр разъема источника питания равен 2,1 мм, его центральный вывод положительный. Вы можете купить сетевой адаптер на 9 В с таким разъемом.

• Если вы подадите внешнее питание, когда плата Arduino подключена с помощью USB-кабеля, то она будет автоматически использовать внешний источник питания.

• Вы можете отключить плату Arduino от USB-кабеля в любой момент, не беспокоясь о функции «Безопасного удаления оборудования», которая присутствует в некоторых версиях ОС Windows.

Разновидности микроконтроллеров

На заводах и в лабораториях многие процессы повторяются. Датчики температуры могут управлять нагревательным прибором. Датчик оборотов может регулировать скорость вращения электродвигателя. Микроконтроллеры идеальны для таких однообразных задач.

Компания General Instrument представила один из первых микроконтроллеров в 1976 году и назвала его PIC – Programmable Intelligent Computer (Программируемый интеллектуальный компьютер) или Programmable Interface Controller (Программируемый контроллер интерфейса), в зависимости от того, какому историческому источнику вы доверяете больше. В дальнейшем General Instrument продала бренд PIC другой компании, Microchip Technology, которая владеет им по сей день.