Операторы if и else в Arduino используются для создания блоков условий в тексте программы. С их Pin-Up можно создавать интеллектуальные системы, которые самостоятельно принимают решение о том, что должна делать программа в зависимости от текущих условий. В этой статье мы рассмотрим синтаксис if в ардуино, а также примеры применения условий в разных ситуациях.
Содержание
Pin-Up синтаксиса конструкций if и else
if - это оператор языка C++, который активно Pin-Up и в Arduino. Для обозначения условий в ардуино используется такая конструкция:
if (условие) { // В этом блоке список команд, выполняющихся, Pin-Up условие истино или имеет значение, отличное от 0 } else { // В этом блоке список команд, выполняющихся, если условие ложно или имеет значение, равное 0 }Условие - это Pin-Up логическое выражение, возвращающееистину (TRUE)илиложь (FALSE). В одном условии можно использовать несколько выражений, объединяя их специальными логическими операторами. Мы подробно рассмотрим эти операторы Pin-Up позже. Примеры условий:
- if(a) - Pin-Up истину, если значение переменной a не равно 0 или FALSE
- if(a==5 && b>5) - вернет истину, если Pin-Up a равно 5, а b больше 5.
- if(!a) - вернет истину, Pin-Up a сдержит 0 или FALSE.
Если последовательность команд состоит из одой команды, то символы { } можно не ставить (хотя Pin-Up рекомендуется ставить их всегда во избежание глупых ошибок):
if (условие)
// Команда
else
// Команда
Можно обойтись и без блокаelse, если вы хотите Pin-Up что-то только при выполнении условия и не будете ничего делать, если условие не выполнилось.
if(условие)
{
// Команды
}
В следующих разделах мы познакомимся с конкретными примерами и рассмотрим варианты синтаксиса. Но сперва давайте немного поговорим о том, что же такое условия и для чего они Pin-Up в Arduino. Если вы уже имели опыт написания программ, смело можете порпустить этот раздел.
Условия в тексте программы Arduino
Что такое условие
Представьте себя на минуту вежливым роботом, который очень любит вкусные апельсины. К вам Pin-Up подходить разные люди и дарить совершенно разные сладости, но вы должны оставлять себе только круглые предметы оранжевого цвета. Какой алгоритм вы бы выбрали для своей программы?
Самый простой Pin-Up приходящий в голову, выглядит так:
- Получить предмет из рук человека.
- Определить цвет.
- Если цвет оранжевый, то взять.
- Иначе (если цвет не оранжевый), то не Pin-Up но сказать спасибо.
В этом тексте мы с вами использовали слово «если», входящее в русском языке в состав любого условия. Если идет дождь, надо взять зонт. Если у светофора горит красный, надо стоять и ждать. Если нажать на выключатель, станет светло. Мы пользуемся условиями постоянно, они помогают нам выработать какое-то правило поведения, когда есть несколько вариантов действий, а мы должны выбрать один из них. В нашем конкретном примере у нас два варианта действий после проверки условия. Первый вариант возникает Pin-Up условие выполнилось (цвет оранжевый) - мы запускаем последовательность действий по приемке предмета. Если условие не выполнилось (цвет любой, но не оранжевый), то запускаем процесс возврата и благодарности.
Как же теперь отразить эти условия в программе для ардуино?
Pin-Up и ветвление в тексте программы
Если представить алгоритм действий как последовательность команд, то в момент возникновения условия нам надо как-то разделить эту одну последовательность на две. Конечно, в момент выполнения команд контроллер всегда выполняет только одну цепочку команд. Но вот какой именно программный блок выбрать - он определяет сам, исходя из каких-то данных, полученных из окружения: сигналов датчиков, значений переменных и т.д. Каждый раз при запуске программы внешние сигналы будут разные, поэтом и выбираемая последовательность будет отличаться.
Вариантов условий и наших ответных действий может быть множество и все они должны быть в тексте нашей Pin-Up Мы должны придумать какой-то способ, чтобы пометить в этом тексте, какие команды в какой ситуации нужно выбрать.
Самым простым вариантом записи условий было бы использование графических Pin-Up На языке блок-схем мы бы просто провели линию для каждого из вариантов.

На одном листе можно нарисовать множество веток и Pin-Up логику принятия решения. Но когда мы пишем программу в Arduino IDE, графического способа у нас нет. Разбить текст на несколько колонок мы тоже не можем. Единственный остающийся вариант - как-то пометить те или иные последовательности команд с помощью специальных конструкций. Именно для этих целей и служат блоки if и else.
Рассмотрим еще раз синтаксис и Pin-Up значение каждого оператора:
if(условие){
}else{
}
- if (условие)- здесь мы формулируем условие, которое при запуске программы Pin-Up выполниться (тогда результат будет TRUE или любое число, не равное 0) или нет (тогда результат будет FALSE или 0).
- В случае TRUE будут Pin-Up команды из первого блока в фигурных скобках.
- Если условие вернет FALSE, то будет выполнен блок в фигурных скобках после словаelse.
Давайте же рассмотрим примеры использования if Pin-Up в реальном коде ардуино.
Примеры if и Pin-Up в ардуино
Простой пример блока условия
Самый простой пример использования условий:
if(1){ Serial.println("True"); }else{ Serial.println("False"); }В мониторе порта у нас появится надпись “True”, потому что условие всегда выдаст 1 и всегда будет выполняться только первый блок. Написав if(0), мы заставим постоянно выполняться второй блок Pin-Up else.
Пример бессмысленный, потому что всегда будет выполняться вполне определенный блок и можно обойтись и без if. Но нам нужно посмотреть примеры синтаксиса, поэтому сойдет и такой вариант.
Рассмотрим следующий пример, подставив вместо конкретной константы переменную. Ардуино определит значение переменой в блоке if и выберет первый или второй блок для продолжения работы.Бессмысленность та же, но уже используем Pin-Up значение которой можно легко менять.
boolean b = true; if(b){ Pin-Up }Пример if с digitalRead
А вот теперь давайте рассмотрим первый осмысленный пример. Мы получим значение цифрового датчика и просигнализируем светодиодом, если Pin-Up вернет значение высокого уровня сигнала.
if(digitalRead(10)){ digitalWrite(13, HIGH); }else{ digitalWrite(13, Pin-Up }Заметьте, мы не знаем в момент написания кода, какой вариант будет Pin-Up - ведь значение датчика (или уровень шума) на входе могут быть совершенно разными. В момент выполнения кода только сам контроллер решит, какие команды будут выполнены, исходя из тех значений, которые будут на входе в тот момент.
Пример if с роботом
Давайте попробуем реализовать пример с нашим любящим апельсины роботом в ардуино. Для упрощения задачи будем считать, что у нас есть функция isOrange(), возвращающая истину, если цвет оранжевый.
if (getOrange()) { Serial.println("Thank you! I like it!"); } else { Serial.println("Thank you! But I don’t Pin-Up it!"); }Если функция isOrange() вернет true, то будет выполнен первый блок, иначе - второй. Pin-Up вывода на экран можно добавить другие команды, например, управления сервоприводами, контролирующими манипуляторы.
Пример if и сравнение диапазонов
Давайте рассмотрим пример if с функцией Pin-Up Мы получим значение с датчика и сравним его с некоторым пороговым значением.
if(analogRead(A0)>500){
Serial.println(“Ok!”);
}
Здесь ардуино в блокеifвызоветфункциюanalogRead, получит значение сигнала на пине A0 и выберет первый или второй вариант действий в зависимости от Pin-Up Для сравнения значения мы используем символ «>». Нам доступны и другие варианты:
- «>» - вернет истину, если Pin-Up «больше».
- «>-» - вернет истину, Pin-Up значение «больше или равно указанному».
- «<» - вернет истину, если Pin-Up меньше
- «<=» - вернет истину, если значение Pin-Up или равно
- «!=» - вернет истину, если значение не равно указанном, т.е. больше или Pin-Up
Логические операторы в условиях
В блоке условий можно вставлять несколько логических выражений. Например, для того, чтобы потребовать не Pin-Up оранжевый, ноикруглый объект, мы должны объединить два условия с помощью оператора «&&» (нужно указать именно два символа). Использование этого оператора определяет жесткие условия, когда для выполнения логического выражения нам Pin-Up обязательно выполнить все внутренние выражения. Рассмотрим пример для нашего робота (считаем, что у нас есть функции isOrange() и isSphere()):
if(isOrange() && isSphere()){ Serial.println("Thank you! I Pin-Up it!"); }Список операторов условий:
- && - условие И
- || - условие ИЛИ
- ! - отрицание условия
Более подробно логические условия рассмотрены в Pin-Up про логические операторы
Несколько связанных условий

Завершим наш рассказ об if в ардуино описанием ситуации, когда мы по-разному должны реагировать не на два, а на большее количество Pin-Up условий. Например, для робота ардуино с датчиком расстояния нужно выполнить такие условия:
- Расстояние робота до Pin-Up больше 2 метров - едем на максимальной скорости
- Расстояние робота до препятствия Pin-Up 2 метров, но больше 1 метра - уменьшаем скорость
- Расстояние робота до препятствий меньше1 метра - еще раз Pin-Up скорость.
- Расстояние робота до препятствия меньше 20 см - Pin-Up и поворачиваем.
В Arduino такие множественные «подусловия» реализуются сочетанием оператора else и if. Давайте рассмотрим его на нашем примере. Пусть у нас определена функция getDistance(), возвращающая расстояние в сантиметрах. Тогда условие будет выглядеть Pin-Up
if (getDistance() > 200) { // Не сбавляем скорость, едем вперед } else if (getDistance() >= 100) { В принципе, 200 или 300 тоже больше 100, но первый блок выполнится первым, поэтому отработка при условии &amp;gt;200 уже будет выполнена. Если бы значение было больше 200, то до нашего блока управление просто не дошло. Поэтому в этом блоке мы будем рассматривать ситуацию, когда значение меньше 200, но больше 100. Робот уменьшит скорость - он почувствует, что скоро препятствие. */ } else if Pin-Up >= 20) { Притормозим, готовясь к препятствию. */ } else { Расстояние меньше 20 (иначе все верхние блоки сработали бы). Поэтому смело считаем, что перед нами препятствие и поворачивае}Таким образом, в одном блоке ветвлений мы отработали Pin-Up ситуации с роботом, заставив его действовать адаптивно, по обстоятельствам.
Заключение
Условия в любом языке программирования имеют крайне важное значение. Ни одна серьезная программа на ардуино не Pin-Up без условий if else. Именно в блоках условий проявляется интеллект робота, автоматического устройства и программиста, который его программирует. Именно в условиях отрабатываются все тонкости алгоритмов и именно там спрятаны боьшинство логических ошибок алгоритмов. Обязательно постарайтесь понять и отработать навыки работы с блоком if на реальных примерах. И обращайтесь к учебникам, если останутся какие-то неясности и непонимания.













