- lucca senn dallagassa
- Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas
exercicio 2.14
Seg Ago 31, 2020 9:33 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 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 tipo int nomeada valor que tem o valor de 0
//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
Serial.begin(9600);//para ver a porta Serial
}
//PROGRAMA PRINCIPAL
void loop() {
//primeira parte leitura das teclas
if(!digitalRead(tecla1))valor = 1;//Quando a tecla 1 for pressionada vai ter o valor de 1
if(!digitalRead(tecla2))valor = 2;//Quando a tecla 2 for pressionada vai ter o valor de 2
if(!digitalRead(tecla3))valor = 3;//Quando a tecla 3 for pressionada vai ter o valor de 3
if(!digitalRead(tecla4))valor = 4;//Quando a tecla 4 for pressionadavai ter o valor de 4
Serial.println(valor);//pila 1linha depois do comando valor
//segunda parte tratar a variavel VALOR com switch/case
switch(valor){//Compara o valor da variavel valor
case 1:
digitalWrite(led1, HIGH);//Definido que o led1 vai acender
break;//Proximo bloco
case 2:
digitalWrite(led2, HIGH);//Definido que o led2 vai acender
break;//Proximo bloco
case 3:
digitalWrite(led3, HIGH);//Definido que o led3 vai acender
break;//Proximo bloco
case 4:
digitalWrite(led1, LOW);//Definido que o led1 vai apagar
digitalWrite(led2, LOW);//Definido que o led2 vai apagar
digitalWrite(led3, LOW);//Definido que o led3 vai apagar
break;//Proximo bloco
}
}
* 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 tipo int nomeada valor que tem o valor de 0
//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
Serial.begin(9600);//para ver a porta Serial
}
//PROGRAMA PRINCIPAL
void loop() {
//primeira parte leitura das teclas
if(!digitalRead(tecla1))valor = 1;//Quando a tecla 1 for pressionada vai ter o valor de 1
if(!digitalRead(tecla2))valor = 2;//Quando a tecla 2 for pressionada vai ter o valor de 2
if(!digitalRead(tecla3))valor = 3;//Quando a tecla 3 for pressionada vai ter o valor de 3
if(!digitalRead(tecla4))valor = 4;//Quando a tecla 4 for pressionadavai ter o valor de 4
Serial.println(valor);//pila 1linha depois do comando valor
//segunda parte tratar a variavel VALOR com switch/case
switch(valor){//Compara o valor da variavel valor
case 1:
digitalWrite(led1, HIGH);//Definido que o led1 vai acender
break;//Proximo bloco
case 2:
digitalWrite(led2, HIGH);//Definido que o led2 vai acender
break;//Proximo bloco
case 3:
digitalWrite(led3, HIGH);//Definido que o led3 vai acender
break;//Proximo bloco
case 4:
digitalWrite(led1, LOW);//Definido que o led1 vai apagar
digitalWrite(led2, LOW);//Definido que o led2 vai apagar
digitalWrite(led3, LOW);//Definido que o led3 vai apagar
break;//Proximo bloco
}
}
Permissões neste sub-fórum
Não podes responder a tópicos
|
|