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

Ir para baixo
Gabriel Novak
Gabriel Novak
Mensagens : 65
Data de inscrição : 12/03/2022
Idade : 99
Escola : Colegio Esatadual Professor Lindaura Ribeiro Lucas

exercício 2.15 Empty exercício 2.15

Sáb Nov 11, 2023 10:42 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"
#define tecla4 12 //Definido que o pino 12 vai se chamar "tecla4"

//DECLARAcAO DE VARIAVEIS
byte valor = 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);//abrir o monitor serial
}

//PROGRAMA PRINCIPAL
void loop() {
valor = 0;//valor de 0
if(!digitalRead(tecla1))valor = 1; //tecla1 com o valor = a 1
if(!digitalRead(tecla2))valor = 2; //tecla2 com o valor = a 2
if(!digitalRead(tecla3))valor = 3; //tecla3 com o valor = a 3
if(!digitalRead(tecla4))valor = 4; //tecla4 com o valor = a 4
Serial.println(valor);
switch(valor){
case 1:
for(byte a = 0; a < 5; a++){ //criar varialvel,se a variavel for = ou menor rodar programa abaixo ,adicionar + 1 a variavel
digitalWrite(led1, HIGH);//acender led1
delay(300);//delay de 300 ms
digitalWrite(led1, LOW); //apagar led1
delay(300); //delay de 300 ms
}
break;
case 2:
for(byte b = 0; b < 5; b++){//criar varialvel,se a variavel for = ou menor rodar programa abaixo ,adicionar + 1 a variavel
digitalWrite(led2, HIGH);//acender led 2
delay(300); //delay de 300 ms
digitalWrite(led2, LOW); //apagar led2
delay(300); //delay de 300 ms
}
break;
case 3:
for(byte c = 0; c < 5; c++){ //criar varialvel,se a variavel for = ou menor rodar programa abaixo ,adicionar + 1 a variavel
digitalWrite(led3, HIGH); //acender led3
delay(300); //delay de 300 ms
digitalWrite(led3, LOW);//apagar led 3
delay(300); //delay de 300 ms
}
break;
case 4:
digitalWrite(led1, LOW); //apagar led 1
digitalWrite(led2, LOW); //apagar led 2
digitalWrite(led3, LOW); //apagar led 3
break;
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5039
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

exercício 2.15 Empty Re: exercício 2.15

Sáb Dez 09, 2023 8:40 am
Muito bom, nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos