В отличии от программы на языке C++ с обязательной функцией main(int argc, char *argv[]), скетч для Arduino содержит две другие обязательные функции.
void setup()
{
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Как видно из все того же примера мигания светодиодом, это функции setup() и loop().
Функция setup() вызывается лишь один раз при первом запуске программы. Ее стандартное использование: первичная настройка. Обычно это установка режима работы пинов, инициализация переменных и объектов. Функция должна обязательно присутствовать в программе, даже если она пустая. В нашем примере в ней задается режим работы пина 13.
Функция loop() содержит код, который повторяется бесконечное число раз в цикле. Весь основной код обычно размещается здесь. В примере это строчки с 8 по 11, в которых происходит повторение функции digitalWrite(), которая зажигает и гасит светодиод. Между ее вызовами стоит функция задержки delay().
Функция loop() также должна обязательно присутствовать в скетче. Хотя обычно она содержит код, бывают случаи, когда программа должна выполниться лишь один раз, после чего завершиться. В этом случае удобнее весь код разместить в функции setup(), а loop() останется пустой.