Программируем Arduino | страница 12



/*

  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 с