|   Войти

Мигающий светодиод

Авторы: Ермолов К. А.,

Манойлов В. В.

Февраль 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 раза.