- Ana Clara Leschnhak
- Mensagens : 117
Data de inscrição : 03/03/2023
Idade : 12
Escola : Colégio Estadual Colônia Murici
exercício 2.14 resolvido
Ter Nov 07, 2023 10:34 am
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.14
* Tema: Switch Case
* Atividade: Associar 3 LED a 3 teclas
* Descrição: Quando pressionar a tecla o led correspondente deve acender
* Hardware: Ligar 3 teclas aos pinos digitais configurados como ENTRADA e 3 leds em outros pinos digitais configurado como SAÍDA
* Comandos: pinMode, digitalRead, digitalWrite, PULLUP, !(operador NOT), Switch Case, break
* DICA1: A função !(not) deve ser usada antes de cada tecla porque a tecla está com resistor de pullup e ligada ao 0V, logo fica em DOWN quando pressionada
* DICA2: Na primeira parte do programa, ler as teclas e guardar um valor correspondente a cada uma delas
* DICA3: Na segunda parte usar switch/case para acionar o led correspondente
* DICA4: Programar uma quarta tecla para apagar todos os leds
*/
//DEFINICOES INICIAIS
#define led1 2//Define led e pino
#define led2 3//Define led e pino
#define led3 4//Define led e pino
#define tecla1 5//define tecla e pino
#define tecla2 6//define tecla e pino
#define tecla3 7//define tecla e pino
#define tecla4 8//define tecla e pino
//DECLARAcAO DE VARIAVEIS
byte valor = 0;//o valor da variavel é 0
//FUNÇÕES COMPLEMENTARES
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(tecla1,INPUT_PULLUP);//configura a entrada
pinMode(tecla2,INPUT_PULLUP);//configura a entrada
pinMode(tecla3,INPUT_PULLUP);//configura a entrada
pinMode(tecla4,INPUT_PULLUP);//configura a entrada
pinMode(led1, OUTPUT);//configura a saida
pinMode(led2, OUTPUT);//configura a saida
pinMode(led3, OUTPUT);//configura a saida
Serial.begin(9600);//inicia a porta serial
}
//PROGRAMA PRINCIPAL
void loop() {
if(!digitalRead(tecla1))valor = 1;//se for verdadeira os comandos se executarão
if(!digitalRead(tecla2))valor = 2;//se for verdadeira os comandos se executarão
if(!digitalRead(tecla3))valor = 3;//se for verdadeira os comandos se executarão
if(!digitalRead(tecla4))valor = 4;//se for verdadeira os comandos se executarão
Serial.println(valor);//imprime uma porta serial e pula uma linha da variavel valor
switch(valor){//compara os valores do "case"
case 1://case é encontrado cujo valor é igual o dqa variavel
digitalWrite(led1, HIGH);//acende o led
break;//interrompe o "case"
case 2://case é encontrado cujo valor é igual o dqa variavel
digitalWrite(led2, HIGH);//acende o led
break;//interrompe o "case"
case 3://case é encontrado cujo valor é igual o dqa variavel
digitalWrite(led3, HIGH);//acende o led
break;//interrompe o "case"
case 4://case é encontrado cujo valor é igual o dqa variavel
digitalWrite(led1, LOW);//apaga o led
digitalWrite(led2, LOW);//apaga o led
digitalWrite(led3, LOW);//apaga o led
break;//interrompe o "case"
}
}
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.14
* Tema: Switch Case
* Atividade: Associar 3 LED a 3 teclas
* Descrição: Quando pressionar a tecla o led correspondente deve acender
* Hardware: Ligar 3 teclas aos pinos digitais configurados como ENTRADA e 3 leds em outros pinos digitais configurado como SAÍDA
* Comandos: pinMode, digitalRead, digitalWrite, PULLUP, !(operador NOT), Switch Case, break
* DICA1: A função !(not) deve ser usada antes de cada tecla porque a tecla está com resistor de pullup e ligada ao 0V, logo fica em DOWN quando pressionada
* DICA2: Na primeira parte do programa, ler as teclas e guardar um valor correspondente a cada uma delas
* DICA3: Na segunda parte usar switch/case para acionar o led correspondente
* DICA4: Programar uma quarta tecla para apagar todos os leds
*/
//DEFINICOES INICIAIS
#define led1 2//Define led e pino
#define led2 3//Define led e pino
#define led3 4//Define led e pino
#define tecla1 5//define tecla e pino
#define tecla2 6//define tecla e pino
#define tecla3 7//define tecla e pino
#define tecla4 8//define tecla e pino
//DECLARAcAO DE VARIAVEIS
byte valor = 0;//o valor da variavel é 0
//FUNÇÕES COMPLEMENTARES
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(tecla1,INPUT_PULLUP);//configura a entrada
pinMode(tecla2,INPUT_PULLUP);//configura a entrada
pinMode(tecla3,INPUT_PULLUP);//configura a entrada
pinMode(tecla4,INPUT_PULLUP);//configura a entrada
pinMode(led1, OUTPUT);//configura a saida
pinMode(led2, OUTPUT);//configura a saida
pinMode(led3, OUTPUT);//configura a saida
Serial.begin(9600);//inicia a porta serial
}
//PROGRAMA PRINCIPAL
void loop() {
if(!digitalRead(tecla1))valor = 1;//se for verdadeira os comandos se executarão
if(!digitalRead(tecla2))valor = 2;//se for verdadeira os comandos se executarão
if(!digitalRead(tecla3))valor = 3;//se for verdadeira os comandos se executarão
if(!digitalRead(tecla4))valor = 4;//se for verdadeira os comandos se executarão
Serial.println(valor);//imprime uma porta serial e pula uma linha da variavel valor
switch(valor){//compara os valores do "case"
case 1://case é encontrado cujo valor é igual o dqa variavel
digitalWrite(led1, HIGH);//acende o led
break;//interrompe o "case"
case 2://case é encontrado cujo valor é igual o dqa variavel
digitalWrite(led2, HIGH);//acende o led
break;//interrompe o "case"
case 3://case é encontrado cujo valor é igual o dqa variavel
digitalWrite(led3, HIGH);//acende o led
break;//interrompe o "case"
case 4://case é encontrado cujo valor é igual o dqa variavel
digitalWrite(led1, LOW);//apaga o led
digitalWrite(led2, LOW);//apaga o led
digitalWrite(led3, LOW);//apaga o led
break;//interrompe o "case"
}
}
- Monica Moreno
- Mensagens : 744
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas
Re: exercício 2.14 resolvido
Qua Nov 08, 2023 2:56 pm
Bom Dia
Tudo Bem?
Nota 10.0
Parabens
Tudo Bem?
Nota 10.0
Parabens
Permissões neste sub-fórum
Não podes responder a tópicos