Мигающий светодиод
Авторы: Ермолов К. А.,
Манойлов В. В.
Февраль 2019
Чтобы увидеть работу нашей первой программы для Arduino, нам потребуется только плата Arduino. На ней есть встроенный светодиод, который подключен к 13-му цифровому выводу контроллера.

Напишем программу, которая заставит светодиод мигать. Вот простейший пример программы:
void setup() { //функция setup выполняется один раз
pinMode(13,OUTPUT); //13-й вывод цифрового порта делаем выходом
}
void loop() { //функция loop выполняется бесконечное количество раз, пока работает контроллер
digitalWrite(13,HIGH); // на 13-й вывод цифрового порта подаем высокий уровень т.е. логическую единицу (+5 Вольт). Светодиод загорится.
delay(250); //ждем 250 миллисекунд, т.е. одну четверть секунды. Светодиод продолжает гореть.
digitalWrite(13,LOW); //на 13-й вывод подаем низкий уровень т.е. логический ноль (0 Вольт). Светодиод погаснет
delay(250); // ждем еще 250 миллисекунд. В течение этого времени светодиод не горит.
} // после этого процедура loop повторится
Загружаем данную программу в контроллер с помощью кнопки в Arduino IDE В результате работы программы светодиод будет мигать 2 раза в секунду. Скачать программу.
Если мы хотим подключить внешний светодиод, то это можно сделать как показано на рисунке:

В данном случае светодиод подключен к выводу №9 цифрового порта через резистор. Резистор нужен для того, чтобы ограничить ток, текущий через светодиод и вывод цифрового порта. Сопротивление этого резистора должно быть не меньше 300 Ом. Чем больше сопротивление резистора, тем более тускло будет гореть светодиод. Программа будет выглядеть точно также, только вместо 13-го вывода, будет указан 9-й:
void setup() {
pinMode(9, OUTPUT);
}
void loop() {
digitalWrite(9, HIGH);
delay(250);
digitalWrite(9, LOW);
delay(250);
}
Если мы будем подключать светодиод к разным выводам цифрового порта, то нам в программе потребуется изменить номер вывода в 3-х местах. Если программа будет более большая, то менять номер вывода станет значительно сложнее. Чтобы избежать сложностей, создадим переменную типа byte, например, с названием LED, и присвоим ей число, соответствующее номеру вывода, в данном случае 9. Тип byte позволяет присваивать переменной числа от 0 до 255.
byte LED=9;
Теперь в командах pinMode и digitalWrite вместо номера порта мы можем написать переменную LED. Если мы подключим светодиод к другому выводу цифрового порта, нам будем достаточно один раз поменять значение переменной LED в начале программы. Программа примет следующий вид:
byte LED=9;
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, HIGH);
delay(250);
digitalWrite(LED, LOW);
delay(250);
}
Чтобы изменить скорость мигания светодиода, нужно изменить количество миллисекунд в командах delay. Например если в программе стоит delay(500), то частота мигания светодиода уменьшится в 2 раза.