if/else: LED следует за кнопкой
Зажигайте LED только пока кнопка удерживается
«if/else: LED следует за кнопкой» — бесплатный урок Arduino & IoT Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Arduino & IoT Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Arduino & IoT Academy содержит 4 уроков всего.
Примите решение
Считывать состояние кнопки — это хорошо, но главное — реагировать на него. Инструкция if позволяет плате выбрать действие на основе полученного значения.
if выполняется по условию
Код внутри if выполняется только тогда, когда его проверка даёт истину. Так Вы можете включать светодиод только при фактическом нажатии кнопки.
if (state == LOW) {
// button is pressed
}Проверьте нажатие
Помните об инверсии: при INPUT_PULLUP нажатой кнопке соответствует LOW. Поэтому условие проверяет, равно ли сохранённое состояние LOW.
int state = digitalRead(2);
if (state == LOW) {
digitalWrite(13, HIGH);
}Добавьте ветвь else
А что происходит, когда кнопка не нажата? Блок else выполняется всякий раз, когда проверка if ложна, и задаёт вторую часть поведения.
if (state == LOW) {
digitalWrite(13, HIGH);
} else {
digitalWrite(13, LOW);
}Светодиод повторяет состояние кнопки
Вместе if и else заставляют светодиод повторять состояние кнопки: он включён, пока кнопку удерживают, и выключен после отпускания. Это Ваша первая настоящая связь между входом и выходом. 💡
Настройте оба вывода
Вывод кнопки является входом, а вывод светодиода — выходом. Объявите оба режима в setup(), чтобы каждый вывод знал своё назначение.
void setup() {
pinMode(2, INPUT_PULLUP);
pinMode(13, OUTPUT);
}Одно равно и два равенства
Классическая ошибка: для сравнения используйте ==, а не одиночный знак =. Одно равно присваивает значение, а два равенства проверяют, совпадают ли значения.
Цикл поддерживает работу
Поместите всё в loop(), чтобы кнопка проверялась тысячи раз в секунду. Светодиод отреагирует сразу после нажатия.
Сначала считайте, затем решите
Шаблон всегда один и тот же: считайте вход, затем примите решение с помощью if/else. Освойте его: Вы будете использовать его повсюду.
Сравнивайте прямо в if
Можно обойтись без переменной и сразу проверить результат считывания. Такой код читается проще и выполняет то же самое сравнение внутри скобок.
if (digitalRead(2) == LOW) {
digitalWrite(13, HIGH);
}От считывания к действию
Вы только что замкнули связь между входом и выходом с помощью одной лишь логики. Замените светодиод зуммером или двигателем — и та же идея по-прежнему будет управлять ими.
Быстрая проверка
Выберите условие, при котором светодиод включается, пока кнопка удерживается.
Повторение
Вы использовали if/else, чтобы светодиод следовал за кнопкой: при LOW он включается, при HIGH — выключается. Помните: для сравнения используется ==. Далее Вы соедините всё на макетной плате. 🔌
Часто задаваемые вопросы
Урок «if/else: LED следует за кнопкой» бесплатный?
Да — полный текст урока «if/else: LED следует за кнопкой» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Arduino & IoT Academy, подпишись на CoddyKit PRO. Курс Arduino & IoT Academy содержит 4 уроков всего.
Чему я научусь в уроке «if/else: LED следует за кнопкой»?
Зажигайте LED только пока кнопка удерживается Ты практикуешь Arduino & IoT Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Arduino & IoT Academy?
Предыдущий опыт не требуется. Arduino & IoT Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «if/else: LED следует за кнопкой»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Arduino & IoT Academy?
Да. Каждый урок Arduino & IoT Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- INPUT и INPUT_PULLUP
- Чтение состояния кнопки
- if/else: LED следует за кнопкой
- Подключение кнопки на макетной плате