Мигание светодиода на Ардуино Нано, Уно

Мигание встроенным светодиодом на Ардуино без делай

Мигание светодиодом Ардуино, встроенного на плате - это один из первых примеров скетчей, для начинающих программировать Arduino Uno или Arduino Nano.

Мигание светодиодом Ардуино, встроенного в плату — один из первых примеров скетчей, для начинающих изучать программирование микроконтроллера Arduino Uno или Arduino Nano. Разберем несколько примеров — мигание встроенным светодиодом, мигание без delay, мигание несколькими светодиодами. Прочитав статью до конца, вы поймете, как управлять миганием светодиодов, подключенных к Ардуино.

Мигание светодиодом на Ардуино Нано, Уно

Платы данного семейства имеют встроенный светодиод на плате, подключенный к пину 13 через резистор. Этот светодиод мигает при включении или перезагрузке микроконтроллера. Можно с помощью программы управлять включением и выключением (миганием) светодиодом, который «висит» на 13 пине Arduino Uno и Nano. При этом не потребуется даже собирать на макетной плате электрическую схему.

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • светодиоды и резисторы;
  • макетная плата;
  • провода «папа-папа».

Мигание встроенным светодиодом на плате

Для первого примера не потребуется собирать принципиальную схему. Код программы, используется из примера «Подключение светодиода к Ардуино». Встроенный светодиод подключается через резистор, поэтому к 13 пину можно подключать внешний светодиод без резистора. Это самый простой скетч, с которого начинают знакомство с Ардуино, скопируйте код и загрузите его в микроконтроллер через Arduino IDE.

Скетч. Мигание встроенным светодиодом Ардуино

void setup() {
   pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
   digitalWrite(13, HIGH); // зажигаем светодиод

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

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

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

Пояснения к коду:

  1. delay(); останавливает программу на заданное количество микросекунд;
  2. данный код подойдет к плате Arduino Nano и Arduino Mega.

Мигание светодиода на Ардуино без delay

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

Схема для мигания светодиодом на Ардуино без delay
Схема для мигания светодиодом на Ардуино без delay

Скетч. Мигание светодиода на Arduino Uno без delay

unsigned long currentTime;   // переменная времени
boolean ledState = 0;                 // переменная состояния светодиода

void setup() {
    pinMode(10, OUTPUT);      // объявляем пин 10, как выход
}

void loop() {
    if (millis() - currentTime > 500)   // проверяем сколько прошло миллисекунд
    {
       currentTime = millis();
       ledState=!ledState;                   // меняем состояние светодиода на противоположное
       digitalWrite(10, ledState);
    }
}

Пояснения к коду:

  1. каждые 500 миллисекунд состояние переменной boolean меняется на противоположное с помощью команды ledState=!ledState.

Мигание двух светодиодов на Ардуино Уно

Для следующего примера потребуется собрать схему на макетной плате из двух светодиодов, как изображено на картинке ниже. Более сложная программа с мигающими светодиодами — это светофор на Ардуино, где уже необходимо регулировать включение и выключение трех светодиодов и больше. После сборки электрической схемы загрузите следующий код в микроконтроллер.

Мигание несколькими светодиодами на Ардуино одновременно
Мигание несколькими светодиодами на Ардуино одновременно

Скетч. Мигание несколькими светодиодами одновременно

void setup() {
   pinMode(12, OUTPUT); // объявляем пин 12 как выход
   pinMode(10, OUTPUT); // объявляем пин 10 как выход
}

void loop() {
   digitalWrite(12, HIGH); // зажигаем светодиод
   digitalWrite(10, LOW); // выключаем светодиод

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

   digitalWrite(12, LOW); // выключаем светодиод
   digitalWrite(10, HIGH); // зажигаем светодиод

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

Пояснения к коду:

  1. включение/выключение светодиодов происходит поочередно;
  2. одновременное включение можно сделать, поменяв местами строчки в коде.
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *