Условный оператор if Statement
Узнайте, как использовать оператор if в Arduino, чтобы управлять светодиодом в зависимости от показаний потенциометра на аналоговом входе.
Оператор if() — это фундамент любой логики в программировании. Он позволяет выполнить какое-то действие только тогда, когда выполняется заданное условие. Выглядит это так:
if (someCondition) {
// выполнить действия, если условие истинно
}
Есть расширенный вариант — if-else, который добавляет альтернативную ветку на случай, если условие не выполнилось:
if (someCondition) {
// выполнить действия, если условие истинно
} else {
// выполнить действия, если условие ложно
}
А ещё существует конструкция else-if — она позволяет проверить второе условие, если первое оказалось ложным:
if (someCondition) {
// выполнить действия, если условие истинно
} else if (anotherCondition) {
// выполнить только если первое условие ложно
// а второе условие истинно
}
Операторы if встречаются буквально в каждом скетче. Пример ниже показывает классический сценарий: светодиод на пине 13 (встроенный LED на большинстве плат Arduino) загорается, когда значение на аналоговом входе превышает заданный порог.
Как это работает
Аналоговый вход Arduino возвращает число от 0 до 1023. Потенциометр, подключённый к этому входу, позволяет плавно менять это значение, поворачивая ручку. Оператор if сравнивает текущее значение с порогом: если значение выше — LED включается, если ниже — остаётся выключенным. Это простейший способ превратить аналоговый сигнал в цифровое решение «да/нет».
Необходимое железо
- Потенциометр или переменный резистор
Схема подключения

Потенциометр подключается к плате Arduino UNO на макетной плате: крайние выводы — к 5V и GND, средний (движок) — к аналоговому входу A0.
Принципиальная схема

Принципиальная схема: потенциометр (ПОТЕНЦИОМЕТР) средним выводом подключён к аналоговому входу A0 платы Arduino UNO. Крайние выводы соединены с 5V и GND.
Код
В скетче переменная analogValue хранит значение, считанное с потенциометра, подключённого к analogPin 0. Это значение сравнивается с порогом threshold. Если аналоговое значение превышает порог — встроенный светодиод на цифровом пине 13 включается. Если analogValue оказывается < (меньше) порога — светодиод остаётся выключенным.
Практические замечания
- Выбор порога. По умолчанию порог обычно задаётся где-то в середине диапазона (например, 512). Попробуйте менять это значение и наблюдать, при каком повороте ручки загорается LED.
- Дребезг на границе. Если потенциометр стоит ровно на пороговом значении, светодиод может быстро мигать из-за шумов. Решение — добавить гистерезис: включать при значении выше 520, а выключать только ниже 500.
- Монитор порта. Добавьте
Serial.println(analogValue)внутрьloop(), чтобы видеть реальные значения в Serial Monitor и точнее подобрать порог.
Типичные ошибки
- Перепутаны
=(присваивание) и==(сравнение) внутри условия — это одна из самых частых ошибок у новичков. Напишитеif (x = 5)вместоif (x == 5)— и код скомпилируется, но будет работать неправильно. - Потенциометр подключён без
GNDили5Vна крайних выводах — тогда значение на входе будет «плавать» и вести себя непредсказуемо. - Забытые фигурные скобки
{}при нескольких строках в телеif— без них выполнится только первая строка, остальные будут работать всегда.
Узнать больше
Дополнительные базовые примеры собраны в разделе built-in examples.
Также рекомендуем заглянуть в language reference — подробный справочник по языку программирования Arduino.
Последняя редакция: 2015/07/29, SM