Как правильно написать программу: процедуры setup и loop

Откройте среду разработки и введите в открывшемся окне следующий текст:

void setup ( )
{
}

void loop ( )
{
}

Нажмите кнопку Verify и удостоверьтесь, что внизу появилась надпись «Done compiling». Она означает, что вы не допустили ошибок при написании кода.

Как это работает

Наша программа состоит из двух процедур, каждая из которых имеет следующий вид:

void названиеПроцедуры ( )
{
}

Одна процедура называется setup, другая — loop. Эти процедуры обязательно должны быть в программе, иначе компилятор выдает ошибку. В написанной программе процедуры пусты: нет ничего между фигурными скобками, поэтому программа не делает ничего. Это минимально возможная программа для Arduino. Можете считать её чистым листом, который нужно дополнять, чтобы получить нечто полезное.

Например, программа в Лабораторной работе «Маячок». Разберите ее самостоятельно.

Как управлять подключенным устройством: процедуры pinMode, digitalWrite, delay

Давайте ещё раз взглянем на программу, которую мы только что написали, и попытаемся в деталях понять, что  в ней происходит. Начнем с процедуры setup.

void setup ( )
{
pinMode (13, OUTPUT);
}

Как мы видим, данная процедура содержит одну-единственную команду pinMode (13, OUTPUT). Это вызов встроенной процедуры pinMode с аргументами 13 и OUTPUT. Аргумент — это то, что передается в процедуру для уточнения того, что мы хотим сказать командой.

Вызов любой процедуры в Arduino происходит следующим образом:

имяПроцедуры (Аргумент1, Аргумент2, Аргумент3, ….);

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

Прежде чем понять, что делает процедура pinMode, давайте разберем общие правила работы Arduino. Если вы взгляните на плату, то увидите множество пронумерованных контактов. Эти контакты мы будем называть пинами. К каждому контакту может подсоединяться какое-нибудь устройство. В нашем случае — светодиод. Arduino может общаться с этим устройством посредством подачи на него электрического напряжения. В таком случае говорят, что пин, к которому подсоединено устройство, работает на выход. Это обозначается в программе словом OUTPUT.

Однако общение может происходить и в обратную сторону. То есть прибор (например, кнопка) может передавать напряжение на плату Arduino. В таком случае говорят, что пин работает на вход и обозначается словом INPUT.

Давайте ещё раз взглянем на команду pinMode (13, OUTPUT):

— pinMode  — название процедуры, которая устанавливает определенный пин в соответствующий режим.

— 13 — номер пина, в которым будем работать.

— OUTPUT  — это режим, в который мы устанавливаем пин. т.е. в нашем случае 13-й пин будет работать на выход. Это значит, что мы будем передавать сигнал на светодиод.

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

Процедура loop состоит из четырёх команд, которые выполняются последовательно:

digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);

Процедура digitalWrite тоже является встроенной на Arduino. Она подаёт напряжение на заданный пин. 13 — номер пина, на который мы подаем напряжение, а HIGH — величина напряжения, которое мы задаем на пин. HIGH — встроенная константа. В данном случае она соответствует 5 вольтам.