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

Ir para baixo
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 2.13 Empty exercicio 2.13

Seg Ago 10, 2020 9:31 am
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.13
* Tema: Função FOR()e comando continue
* Atividade: Sequencial de 6 LEDS com acendimento gradual
* Descrição: fazer os 3 leds mais o led RGB piscarem de forma sequencial aumentando e reduzindo o brilho gradualmente
* Hardware: Ligar os 6 leds em seis pinos digital configurados como SAÍDA
* Comandos: pinMode, analogWrite, delay,for(), continue, break
* 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 PWM 3,5,6,9,10,11 e o contador do for rodando esses pinos
* Dica3: As funções for() serão montadas uma dentro da outra
* Dica4: Uma função for() conta os pinos dos leds e dentro do bloco outra função for() conta o incremento e decremento do brilho
* Dica5: Para pular os pinos que não são PWM use o comando continue
* Dica6: Parar o sequencial caso uma tecla seja pressionada, usar interrupção para essa aplicação
*/

//DEFINICOES INICIAIS
#define led1 3 //Definido que o pino 3 vai se chamar "led1"
#define led2 5 //Definido que o pino 4 vai se chamar "led2"
#define led3 6 //Definido que o pino 5 vai se chamar "led3"
#define led4 9 //Definido que o pino 6 vai se chamar "led4"
#define led5 10 //Definido que o pino 7 vai se chamar "led5"
#define led6 11 //Definido que o pino 8 vai se chamar "led6"
#define tecla 2 //tecla de interrupçao

//DECLARAcAO DE VARIAVEIS
bool parada = 0;//Definido uma variavel para guaradar o valor da parada

//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
}

//FUNÇÕES COMPLEMENTARES
void parou() {
parada = !parada;//Parada e = a !parada
}

//PROGRAMA PRINCIPAL
void loop() {
for(byte pino = 3 ; pino <= 11 ; pino++){
if(parada == 1)break;//Definido que sera que parada e 1
if(pino == 4 || pino == 7 || pino == 8)continue;//definido que se o pino for = a 4 ou 7 ou 8 ele vai acionar a funçao continue
byte x = 1;//a variavel x e = a 1
for(byte brilho = 0 ; brilho < 255 ; brilho = brilho + x){
analogWrite(pino, brilho); //Acende o Led correspondente ao valor de brilho
delay(10);//Temporiza por 10 ms
if(brilho == 253) x = -1;
if(parada == 1)break;//Definido que sera que parada e 1
}
}
}
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

exercicio 2.13 Empty Re: exercicio 2.13

Ter Ago 11, 2020 10:30 pm
Lucca, o programa esta correto. Mas pelos comentários da pra ver que não entendeu a lógica, ou não soube se expressar. Então vou mandar as questões abaixo:

1 - A função if(parada == 1)break; tem qual finalidade nesse programa?
2 - Nesse comando if(pino == 4 || pino == 7 || pino == 8)continue; porque foi usado o continue?
3 - Porque o valor de x é alterado nesse comando if(brilho == 253) x = -1;?
4 - Quando é acionada essa função void parou() {?
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 2.13 Empty Re: exercicio 2.13

Sáb Ago 29, 2020 9:22 am
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.13
* Tema: Função FOR()e comando continue
* Atividade: Sequencial de 6 LEDS com acendimento gradual
* Descrição: fazer os 3 leds mais o led RGB piscarem de forma sequencial aumentando e reduzindo o brilho gradualmente
* Hardware: Ligar os 6 leds em seis pinos digital configurados como SAÍDA
* Comandos: pinMode, analogWrite, delay,for(), continue, break
* 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 PWM 3,5,6,9,10,11 e o contador do for rodando esses pinos
* Dica3: As funções for() serão montadas uma dentro da outra
* Dica4: Uma função for() conta os pinos dos leds e dentro do bloco outra função for() conta o incremento e decremento do brilho
* Dica5: Para pular os pinos que não são PWM use o comando continue
* Dica6: Parar o sequencial caso uma tecla seja pressionada, usar interrupção para essa aplicação
*/

//DEFINICOES INICIAIS
#define led1 3 //Definido que o pino 3 vai se chamar "led1"
#define led2 5 //Definido que o pino 4 vai se chamar "led2"
#define led3 6 //Definido que o pino 5 vai se chamar "led3"
#define led4 9 //Definido que o pino 6 vai se chamar "led4"
#define led5 10 //Definido que o pino 7 vai se chamar "led5"
#define led6 11 //Definido que o pino 8 vai se chamar "led6"
#define tecla 2 //tecla de interrupçao

//DECLARAcAO DE VARIAVEIS
bool parada = 0;//Definido uma variavel para guaradar o valor da parada

//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
}

//FUNÇÕES COMPLEMENTARES
void parou() {
parada = !parada;//Parada e igual a parada reversa
}

//PROGRAMA PRINCIPAL
void loop() {
for(byte pino = 3 ; pino <= 11 ; pino++){
if(parada == 1)break;//Sera que parada e igual a 1 se sim esta fora do Laço
if(pino == 4 || pino == 7 || pino == 8)continue;//definido que se o pino for = a 4 ou 7 ou 8 ele vai acionar a funçao continue
byte x = 1;//a variavel x e igual a 1
for(byte brilho = 0 ; brilho < 255 ; brilho = brilho + x){
analogWrite(pino, brilho); //Acende o Led correspondente ao valor de brilho
delay(10);//Temporiza por 10 ms
if(brilho == 253) x = -1;
if(parada == 1)break;//Definido que sera que parada e 1
}
}
}
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

exercicio 2.13 Empty Re: exercicio 2.13

Sex Set 11, 2020 10:31 pm
??
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 2.13 Empty Re: exercicio 2.13

Ter Set 22, 2020 8:54 am

1 - A função if(parada == 1)break; tem qual finalidade nesse programa?
Se parada for igual a 1 usa o break para força a saida do laço de repetiçao

2 - Nesse comando if(pino == 4 || pino == 7 || pino == 8)continue; porque foi usado o continue?´
Para iglobar todos os pinos

3 - Porque o valor de x é alterado nesse comando if(brilho == 253) x = -1;?
Ele e alterado para Parar o programa

4 - Quando é acionada essa função void parou() {?
Quando esecuta o comando FALLING,LOW,etc
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

exercicio 2.13 Empty Re: exercicio 2.13

Qua Set 23, 2020 10:34 pm
Nota 8.0
Conteúdo patrocinado

exercicio 2.13 Empty Re: exercicio 2.13

Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos