Наш адрес: Гагарина 155 (выше Басенова), оф. 507/4, здание бизнес-центра “Тенгри”

Звоните: 8 705 262 21 62, 8 747 368 24 80


void setup()

{

pinMode(13, OUTPUT);    // устанавливаем режим работы 13 пина на выход

}

 

void loop()

{

digitalWrite(13, HIGH);   // включаем светодиод на 13 пине

delay(1000);                 // ждем секунду

digitalWrite(13, LOW);   // выключаем светодиод на 13 пине

delay(1000);                 // ждем секунду

}

 

Две основные функции void setup() и void loop(), без которых невозможно создать скетч для Arduino:

void setup()

{

                // Первоначальные установки

}

void loop()

{

                // Тело бесконечного цикла

}

 

Обратите внимание на фигурные скобки. Они всегда парные. И если есть одна открывающая, то всегда должна быть и закрывающая.

 

Функция setup()

вызывается только один раз, когда стартует скетч при подачи питания на Arduino, или же когда перезапускаем плату нажатием на кнопку RESET.

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

 

Функция loop()

запускается сразу после функции setup(). Весь код, который записан в пределах этой функции выполняется бесконечное число раз.

 

; (точка с запятой)

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

 

Комментарий

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

Комментарии не записываются в память микроконтроллера, так как игнорируются компилятором.

Очень полезны когда нужно «выключить» участок кода не убирая его из записи.

При поиске не явной ошибки полезно «выключать» по очереди участки программы и смотреть где проявится ошибка.

 

Однострочный комментарий //

Действует только в пределах одной строки:
// Любой текст или участок кода.

 

Многострочный комментарий /* … */

/*
Здесь может
быть текст
или участок кода


*/

 

Функция pinMode() 

Синтаксис:

pinMode(pin, mode); 

Параметры:

pin - номер входа/выхода контроллера (pin) с которым Вы хотите работать.

mode – режим, одно из двух значений: INPUT или OUTPUT, устанавливает pin контроллера на вход или выход соответственно. 

Возвращаемое значение: нет

 

При помощи этой функции можно менять аналоговые входы А0 – А1 на цифровые входы/выходы.

Тогда аналоговый А0 станет 14 цифровым пином, А1 – 15, А2 – 16, А3 – 17, А4 – 18 и А5 – 19 пином.

pinMode(18, OUTPUT); // устанавливаем А4 как 18 цифровой выход.

 

Функция digitalWrite()

Подает HIGH или LOW значение (1 или 0) на цифровой пин.

Когда мы устанавливаем значение в HIGH или 1, то на соответствующем пине напряжение будет 5 вольт (высокий уровень). Если устанавливаем значение LOW или 0, то напряжение будет равно 0 вольт (низкий логический уровень).

Для плат контроллеров, которые питаются от 3,3 вольта высокий логический уровень (HIGH или 1) будет соответствовать 3,3 вольта.

 

Синтаксис:

digitalWrite(pin, value); 

Параметры:

pin - номер входа/выхода контроллера (pin).

value – одно из значений: HIGH или LOW (1 или 0).

Возвращаемое значение: нет.

digitalWrite(13, HIGH);   // включаем светодиод на 13 пине

 

Функция delay()

Приостанавливает выполняемую программу на заданное количество миллисекунд (1000 миллисекунд = 1 секунде, соответственно полсекунды это 500 миллисекунд, 3 секунды это 3000 миллисекунд).

Важно помнить, что когда Вы пользуетесь delay() микроконтроллер останавливается на последнем операторе перед данной функцией на заданное количество времени и не производит никаких логических и математических действий, не производит опрос портов и т.д.

 

Синтаксис:

delay(ms);

Параметры:

ms - количество миллисекунд, на которое приостанавливается выполнение программы.

Возвращаемое значение: нет.

delay(1000);    // ждем секунду

 

Модификация программы с использованием переменной: 

int ledPin = 13; // Светодиод подключенный к пину 13
void setup()
{
pinMode(ledPin, OUTPUT); // устанавливаем режим работы - выход
}

void loop()
{
digitalWrite(ledPin, HIGH); // включаем светодиод
delay(1000); // ждем секунду
digitalWrite(ledPin, LOW); // выключаем светодиод
delay(1000); // ждем секунду
}

 

Переменная – это область памяти, которую мы резервируем для хранения определенного типа данных и имеющая собственное имя.

В примере выше мы использовали переменную ledPin и задали тип для переменной int.

 

Тип данных int.

Тип данных int (от англ. integer - целое число) один их наиболее часто используемых типов данных для хранения чисел. int занимает 2 байта памяти, и может хранить целые числа (не дробные) от -32 768 до 32 767.

 

Синтаксис:

int var = val;

Параметры:

var - имя переменной (может быть любым допустимым для языка программирования);

val - значение, присваиваемое переменной;

int ledPin = 13;

Часто используется для приведения дробного числа к целому.

Например, переменная с именем Х хранит число 128.67, а нам нужно целое число для управления ШИМ. Одна строчка кода может решить вопрос, мы перезапишем переменную как целое число, как тип данных int.

int Х = Х;

и в результате Х станет равным 128.