Exercício 2.19
Qui Ago 20, 2020 2:58 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 = 100; // variavel para controlar o tempo
//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)){ //função while com tecla configurada
for(byte pino = 3 ; pino <= 8; pino++){ //for com pinos para acender
if(pino == 0) pino = 4; //função if com pino
if(pino == 0) pino = 5; //função if com pino
if(pino == 0) pino = 6; //função if com pino
if(pino == 0) pino = 7; //função if com pino
if(pino == 0) pino = 8; //função if com pino
digitalWrite(pino,HIGH); //pino acende
delay(500); //tempo de espera
digitalWrite(pino,LOW); //pino apaga
}
}
}
* 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 = 100; // variavel para controlar o tempo
//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)){ //função while com tecla configurada
for(byte pino = 3 ; pino <= 8; pino++){ //for com pinos para acender
if(pino == 0) pino = 4; //função if com pino
if(pino == 0) pino = 5; //função if com pino
if(pino == 0) pino = 6; //função if com pino
if(pino == 0) pino = 7; //função if com pino
if(pino == 0) pino = 8; //função if com pino
digitalWrite(pino,HIGH); //pino acende
delay(500); //tempo de espera
digitalWrite(pino,LOW); //pino apaga
}
}
}
Re: Exercício 2.19
Dom Ago 23, 2020 10:59 pm
Daniel, Como os comentários estão muito superficiais terei que enviar umas perguntas antes de dar a nota.
1 - Qual a função desse comando no programa? if(pino == 0) pino = 4; //função if com pino
2 - Como funciona esse comando? while(!digitalRead(tecla)){
3 - Nesse comando for(byte pino = 3 ; pino <= 8; pino++){ Qual cuidado deve ser tomado na ligação dos leds com o arduino?
1 - Qual a função desse comando no programa? if(pino == 0) pino = 4; //função if com pino
2 - Como funciona esse comando? while(!digitalRead(tecla)){
3 - Nesse comando for(byte pino = 3 ; pino <= 8; pino++){ Qual cuidado deve ser tomado na ligação dos leds com o arduino?
Daniel Lukas não gosta desta mensagem
Re: Exercício 2.19
Ter Out 13, 2020 10:14 am
de colocar os pinos certos para acender em ordem certaPaulo Augusto Batista escreveu:Daniel, Como os comentários estão muito superficiais terei que enviar umas perguntas antes de dar a nota.
1 - Qual a função desse comando no programa? if(pino == 0) pino = 4; //função if com pino
ligar o pino 4 depois do 3 fazendo uma linha
2 - Como funciona esse comando? while(!digitalRead(tecla)){
o programa lê o comando de apertar a tecla
3 - Nesse comando for(byte pino = 3 ; pino <= 8; pino++){ Qual cuidado deve ser tomado na ligação dos leds com o arduino?
Re: Exercício 2.19
Sáb Nov 21, 2020 1:51 pm
Daniel, pensa comigo o contador vai iniciar no valor 3 e vai até 8, então pino nunca vai ser igual a zero, certo?
Então aqueles if pino não fazem sentido.
Então aqueles if pino não fazem sentido.
Permissões neste sub-fórum
Não podes responder a tópicos
|
|