Arduino: Включение и выключение светодиода (digitalWrite)

Светодиоды – это одни из самых простых и популярных компонентов для работы с Arduino. Они помогают визуализировать работу кода и понять принципы работы цифровых выходов. В этой статье мы подробно разберем, как включать и выключать светодиод с помощью функции digitalWrite().


Подключение светодиода к Arduino

Перед тем как написать код, нужно правильно подключить светодиод к плате Arduino.

Необходимые компоненты:

  • Плата Arduino (например, Uno)
  • Светодиод (LED)
  • Резистор 220 Ом (для ограничения тока)
  • Соединительные провода

Схема подключения:

  1. Аног светодиода (длинная ножка) подключается к цифровому пину (например, pin 8).
  2. Катод (короткая ножка) подключается к земле (GND) через резистор 220 Ом.

Схема в коде будет использовать пин 8, так как на многих платах Arduino он уже подключен к встроенному светодиоду.


Использование digitalWrite() для управления светодиодом

Функция digitalWrite(pin, state) позволяет устанавливать состояние цифрового пина:

  • HIGH – подать напряжение (включить светодиод);
  • LOW – убрать напряжение (выключить светодиод).

Простой код для включения и выключения светодиода:

void setup() {
    pinMode(8, OUTPUT); // Устанавливаем 8-й пин как выход
}

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

Разбор кода:

  1. В setup() объявляем пин 8 как выходной (OUTPUT).
  2. В loop() светодиод включается (HIGH), затем ждёт 1 секунду (delay(1000)).
  3. Светодиод выключается (LOW), снова пауза 1 секунда.
  4. Цикл повторяется бесконечно.

Применение кнопки для управления светодиодом

Добавим кнопку, чтобы управлять светодиодом вручную.

Дополнительные компоненты:

  • Кнопка (push-button)
  • Резистор 10 кОм (pull-down)

Схема подключения:

  1. Один контакт кнопки соединяем с пином 2 Arduino.
  2. Второй контакт соединяем с GND через резистор 10 кОм.
  3. Также подключаем этот контакт к 5V (при нажатии кнопки пин 2 получает HIGH).

Код с кнопкой:

const int ledPin = 8;
const int buttonPin = 2;

void setup() {
    pinMode(ledPin, OUTPUT);
    pinMode(buttonPin, INPUT);
}

void loop() {
    int buttonState = digitalRead(buttonPin);
    if (buttonState == HIGH) {
        digitalWrite(ledPin, HIGH); // Включаем светодиод
    } else {
        digitalWrite(ledPin, LOW); // Выключаем светодиод
    }
}

Разбор кода:

  1. buttonPin настроен как вход (INPUT).
  2. digitalRead(buttonPin) проверяет состояние кнопки.
  3. Если кнопка нажата (HIGH), включаем светодиод.
  4. Если кнопка отпущена (LOW), выключаем.

Использование мигания без delay() (millis())

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

Код мигания светодиода без delay():

const int ledPin = 8;
unsigned long previousMillis = 0;
const long interval = 1000;

void setup() {
    pinMode(ledPin, OUTPUT);
}

void loop() {
    unsigned long currentMillis = millis();
    if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis;
        int state = digitalRead(ledPin);
        digitalWrite(ledPin, !state);
    }
}

Разбор кода:

  1. millis() отслеживает время с момента запуска.
  2. Если прошло interval миллисекунд, инвертируем состояние светодиода (!state).
  3. В отличие от delay(), этот метод не блокирует выполнение других задач.

Заключение

Функция digitalWrite() – основной способ управления цифровыми выходами в Arduino. С её помощью можно включать и выключать светодиоды, управлять реле, моторами и другими устройствами. Мы рассмотрели несколько примеров, начиная от простого включения светодиода до работы с кнопкой и millis(). Эти знания помогут вам создавать более сложные проекты на базе Arduino!

Оставьте комментарий

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

Сайт создал Романенко Артем