Você está na página 1de 10

2.

2 SE (EU ESTUDAR O ARDUHACK) {VOU


FAZER PROJETOS CADA VEZ MELHORES}

Achou estranho o título desse capítulo? Se você entendeu a


ideia do título, você já aprendeu também o laço condicional if().
Se você não entendeu ainda, vamos a explicação:

Diariamente em nossas vidas usamos esse laço


condicional, deixa eu te dar alguns exemplos: Se estiver dia,
apague as luzes, ou, se começar a chover, feche as janelas; ainda
se o celular estiver sem bateria, coloque-o carregar. Na
programação, conseguimos fazer exatamente a mesma coisa
usando o laço condicional if(). Isso serve para quando desejamos
fazer alguma verificação, antes de executar um algoritmo.

Se o botão for pressionado, acenda o LED.

Se estiver escuro, ligue a lâmpada.

Se x for menor que 50, aumente a velocidade da máquina.

E sim, essa é a última etapa para começarmos a colocar


nossas ideias em prática. Então vamos aos estudos.

Todas as lógicas que estudamos acima, os operadores


lógicos e de comparação podem ser usados dentro do laço if().

SINTAXE:

if(verificação) {

//Aqui dentro fica o que deve ser feito caso a verificação


seja verdadeira

47
EXEMPLO:
/* Deixamos armazenado qual é o pino do LED, dentro da
variável pinoLED */
int pinoLED = 13;

int x = 130;

void setup()
{
// Definimos o pinoLED como um pino de saída
pinMode(pinoLED, OUTPUT);

/* Se x for maior que 120 então a lógica MAIOR QUE, irá


retornar verdadeiro e executar o que está dentro do IF */

if (x > 120) {
// Se x for maior que 120 o pinoLED é acionado.
digitalWrite(pinoLED, HIGH);
}

void loop()
{
}

Perceba que no exemplo acima, dentro da verificação do if()


eu usei o operador de comparação (MAIOR QUE), lembre-se que
esse operador retorna verdadeiro (true) quando...?

Isso mesmo, quando a variável da esquerda do operador for


maior que a variável da direita. Portanto, no exemplo acima
como x possui o valor de 130 armazenado. 130 é maior que 120,
então o código que está dentro do if() vai ser executado.

Se x (possui o valor 130 armazenado) for maior que 120,


então o Arduíno irá acionar o pinoLED, com o comando
digitalWrite(). Esse comando estudaremos no próximo capitulo,
onde iremos fazer nossos primeiros acionamentos com o
Arduino. Mas o importante agora é você entender como o if()
funciona, para que possamos usar nas nossas próximas lógicas.
Então vamos ver mais alguns exemplos:

48
EXEMPLO:
int x = 45;
int y = 92;

void setup()
{
Serial.begin(9600);
if (x <= y) {// testa se x é menor que ou igual a y

/* Se x for menor ou igual a y a seguinte mensagem será


exibida na Serial: */

Serial.println("x eh menor ou igual a y");


}
}

void loop()
{
}

O laço if() também pode ser usado em sequência, imagine


que você esteja lendo um nível de uma caixa d’agua, e você deseja
saber quando o nível dela está: abaixo de 50% ou acima de 50%.
Você poderia usar a seguinte lógica:

EXEMPLO:
int caixadagua = 48;

void setup()
{
Serial.begin(9600);

if (caixadagua <= 50) {// testa se a caixa está com menos


de 50% ou igual a 50%
// Se a variável caixadagua estiver com menos de 50
exibe na tela a mensagem "A caixa está abaixo de 50%"
Serial.println("A caixa está abaixo de 50%");
}
if (caixadagua > 50) {// testa se a caixa está com mais
de 50%
// Se for maior exibe na tela a mensagem "A caixa está
com mais de 50%"
Serial.println("A caixa está com mais de 50%");
}

49
}

void loop()
{
}

50
EXERCÍCIO 3:

Desenvolver um algoritmo que verifique uma variável com


o laço if(). O código deve possuir os seguintes requisitos:

• Deve conter uma variável chamada luminosidade do


tipo int
• Deve conter uma variável chamada status do tipo
bool
• Deve verificar com o laço if se a variável
luminosidade é maior que 500, caso seja, deve fazer a
variável status receber false, e exibir a seguinte
mensagem na Serial: “A luz estah desligada”
• Deve verificar se a variável luminosidade é menor ou
igual a 200, caso seja verdadeiro, deve fazer a variável
status receber true, e exibir a seguinte mensagem na
Serial: “A luz estah ligada”.
• OBS: Lembre-se de não utilizar acentos ou caracteres
especiais nas mensagens da serial, pois ela pode não
entender,

Clique AQUI para ter acesso ao exercício resolvido.

51
O laço if é uma ferramenta fundamental para o
desenvolvimento de códigos eficazes, e além disso ela traz
consigo um complemento, que é a função else. E pra que ela
serve?

A função else nada mais é do que o “SENÃO” da vida real.


Vamos voltar aos exemplos:

• Se estiver escuro, ligue a lâmpada, senão deixe-a


desligada
• Se começar a chover feche as janelas, senão as deixe
abertas
• Se o botão for pressionado acenda o LED, senão deixe
ele desligado

O else é muito útil quando desejamos testar algo, e caso esse


teste não seja verdadeiro, o algoritmo execute alguma outra
coisa, vejamos um exemplo:

SINTAXE:

if (luminosidade < 500) {

Serial.println(“Luz acesa”);

else {

Serial.println(“Luz apagada”);

EXEMPLO:
int caixadagua = 48;

void setup()
{

52
Serial.begin(9600);

if (caixadagua <= 50) {// testa se a caixa está com menos


de 50% ou igual a 50%
/* Se a variável caixadagua estiver com menos de 50
exibe na tela a mensagem "A caixa está abaixo de 50%"*/

Serial.println("A caixa está abaixo de 50%");


}
else {/*Senão é printado na Serial a mensagem “A caixa
está acima de 50%” */

Serial.println("A caixa está acima de 50%");


}
}

void loop()
{
}

53
EXERCÍCIO 4

Desenvolva o projeto anterior, trocando a verificação de


luminosidade <=200 pela função else.

• Deve conter uma variável chamada luminosidade do


tipo int
• Deve conter uma variável chamada status do tipo
bool
• Deve verificar com o laço if se a variável
luminosidade é maior que 500, caso seja, deve fazer a
variável status receber false, e exibir a seguinte
mensagem na Serial: “A luz estah desligada”
• Deve verificar se a variável luminosidade é menor ou
igual a 200, caso seja verdadeiro, deve fazer a variável
status receber true, e exibir a seguinte mensagem na
Serial: “A luz estah ligada”.
• OBS: Lembre-se de não utilizar acentos ou caracteres
especiais nas mensagens da serial, pois ela pode não
entender,

Clique AQUI para ter acesso ao exercício resolvido.

54
(!) NOT

O operador lógico NOT, vem da lógica booleana, e serve


para invertermos o valor de uma lógica. Por exemplo: Se x
armazena um valor true, logo !x irá retornar um valor false, e o
mesmo vale para: se x armazena um valor false, então !x irá
retornar um valor verdadeiro.

O operador NOT, também pode ser usado em verificações


compostas como mostra abaixo:

SINTAXE:

!(x < y) // Se x for menor que y então o retorno será true,


porém acrescentando a lógica NOT à frente, esse valor é
invertido, se tornando false.

(&) AND

O operador AND é usado para comparar valores booleanos,


ele retorna true apenas quando dos os valores analisados forem
verdadeiros, e false nas demais possibilidades. Vamos aos
exemplos:

(true & true) //retorna true.

(true & false) //retorna false.

(false & true) // retorna false.

(false & false) // retorna false.

Ficou abstrato esse conceito? Vejamos um exemplo com if()

55
if((x < 20) & (y > 500)){} // Nesse caso o if() só será
executado quando x for MENOR QUE 20 e o y também for MAIOR
QUE 500. Em qualquer outra possibilidade ele não será
executado.

Também é possível fazer quantas comparações forem


necessárias, desde que seja atribuído o & em cada uma delas:

if((x < 20) & (y > 500) & (z == 0)){

(|) OR

Com o operador OR, quando qualquer verificação for


verdadeira, ele retorna verdadeiro, veja o exemplo:

(true | false) // retorna true

(false | true) // retorna true

(true | true) // retorna true

(false | false) // retorna false

Usando a lógica if():

If(x< 20 | y > 500 | z == 0) //Nesse caso se qualquer uma


das comparações for verdadeira, o if() será executado:

Se x for MENOR QUE 20, não importa se o y for menor que


500 ou o z diferente de 0, o if() será executado.

56

Você também pode gostar