Programação para Arduino – Aula 07

if switch (condicional) e ==,! =, <,>, <=, >= (operadores de comparação) &&, || ! (Operadores Booleanos);

Aula de Hoje:

  1. condicional
    • if
    • switch
  2. operadores de comparação
    • ==
    • !=
    • <
    • >
    • <=
    • >=
  3. Operadores Booleanos
    • &&
    • ||
    • !

Assista a vídeo aula

Artigo

If, o que é usado em conjunção com um operador de comparação, os testes se um determinado estado tenha sido atingido, tal como uma entrada estando acima de um certo número. O formato para um caso de teste é:

if(someVariable > 50)
{
  // Fazer alguma coisa aqui
}

Os testes do programa para ver se someVariable é maior do que 50. Se for, o programa toma uma acção específica. Dito de outra forma, se a instrução entre parênteses é verdadeira, os comandos dentro dos colchetes são executados. Se não, o programa salta sobre o código.

Os suportes podem ser omitidos após um caso comunicado. Se isso for feito, a próxima linha (definido pelo ponto e vírgula) torna-se a única declaração condicional.

if(x > 120) digitalWrite (ledPin, HIGH); 

if(x > 120)
digitalWrite (ledPin, HIGH); 

if(x > 120) {digitalWrite (ledPin, HIGH); }

if(x > 120) { 
  digitalWrite (LEDpin1, HIGH);
  digitalWrite (LEDpin2, HIGH); 
} // todos estão corretos

As declarações a ser avaliado dentro dos parênteses requerem o uso de um ou mais operadores:

Operadores de comparação:

  X == y (x é igual a y)
  x != Y (x não é igual a y)
  x < y  (x é menor que y)  
  x > y  (x é maior que y) 
  X <= Y (x é inferior ou igual a y) 
  x >= y (x é maior do que ou igual a y)

Aviso:

Cuidado com acidentalmente usando o sinal de igual simples (por exemplo, se (x = 10)). O único sinal de igual é o operador de atribuição, e define x a 10 (coloca o valor 10 para a variável x). Em vez disso, usar o sinal de igual duplo (por exemplo, if(x == 10) ), que é o operador de comparação, testes e se x é igual a 10 ou não. Esta última afirmação só é verdadeira se x é igual a 10, mas a declaração anterior será sempre verdade.

Isso ocorre porque C avalia a declaração if(x = 10) da seguinte forma: 10 é atribuído a x (lembre-se que o sinal de igual simples é o operador de atribuição), então x agora contém 10. Em seguida, o “if” condicional avalia 10, que sempre avaliada como TRUE, uma vez que qualquer número diferente de zero é avaliada como TRUE. Consequentemente, if(x = 10) será sempre avaliada como TRUE, o que não é o resultado desejado ao usar um ‘if’. Além disso, a variável x será definida como 10, o que também não é uma acção desejado.

Operadores Booleanos

Estes podem ser usados ​​dentro da condição de um caso comunicado.

&& (AND lógico)

Verdadeiro somente se ambos os operandos são verdadeiros, por exemplo,

if(digitalRead (2) == ALTA && digitalRead (3) == HIGH) {// lê dois interruptores 
  // ...
} 

é verdade apenas se ambas as entradas são elevados.

|| (Lógico ou)

Verdadeiro se o operando é verdade, por exemplo,

if(x> 0 || y> 0) {
  // ...
} 

É verdade, se x ou y é maior do que 0.

! (não)

Verdadeiro se o operando é falsa, por exemplo,

if (!x) { 
  // ...
} 

é verdadeira se x é falsa (ou seja, se x é igual a 0 ou FALSE).

Aviso

Certifique-se de não confundir o operador booleano AND, && (e comercial duplo) para o bit a bit E operador & (e comercial single). Eles são completamente diferentes animais.

Da mesma forma, não confunda o booleano || (tubo duplo) com o operador bit a bit OU operador | (Tubo único).

O bit a bit não ~ (til) se parece muito diferente do que o boolean não! (Ponto de exclamação ou “bang”, como os programadores dizem), mas você ainda precisa ter certeza de qual deles você quer onde.

Exemplos

if(a> = 10 && uma <= 20) {} // se verdadeiro é uma entre 10 e 20

if / else

if / else permite maior controle sobre o fluxo de código do que o básico if comunicado, ao permitir que múltiplos testes a serem agrupados. Por exemplo, uma entrada analógica pode ser testado e uma acção tomada se a entrada foi inferior a 500, e outra acção tomada se a entrada foi de 500 ou maior. O código ficaria assim:

if(pinFiveInput <500)
{
  // Ação A
}
else
{
  // Ação B
}

else pode prosseguir outra if de teste, de modo que os vários testes, mutuamente exclusivos pode ser executado ao mesmo tempo.

Cada teste vai avançar para o próximo até que um verdadeiro teste é encontrado. Quando um teste verdadeiro é encontrado, seu bloco associado de código é executado, e em seguida, o programa salta para a linha seguinte a toda if / else construção. Se nenhum teste prova ser verdadeiro, o padrão else bloco é executado, se um estiver presente, e define o comportamento padrão.

Note-se que uma if  bloco pode ser usado com ou sem uma terminação else bloco e vice-versa. Um número ilimitado de tais else if ramos é permitido.

if(pinFiveInput <500)
{
  // Fazer Coisa A
}
else if (pinFiveInput> = 1000)
{
  // Fazer Coisa B
}
else
{
  // Fazer Coisa C
}

declarações switch / case

Como se declarações, mudar … caso controla o fluxo de programas, permitindo aos programadores especificar código diferente que deve ser executada em várias condições. Em particular, uma instrução switch compara o valor de uma variável para os valores especificados nas declarações de caso. Quando uma instrução case é encontrada cujo valor corresponde ao da variável, o código nesse caso declaração é executado.

O break é palavra-chave sai do switch, e é normalmente usado no final de cada caso. Sem uma instrução break, a instrução switch continuará executando os seguintes expressões ( “-through caindo”) até uma pausa, ou o fim da instrução switch é atingido.

Exemplo

switch (var)
{ case 1:
  // fazer alguma coisa quando var for igual a 1
  break;
case 2:
  // fazer alguma coisa quando var é igual a 2
  break;
default:
  // se nada mais jogos, faça o padrão
  // default é opcional
  break;
}

Sintaxe

switch ( var ) {
case rótulo :
  // declarações
  break ;
case rótulo :
  // declarações
  break ;
default :
  // declarações
  break ;
}

Parâmetros

var: a variável cujo valor para comparar com os vários casos

label: um valor para comparar a variável para

Código da Aula

 

int var1 = 10;

void setup() {
  //Colocar o seu código de configuração aqui, para executar uma vez:

}

void loop() {
  //Colocar o seu código principal aqui, para executar repetidamente:

  if(var1 > 0) {
    var1++;
  }

  if(var1 < 10) {
    var1--;
  }

  if(var1 == 10) {
    
  }

  if(var1 != 0) {
    
  }

  if(var1 >= 0) {
    
  }

  if(var1 <= 0) {
    
  }

  if(var1 == 0 && var1 == 10) {
    
  }

  if(var1 == 0 || var1 == 10) {
    
  }

  if(!(var1 == 0) || var1 == 10) {
    
  }

  switch(var1) {
    case 1:
        return 1 + 1;     
    case 2:
        return 1 - 1;
    case 3:
        return 1 * 1;
    case 4:
        return 1 / 1;
    default:
        return -1;
  }
  
}

Fonte: arduino.cc

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será publicado.


*