Выбрать главу

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

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

/*

  Blink

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

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

*/

Далее идут два однострочных комментария. Они похожи на блочные комментарии, но в отличие от них начинаются с пары символов //. Эти комментарии описывают происходящее. В данном случае комментарий сообщает вам, что контакт с номером 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, нужно записать такое объявление: