Você está na página 1de 4

2.

5 SWITCH-CASE

Imagine que você está desenvolvendo seus projetos, e se


depara com a seguinte situação: Você precisa fazer 10
verificações em uma variável, para fazer diversos acionamentos
dependendo do valor dela. Você vai usar 10 laços if() para fazer
essas verificações?

Pode ser que sim! Más, não é a melhor alternativa, pois


existe uma função chamada Switch-Case, que, assim como o if(),
controla o fluxo do programa, permitindo ao programador
especificar diversos códigos para serem executados em diversas
condições.

SINTAXE:

switch (variável) {

case valor1:

//executa um comando

break;

case valor2:

//executa outro comando

break;

case valor3:

//executa outro comando

break

67
EXEMPLO:
int Led1 = 7;
int Led2 = 8;
int Led3 = 9;
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();
switch (Led) {
case '1':
digitalWrite(Led1, HIGH);
digitalWrite(Led2, LOW);
digitalWrite(Led3, LOW);
digitalWrite(Led4, LOW);
break;
case '2':
digitalWrite(Led1, LOW);
digitalWrite(Led2, HIGH);
digitalWrite(Led3, LOW);
digitalWrite(Led4, LOW);
break;
case '3':
digitalWrite(Led1, LOW);
digitalWrite(Led2, LOW);
digitalWrite(Led3, HIGH);
digitalWrite(Led4, LOW);
break;
case '4':
digitalWrite(Led1, LOW);
digitalWrite(Led2, LOW);
digitalWrite(Led3, LOW);
digitalWrite(Led4, HIGH);
break;
default:
Serial.print("Valor ");
Serial.print(Led);
Serial.println(" incorreto.");
digitalWrite(Led1, LOW);
digitalWrite(Led2, LOW);
digitalWrite(Led3, LOW);
digitalWrite(Led4, LOW);
}

68
}
}

Assim como se você estivesse utilizando diversos laços if()


em sequência, o switch-case testa condição por condição, e caso
uma delas seja atendida é executado o código que está dentro.

Repare que logo após a execução do código, é necessário


utilizar o comando break, para que o Arduino entenda que
aquele comando acabou.

69
EXERCÍCIO 7

Crie novamente o Projeto#1, dessa vez utilizando 4 LEDs, e


faça com que cada LED acenda dependendo de caractere que
você enviar na Serial. Você pode tomar como base o exemplo
usado nesse capitulo. O exercício deve atender os seguintes
requisitos:

• Utilização de no mínimo 4 LEDs


• Deve-se usar variáveis para referenciar as pinagens
usadas nos LEDs,
• Deve-se usar o switch-case para acionar os LEDs
• Quando enviado o caractere ‘a’ deve-se acender o
primeiro LED e o restante permanecer apagado
• Quando enviado o caractere ‘b’ deve-se acender os
dois primeiros LEDs e deixar apagado o restante
• Quando enviado o caractere ‘c’ deve-se acender 3
LEDs e 1 ficar apagado
• Quando enviado o caractere ‘d’ deve-se acender todos
os LEDs

Clique AQUI para ter acesso ao exercício resolvido.

70

Você também pode gostar