Условные операторы в Ардуино

Условные операторы в Ардуино

Условные операторы – один из самых полезных инструментов в программировании Arduino. Они позволяют вам управлять потоком программы на основе определенных условий, которые вы можете определить в коде.

Условные операторы подобны тесту – они проверяют, является ли условие истинным или ложным. Если условие равно true, выполняется код внутри условного оператора. А если условие равно false – код не выполняется. Наиболее часто используемым условным оператором является оператор if.

Оператор IF (если) в Arduino

Операторы if обычно помещаются в раздел loop(), где они оцениваются один раз в каждом цикле цикла.

if (условие) {
   // Тело конструкции if. Здесь размещается Ваш код. 
   // Будет выполнен, если условие = true
}

Условие – это то, что определяет, будет выполнен код в теле или же нет. Обычно условие записывается для проверки того, является ли переменная меньше, больше или равна некоторому значение. Какое бы условие ни использовалось, оно должно отвечать значением true или false.

Если условие истинно (true), программа войдет в фигурные скобки и выполнит код внутри тела. А вот если условие ложно (false), то программа пропускает код и переходит к строке кода после закрывающей фигурной скобки.

Например, взгляните на этот оператор if в arduino, который выводит “x меньше, чем y” на последовательный монитор, когда x меньше y:

if (x < y) {
   Serial.println("x меньше, чем y");
}

Условие этого оператора if: x < y. Предположим, x равно 2, а y равно 4. Тогда выражение 2 < 4 является верным утверждением, поэтому программа войдет в фигурные скобки и выполнит код в теле. Код тела будет отправлять “x меньше, чем y” в монитор порта.

Если x равно 10, а y равно 4, тогда 10 < 4 является ложным утверждением, поэтому программа пропустит код в фигурных скобках и на последовательный монитор ничего не выведет.

Операторы сравнения в Ардуино

Операторы сравнения (также называемые реляционными операторами) очень полезны для написания условных операторов. Они используются для сравнения двух или более чисел или переменных.

Например, «равно», «больше» и «меньше» — некоторые распространенные операторы сравнения. Это наиболее распространенный способ установить условие в операторе if.

Ниже приведен список всех операторов сравнения, которые можно использовать в условных конструкциях:

  • х > у : х больше у
  • х < у : х меньше у
  • x >= y: x больше или равно y
  • x <= y: x меньше или равно y
  • х == у: х равно у
  • x != y: x не равно y

Если сравнение приводит к истинному оператору (получен оператор true), то будет выполнено тело условного оператора.

Оператор IF-ELSE в Arduino

Еще одним полезным условным оператором является оператор if else. Вот пример, как использовать оператор if else в arduino:

if (условие) {
   Здесь Ваш код; // выполняется, если условие истинно
}
else{
   И здесь Ваш код; // выполняется, если условие ложно
}

Подобно операторам if, операторы if else сначала оценивают условие. Если условие истинно, то код внутри тела блока if будет выполнен. Если условие ложно, будет выполнен код в блоке else.

Оператор IF-ELSE-IF

Оператор if else if позволяет проверить два условия. Вот код оператора if else if:

if (Условие 1) {
   // код выполняется, если условие 1 верно
} 
else if (Условие 2) {
   // код выполняется, только если условие 1 ложно, а условие 2 истинно
}

Сначала программа проверяет условие 1 в операторе if. Если оно равно true, то код в теле оператора if выполняется и программа выходит из всего блока if-else-if.

Если условие 1 ложно, программа проверяет условие 2 в блоке else if. Если условие 2 истинно, то код внутри тела секции else if будет выполнен, после чего программа выйдет из блока if else if.

Оператор if-else if похож на наличие двух операторов if, но есть небольшая разница. If-else-if выполняет только один блок — блок if или блок else if. То есть, выполняется первый блок с истинным условием. А в варианте с двумя операторами if – оба блока могут быть выполнены, если оба условия будут истинными.

Вложенные операторы IF

Операторы if могут быть вложены или помещены друг в друга. При этом они позволяют проверять несколько условий и выполнять различные действия, когда одно из них истинно. Очень часто этот трюк используется при работе с датчиками.

Например, вложенный оператор if может проверить, передает ли датчик данные, прежде чем считать данные с него.

В приведенном ниже примере используется вложенный оператор if, чтобы увидеть, отправляет ли датчик температуры данные в Arduino, прежде чем проверять, выше или ниже температура порогового значения:

int input = digitalRead(sensorPin);

if (input == HIGH) {
   digitalWrite(ledPin, HIGH);

   if(temp < 20) {
      Serial.print("Низкая температура!");
   }    
   if(temp > 20){
      Serial.print("Высокая температура!");
   }
}

Уровень напряжения на выводе датчика считывается с помощью функции digitalRead() и значение сохраняется в переменной input. Когда датчик отправляет данные на Arduino, на выводе датчика будет высокий уровень, поэтому в переменной input будет сохранено значение HIGH.

Первый оператор if проверяет значение, сохраненное в переменной input. Если оно содержит высокое значение, Arduino входит в тело оператор if и выполняет функцию digitalWrite() для установки высокого сигнала на контакте ledPin.

Следующие два оператора if вложены в первый оператор if. Если температура меньше 20 градусов, будет выполнен код в первом вложенном операторе if, и на последовательный монитор будет выведено сообщение “Низкая температура!”.

Если температура превышает 20 градусов, будет выполнена вторая вложенная инструкция if и на последовательный монитор будет выведено сообщение “Высокая температура!”. В этом примере вложенные операторы if вычисляются только тогда, когда датчик отправляет данные в Arduino.

Надеюсь, что эта статья поможет вам использовать условные операторы на Arduino. Не стесняйтесь оставлять комментарии ниже, если у вас есть какие-либо вопросы!

Документация

Компоненты

  • Arduino NANO
  • Arduino UNO
  • Arduino MEGA
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии