Логические операторы в Ардуино

Логические операторыЛогические операторы могут использоваться с операторами if и if-else для упрощения и расширения процесса принятия решений в наших программах.

Тремя логическими операторами являются OR (или) (||), AND (и) (&&) и NOT (не) (!), про них то мы и поговорим в этой статье.

Логический оператор OR (||)

Логический оператор OR прописывается в скетчах в виде двух вертикальных вертикальных черточек (||), расположенных на той же клавише, что и обратная косая черта (\) на клавиатуре (английская раскладка). Нажатие Shift + \ (клавиши Shift и обратная косая черта) вводит вертикальный символ вертикальной черты.

Следующий скетч демонстрирует использование логического оператора OR для проверки букв алфавита в верхнем и нижнем регистре.

Программа включит светодиод на плате Arduino Uno, если строчная буква «а» или заглавная буква «А» отправлены из окна Монитор порта. При отправке любого другого символа светодиод гаснет.

Как работает логический оператор OR

Приведенный ниже код взят из приведенного выше скетча и показывает логический оператор OR:

Код в теле оператора if будет выполняться, если переменная rx_byte содержит «a» OR (||) (или), если она содержит «A«. Оператор OR использовался для проверки того или иного символа (A OR a).

Читать также:  Удаленное подключение к Raspberry Pi

Код может быть изменен для включения светодиода при получении символа «a», символа «b» или символа «c», как это сделано в коде ниже:

В приведенном выше коде все операторы сравнения, равные реляционным операторам, заключены в круглые скобки () для облегчения чтения кода. Это также позволяет избежать непонимания того, какой оператор вычисляется первым (что вычисляется первым == или ||?).

== имеет более высокий приоритет, чем || что означает, что сначала вычисляется ==. Круглые скобки имеют наивысший приоритет, поэтому все, что находится в скобках, будет оцениваться первым. В этом случае нет необходимости ставить круглые скобки, но это облегчает чтение.

Логический оператор AND (&&)

Следующая программа демонстрирует использование логического оператора AND. Скетч проверяет, что перед включением светодиода была получена последовательность из двух символов.

В этом скетче два символа должны быть отправлены в правильном порядке для включения светодиода. Сначала нужно отправить «c», а затем «d».

Как работает логический оператор AND

Оператор AND из приведенного выше скетча показан ниже:

Читать также:  Робот для стирания с магнитной доски

Светодиод будет включаться только тогда, когда переменная first_char содержит ‘c‘, а переменная rx_byte содержит ‘d‘.

Переменная first_char используется для хранения текущего полученного символа, чтобы при следующей оценке оператора if мы могли увидеть, следует ли за ним «d» и содержит ли он «c».

Логический оператор NOT (!)

Оператор NOT может использоваться, чтобы проверить, содержит ли переменная значение 0 — другими словами, он может использоваться, чтобы проверить, оценивается ли переменная как ложь.

Пример работы оператора NOT

В следующем примере показан логический оператор NOT, используемый в скетче. Хотя этот скетч не является практическим применением оператора NOT, но он демонстрирует, как он работает.

В скетче каждый символ, отправленный в Arduino из окна Монитор порта, включит светодиод, за исключением символа «a».

Оператор not инвертирует логику второго оператора if, как показано ниже:

Если переменная rx_byte содержит символ «a», тогда выражение в операторе if будет оцениваться как истинное, однако оператор NOT изменяет результат на ложь, так что при получении «a» светодиод гаснет.

Читать также:  Механический светодиодный светильник-тюльпан на Arduino

Точно так же, если переменная rx_byte содержит любой символ, кроме «a», выражение обычно оценивается как ложь, но оператор NOT инвертирует ложный результат в истину.

Приведенный выше код можно было бы проще написать, используя оператор отношения не равно (! =), как показано ниже:

Логический оператор NOT имеет практическое применение в более сложных скетчах. Просто помните, что если результат сравнения когда-либо потребуется инвертировать, можно использовать логический оператор NOT. Его можно использовать, чтобы заставить оператор if оценивать значение истина, когда оно обычно оценивается как ложь.

Вывод

В этой статье мы с вами разобрали три логических оператора: OR (||), AND (&&) и NOT (!). Как вы могли заметить, применение их на практике, не такая уж и сложная задача. Примените все выше изложенные скетчи на практике для закрепления материала. А в следующей статье мы с вами разберем работу оператораторов переключения и прерывания.

С Уважением, МониторБанк

Добавить комментарий