- Diogo Penha Marques
- Mensagens : 107
Data de inscrição : 29/02/2024
Idade : 14
Escola : Colégio Estadual da Colônia Murici
Diogo Saraiva Exercício 2.15
Sáb maio 18, 2024 10:41 am
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.15
* Tema: Switch Case
* Atividade: Associar 3 teclas a 3 LEDs com pisca
* Descrição: Quando pressionar a tecla o led correspondente deve piscar 5 vezes
* 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: Usar um for() para fazer o led piscar 5 vezes
*/
//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"
//DECLARAcAO DE VARIAVEIS
int tecla;//Variavel int chamada tecla
//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(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() {
if(!digitalRead(tecla1))tecla = 1;//Se tecla 1 pressionada a variavel tecla sera 1
if(!digitalRead(tecla2))tecla = 2;//Se tecla 2 pressionada a variavel tecla sera 2
if(!digitalRead(tecla3))tecla = 3;//Se tecla 3 pressionada a variavel tecla sera 3
switch(tecla)//Escolhe que a variavel tecla sera verificada
{
case 1://Se tecla for igual a 1, Execute:
for(int i = 0; i < 5; i++)//Se a variavel i(que e 0) for menor que 5, Execute o que estiver no for ate nao ser mais e depois adicione 1 a i
{
digitalWrite(led1, HIGH);//Liga o led1
delay(100);//Tempo de espera de 100 ms
digitalWrite(led1, LOW);//Desliga o led3
delay(100);//Tempo de espera de 100 ms
}
tecla = 0;//Define que tecla e igual a 0
break;//Encerra o codigo do case
case 2://Se tecla for igual a 2, Execute:
for(int i = 0; i < 5; i++)//Se a variavel i(que e 0) for menor que 5, Execute o que estiver no for ate nao ser mais e depois adicione 1 a i
{
digitalWrite(led2, HIGH);//Liga o led2
delay(100);//Tempo de espera de 100 ms
digitalWrite(led2, LOW);//Desliga o led3
delay(100);//Tempo de espera de 100 ms
}
tecla = 0;//Define que tecla e igual a 0
break;//Encerra o codigo do case
case 3://Se tecla for igual a 3, Execute:
for(int i = 0; i < 5; i++)//Se a variavel i(que e 0) for menor que 5, Execute o que estiver no for ate nao ser mais e depois adicione 1 a i
{
digitalWrite(led3, HIGH);//Liga o led3
delay(100);//Tempo de espera de 100 ms
digitalWrite(led3, LOW);//Desliga o led3
delay(100);//Tempo de espera de 100 ms
}
tecla = 0;//Define que tecla e igual a 0
break;//Encerra o codigo do case
}
}
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.15
* Tema: Switch Case
* Atividade: Associar 3 teclas a 3 LEDs com pisca
* Descrição: Quando pressionar a tecla o led correspondente deve piscar 5 vezes
* 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: Usar um for() para fazer o led piscar 5 vezes
*/
//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"
//DECLARAcAO DE VARIAVEIS
int tecla;//Variavel int chamada tecla
//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(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() {
if(!digitalRead(tecla1))tecla = 1;//Se tecla 1 pressionada a variavel tecla sera 1
if(!digitalRead(tecla2))tecla = 2;//Se tecla 2 pressionada a variavel tecla sera 2
if(!digitalRead(tecla3))tecla = 3;//Se tecla 3 pressionada a variavel tecla sera 3
switch(tecla)//Escolhe que a variavel tecla sera verificada
{
case 1://Se tecla for igual a 1, Execute:
for(int i = 0; i < 5; i++)//Se a variavel i(que e 0) for menor que 5, Execute o que estiver no for ate nao ser mais e depois adicione 1 a i
{
digitalWrite(led1, HIGH);//Liga o led1
delay(100);//Tempo de espera de 100 ms
digitalWrite(led1, LOW);//Desliga o led3
delay(100);//Tempo de espera de 100 ms
}
tecla = 0;//Define que tecla e igual a 0
break;//Encerra o codigo do case
case 2://Se tecla for igual a 2, Execute:
for(int i = 0; i < 5; i++)//Se a variavel i(que e 0) for menor que 5, Execute o que estiver no for ate nao ser mais e depois adicione 1 a i
{
digitalWrite(led2, HIGH);//Liga o led2
delay(100);//Tempo de espera de 100 ms
digitalWrite(led2, LOW);//Desliga o led3
delay(100);//Tempo de espera de 100 ms
}
tecla = 0;//Define que tecla e igual a 0
break;//Encerra o codigo do case
case 3://Se tecla for igual a 3, Execute:
for(int i = 0; i < 5; i++)//Se a variavel i(que e 0) for menor que 5, Execute o que estiver no for ate nao ser mais e depois adicione 1 a i
{
digitalWrite(led3, HIGH);//Liga o led3
delay(100);//Tempo de espera de 100 ms
digitalWrite(led3, LOW);//Desliga o led3
delay(100);//Tempo de espera de 100 ms
}
tecla = 0;//Define que tecla e igual a 0
break;//Encerra o codigo do case
}
}
Permissões neste sub-fórum
Não podes responder a tópicos