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

  Включает светодиод на одну секунду, затем выключает на одну секунду, и так много раз.

  Этот пример кода находится в свободном доступе.

*/

Далее идут два однострочных комментария. Они похожи на блочные комментарии, но в отличие от них начинаются с пары символов //. Эти комментарии описывают происходящее. В данном случае комментарий сообщает вам, что контакт с номером 13 — это тот самый контакт, которым мы собираемся управлять. Мы выбрали этот контакт, потому что на плате Arduino Uno он подключен к светодиоду L.

// На большинстве плат Arduino к контакту 13 подключен светодиод.

// Дадим ему имя:

int led = 13;

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

// процедура setup выполняется один раз после нажатия на кнопку сброса

void setup{

  // инициализировать контакт как цифровой выход

  pinMode(led, OUTPUT);

}

Структура этого текста может показаться немного странной тем, кто только начинает изучать программирование. Функция — это фрагмент программного кода, имеющий собственное имя (в данном случае setup). Пока просто используйте предыдущий текст как шаблон и помните, что скетч должен начинаться строкой void setup {, за которой следуют необходимые команды, каждая в отдельной строке, завершающиеся точкой с запятой (;). Конец функции отмечается символом }.

В данном случае Arduino выполнит единственную команду pinMode(led, OUTPUT), которая настраивает контакт на работу в режиме выхода.

Далее следует основная часть скетча, функция loop.

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

Функция loop включает светодиод, выполняя инструкцию digitalWrite(led, HIGH). Затем выполняется команда delay(1000), приостанавливающая скетч на 1 с. Значение 1000 здесь обозначает 1000 мс, или 1 с. После этого светодиод выключается, скетч приостанавливается еще на 1 с, и процесс повторяется.

// Процедура loop выполняется снова и снова, до бесконечности

void loop {

  digitalWrite(led, HIGH);  // включить светодиод (HIGH — уровень напряжения)

  delay(1000);              // ждать 1 с

  digitalWrite(led, LOW);   // выключить светодиод, установив уровень напряжения LOW

  delay(1000);              // ждать 1 с

}

Чтобы увеличить частоту мигания светодиода, заменим оба числа 1000 числом 200. Обе замены должны быть произведены в функции loop, поэтому теперь она должна выглядеть так:

void loop {

  digitalWrite(led, HIGH);  // включить светодиод (HIGH — уровень напряжения)

  delay(200);               // ждать 1 с

  digitalWrite(led, LOW);   // выключить светодиод, установив уровень напряжения LOW

  delay(200);               // ждать 1 с

}

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

Однако сейчас этого делать не нужно — просто выгрузите скетч в плату, не сохраняя его. Если сохранить этот или другой скетч, вы увидите, что он появится в меню File—>Sketchbook (Файл—>Папка со скетчами) Arduino IDE.

Итак, щелкните на кнопке Upload (Загрузка) еще раз, и, когда выгрузка завершится, плата Arduino сама сбросится и светодиод должен начать мигать чаще.

Переменные

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

При объявлении переменной в языке C необходимо указать ее тип. Например, если нужна переменная, хранящая целое число, ее следует объявить с типом int (сокращенно от integer — целое со знаком). Чтобы определить переменную с именем delayPeriod и значением 200, нужно записать такое объявление:

int delayPeriod = 200;

Так как delayPeriod — это имя, в нем не может быть пробелов. По общепринятым соглашениям имена переменных должны начинаться с буквы в нижнем регистре, а каждое новое слово в имени — с буквы в верхнем регистре. Такую «горбатую» форму записи имен программисты часто называют верблюжьей нотацией (camel case).

Давайте добавим эту переменную в скетч Blink, чтобы вместо жестко зашитого значения 200, определяющего продолжительность паузы, можно было использовать имя переменной:

int led = 13;

int delayPeriod = 200;

void setup {

  pinMode(led, OUTPUT);

}

void loop {

  digitalWrite(led, HIGH);

  delay(delayPeriod);

  digitalWrite(led, LOW);

  delay(delayPeriod);

}

Везде в скетче, где прежде использовалось число 200, сейчас стоит ссылка на переменную delayPeriod.

Если теперь вы пожелаете заставить светодиод мигать еще чаще, достаточно будет изменить значение delayPeriod в одном месте.

If

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT