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

Ir para baixo
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 2.19 Sequencial controlado por tecla Empty Exercício 2.19 Sequencial controlado por tecla

Qui Ago 27, 2020 3:27 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.19
* Tema: Função WHILE()
* Atividade: Tecla controlando o sequencial de 6 LEDS
* Descrição: fazer os 3 leds mais o led RGB piscarem de forma sequencial enquanto uma tecla estiver pressionada
* Hardware: Ligar os 6 leds em seis pinos digital configurados como SAÍDA
* Comandos: pinMode, digitalWrite, delay,for(), while()
* Dica1: Usar uma variavel para armazenar o tempo de espera entre as trocas de estado
* Dica2: Configurar os leds nos pinos em ordem sequencial, usar os pinos 3,4,5,6,7,8 e o contador do for rodando esses pinos
* Dica3: usar a função while para testar a tecla e controlar a execução do programa
* Dica3: Colocar o sequencial usando a função for dentro de uma estrutura while
*/

//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 led4 6 //Definido que o pino 6 vai se chamar "led4"
#define led5 7 //Definido que o pino 7 vai se chamar "led5"
#define led6 8 //Definido que o pino 8 vai se chamar "led6"
#define tecla 2 //Pino 2 ligado na tecla

//DECLARAcAO DE VARIAVEIS
int tempo = 200; // variavel para controlar o tempo
byte pino ; // contador usado na função for()

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1, OUTPUT); //programado o led1 como saida
pinMode(led2, OUTPUT); //programado o led2 como saida
pinMode(led3, OUTPUT); //programado o led3 como saida
pinMode(led4, OUTPUT); //programado o led4 como saida
pinMode(led5, OUTPUT); //programado o led5 como saida
pinMode(led6, OUTPUT); //programado o led6 como saida
pinMode(tecla, INPUT_PULLUP); //Programa a tecla como entrada pullup
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
while(!digitalRead(tecla)){//Enquanto a tecla estiver pressionada a função será verdadeira e irá rodar o bloco abaixo até que a função ser falsa , ou seja a tecla estará depressionada , e quando for falsa não irá rodar o bloco e irá pular para o próximo comando
for(byte pino=3;pino<=8;pino++){//O valor da variável pino irá começar com o valor 3 , e irá sendo somada a 1 até chegar a 8
digitalWrite(pino,HIGH);//O led com o número do pino escrito irá acender
delay(tempo);//O intervalo de tempo será o valor da variável tempo
digitalWrite(pino,LOW);//O led com o número do pino escrito irá apagar
}
}
}
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.19 Sequencial controlado por tecla Empty Re: Exercício 2.19 Sequencial controlado por tecla

Sex Set 11, 2020 11:14 pm
Perfeito Thiago, demonstra que está assimilando bem os comandos. Parabéns. Nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos