Programação para Arduino – Condicional if else

Programação para Arduino – Condicional if else

Em programação, uma estrutura chamada de desvio condicional tem por finalidade tomar uma decisão de acordo com o resultado de uma determinada condição (chamada de teste lógico), e então executar um bloco de códigos específico, o qual irá depender do resultado desse teste.

Nesta lição estudaremos os desvios condicionais simples, composto e encadeado em programação para Arduino, conhecidos como condicional if , condicional if else. e condicional if else if

O condicional simples if permite executar um bloco de instruções caso o resultado do teste lógico retorne o valor verdadeiro (true), e não realiza nenhuma ação caso o teste lógico retorne o valor falso (false).

Já o condicional composto if else permite executar um bloco de instruções caso o resultado do teste lógico retorne o valor verdadeiro (true), e um bloco de instruções diferente caso o teste lógico retorne o valor falso (false).

O condicional encadeado nada mais é do que o encadeamento de estruturas de decisão compostas em um algoritmo. Essa estrutura é empregada em situações nas quais é preciso verificar condições de teste sucessivas, onde uma ação será executada caso um conjunto anterior de ações seja satisfeito.

Sintaxe

A sintaxe do condicional if no arduino é a seguinte:

if (teste lógico) {
  bloco de código executado se teste lógico retornar verdadeiro
}

A sintaxe do condicional if else no arduino é a seguinte:

if (teste lógico) {
  bloco de código executado se teste lógico retornar verdadeiro
}
else {
  bloco de código executado se teste lógico retornar falso
}

Note que o bloco else deve vir imediatamente após a chave de fechamento do bloco if, ou ocorrerá um erro ao tentar executar o código.

E, finalmente, a sintaxe do condicional if else if no arduino é mostrada a seguir:

if (teste lógico 01) {
  bloco de código executado se teste lógico 01 retornar verdadeiro
}
else if (teste lógico 02) {
  bloco de código executado se teste lógico 02 retornar verdadeiro
}
else {
  bloco de código final, executado se nenhum teste retornar verdadeiro
}

Note que podemos ter quantos blocos else if forem necessários. Porém, se o algoritmo começar a se tornar muito complicado, recomenda-se empregar uma estrutura switch case em seu lugar.

Vejamos agora alguns exemplos da aplicação dos desvios condicionais em programação para Arduino.

Exemplo 01: Condicional Simples no Arduino

Vejamos um exemplo de aplicação do condicional simples if no Arduino. Vamos construir um circuito que consiste em um LEDs conectados à uma saída digitais do microcontrolador, o qual será aceso de acordo com um valor digitado no monitor serial. Se o valor fornecido for o número 1, o LED se acenderá e permanecerá aceso por 3 segundos; caso contrário, o LED não se acenderá.

A seguir, temos o diagrama esquemático do circuito a ser utilizado:

Condicional if Arduino

E a seguir, o código-fonte de nosso projeto:

const int LED = 8;

void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
}

void loop() {
  if (Serial.available()) {
    char valor = Serial.read();
    if (valor == '1') {
      digitalWrite(LED, HIGH);
      delay(3000);
      digitalWrite(LED, LOW);
    }
  }
}

Exemplo 02 – Condicional Composto no Arduino

Vejamos agora um exemplo de aplicação do condicional composto if else no Arduino. Vamos acrescentar um LED ao circuito anterior, os quais serão acesos de acordo com um valor numérico digitado no monitor serial.  Se o valor fornecido for igual a 1, o primeiro LED se acenderá e o outro permanecerá apagado; para qualquer outro valor digitado, o segundo LED será aceso e o primeiro será apagado.

A seguir, temos o diagrama esquemático do circuito a ser utilizado:

Condicional if else Arduino

E a seguir, o código-fonte de nosso projeto:

const int LED1 = 8;
const int LED2 = 7;

void setup() {
  Serial.begin(9600);
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT)
}

void loop() {
  if (Serial.available()) {
    char valor = Serial.read();
    if (valor == '1') {
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, LOW);
    }
    else {
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, HIGH);
    }
  }
}

Exemplo 03: Condicional Encadeado no Arduino

E agora uma aplicação do condicional encadeado em Arduino. Construiremos um circuito com quatro LEDs conectados às saídas digitais do microcontrolador, os quais serão acesos de acordo com um valor numérico distinto fornecido por meio do monitor serial (de 1 a 4). Se um valor diferente for digitado, nenhum LED permanecerá aceso.

Abaixo temos o diagrama esquemático do circuito a ser utilizado:

Estrutura Switch Case no Arduino

E a seguir, o código-fonte de nosso projeto:

const int LED1 = 7;
const int LED2 = 8;
const int LED3 = 9;
const int LED4 = 10;

void setup() {
  Serial.begin(9600);
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
}

void loop() {
  if (Serial.available()) {
    char LED = Serial.read();
    if (LED == '1') {
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, LOW);
      digitalWrite(LED4, LOW);
    }
    else if (LED == '2') {
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, HIGH);
      digitalWrite(LED3, LOW);
      digitalWrite(LED4, LOW);
    }
    else if (LED == '3') {
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, HIGH);
      digitalWrite(LED4, LOW);
    }
    else if (LED == '4') {
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, LOW);
      digitalWrite(LED4, HIGH);
    }
    else {
      Serial.print("Valor ");
      Serial.print(LED);
      Serial.println(" incorreto.");
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, LOW);
      digitalWrite(LED4, LOW);
    }
  }
}

É isso aí! Vimos nesta lição com empregar as estruturas de decisão condicional if / else if / else em programação para Arduino. Na próxima lição estudaremos a estrutura de decisão Switch Case em Arduino.

 

Sobre Fábio dos Reis (1329 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*