
Светодиоды – это одни из самых простых и популярных компонентов для работы с Arduino. Они помогают визуализировать работу кода и понять принципы работы цифровых выходов. В этой статье мы подробно разберем, как включать и выключать светодиод с помощью функции digitalWrite()
.
Подключение светодиода к Arduino
Перед тем как написать код, нужно правильно подключить светодиод к плате Arduino.
Необходимые компоненты:
- Плата Arduino (например, Uno)
- Светодиод (LED)
- Резистор 220 Ом (для ограничения тока)
- Соединительные провода
Схема подключения:
- Аног светодиода (длинная ножка) подключается к цифровому пину (например,
pin
8). - Катод (короткая ножка) подключается к земле (
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 секунду
}
Разбор кода:
- В
setup()
объявляем пин 8 как выходной (OUTPUT
). - В
loop()
светодиод включается (HIGH
), затем ждёт 1 секунду (delay(1000)
). - Светодиод выключается (
LOW
), снова пауза 1 секунда. - Цикл повторяется бесконечно.
Применение кнопки для управления светодиодом
Добавим кнопку, чтобы управлять светодиодом вручную.
Дополнительные компоненты:
- Кнопка (push-button)
- Резистор 10 кОм (pull-down)
Схема подключения:
- Один контакт кнопки соединяем с пином 2 Arduino.
- Второй контакт соединяем с GND через резистор 10 кОм.
- Также подключаем этот контакт к 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); // Выключаем светодиод
}
}
Разбор кода:
buttonPin
настроен как вход (INPUT
).digitalRead(buttonPin)
проверяет состояние кнопки.- Если кнопка нажата (
HIGH
), включаем светодиод. - Если кнопка отпущена (
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);
}
}
Разбор кода:
millis()
отслеживает время с момента запуска.- Если прошло
interval
миллисекунд, инвертируем состояние светодиода (!state
). - В отличие от
delay()
, этот метод не блокирует выполнение других задач.
Заключение
Функция digitalWrite()
– основной способ управления цифровыми выходами в Arduino. С её помощью можно включать и выключать светодиоды, управлять реле, моторами и другими устройствами. Мы рассмотрели несколько примеров, начиная от простого включения светодиода до работы с кнопкой и millis()
. Эти знания помогут вам создавать более сложные проекты на базе Arduino!