Robótica Livre
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ir para baixo
avatar
Daniel Lukas
Mensagens : 62
Data de inscrição : 06/03/2020
Idade : 17
Escola : Rua Aníbal Silva
https://sayajin-gamers-store.myshopify.com/

Exercício 1.14 Empty Exercício 1.14

Seg Ago 10, 2020 3:50 pm
/*
* 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 3     //Definido que o pino 3 vai se chamar "led1"
#define led2 4     //Definido que o pino 4 vai se chamar "led2"
#define led3 5     //Definido que o pino 5 vai se chamar "led3"
#define tecla1 9   //Definido que o pino 9 vai se chamar "tecla1"
#define tecla2 10  //Definido que o pino 10 vai se chamar "tecla2"
#define tecla3 11  //Definido que o pino 11 vai se chamar "tecla3"
#define tecla4 12  //Definido que o pino 12 vai se chamar "tecla4"

//DECLARAcAO DE VARIAVEIS
byte valor = 0;  //variavel declarada

//FUNÇÕES COMPLEMENTARES


//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(tecla1,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(tecla2,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(tecla3,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(tecla4,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(led1, OUTPUT);        //programado o led como saida
pinMode(led2, OUTPUT);        //programado o led como saida
pinMode(led3, OUTPUT);        //programado o led como saida
}

//PROGRAMA PRINCIPAL
void loop() {
//////primeira parte leitura das teclas//////
if(!digitalRead(tecla1))valor = 1;     //função if negada com a tecla com variavel
if(!digitalRead(tecla2))valor = 2;    //função if negada com a tecla com variavel
if(!digitalRead(tecla3))valor = 3;   //função if negada com a tecla com variavel
if(!digitalRead(tecla4))valor = 4;  //função if negada com a tecla com variavel
Serial.println(valor);             //variavel vai ser escrita na outra linha
//////segunda parte tratar a variavel valor com switch/case//////
switch(valor){                          //função switch com a variavel
case 1:                               //case 1
digitalWrite(led1, HIGH);            //led1 acende
break;                              //break
case 2:                            //case 2
digitalWrite(led2, HIGH);         //led2 acende
break;                           //função break
case 3:                         //case 3
digitalWrite(led3, HIGH);      //led3 acende
case 4:                       //case 4
digitalWrite(led1, LOW);     //led1 apaga
digitalWrite(led2, LOW);    //led2 apaga
digitalWrite(led3, LOW);   //led3 apaga
break;                     //break
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5021
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.14 Empty Re: Exercício 1.14

Dom Ago 23, 2020 10:17 pm
Daniel, testei seu programa e não funcionou.
Revisando o código vi que usou um Serial.println, teria que remover esse comando ou inicializar a porta serial, lembra do serial.begin, ? então
Depois tem outro detalhe no case 3: precisa do break ao final dele, senão acaba rodando a estrutura defaul junto.
Nota 6.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos