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

Ir para baixo
Monica Moreno
Monica Moreno
Mensagens : 744
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Resolvido 2.13 Empty Resolvido 2.13

Qui Set 16, 2021 9:45 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"

//DECLARAcAO DE VARIAVEIS
int tempo=2;//Variável Int tempo =2
bool shine =0;//Variavel bool shine =0

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1, OUTPUT); //programado o led1 como "Saída"
pinMode(led2, OUTPUT); //programado o led2 como "Saída"
pinMode(led3, OUTPUT); //programado o led3 como "Saída"
pinMode(led4, OUTPUT); //programado o led4 como "Saída"
pinMode(led5, OUTPUT); //programado o led5 como "Saída"
pinMode(led6, OUTPUT); //programado o led6 como "Saída"
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
for(byte pino = 3 ; pino <= 11 ; pino++){//O valor da variavel pino no começo ira começar como valor 3 e ira sendo somada a chegar de 1 ao 11
if(pino == 4)pino = 5;//Se o valor da variável pino for 4 irá passar a ser 5
if(pino == 7)pino = 9;//Se o valor da variável pino for 7 irá passar a ser 9
byte x = 1; //Variável byte valor x
for(byte shine = 0 ; shine < 255 ; shine = shine + x){//O valor da variável shine irá começar com o valor 0 , e irá sendo somada com o valor de x , até chegar em 255
analogWrite(pino, shine); //Vai acender o led de acordo com o valor do shine
delay(10);// Tempo
if(shine == 253) x = -1; //O valor da variável x for igual a 253 irá passar a ser -1
}
}
}

Resolvido 2.13 Wink Wink Wink Very Happy Very Happy Smile Cool
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Resolvido 2.13 Empty Re: Resolvido 2.13

Sáb Set 18, 2021 12:39 am
Oi Monica, Nesse programa faltou a parte do código que faz com que o sequencial páre quando pressionar a tecla.
Nota 6.0
Monica Moreno
Monica Moreno
Mensagens : 744
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Resolvido 2.13 Empty Re: Resolvido 2.13

Qui Out 28, 2021 10:24 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 //Definido que o pino 2 irá se chamar tecla

//DECLARAcAO DE VARIAVEIS
int Time=2;//Variável int Time=2
bool Stop=0;//Variavel bool Stop=0

//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); //Programado tecla como INPUT_PULLUP
attachInterrupt(0,parou,FALLING);//A função de interrupção usada Falling valor lógico 1 para 0
}

//FUNÇÕES COMPLEMENTARES
void parou(){//Função complementar
Stop=1;//Ali o valor da variavel Stop vai passar a ser 1
}
//PROGRAMA PRINCIPAL
void loop() {
for(byte pino = 3 ; pino <= 11 ; pino++){//Ali o valor da variavel pino vai começar com o valor 3,e vai ser somada a 1 ate chegar em 11
if(Stop==1)break;// No caso da variavel Stop for igual a 1, vai rodar a função break ,no caso nada que esteja dentro do "for"e por consequencia apagando todo sequencial
if(pino==4 || pino==7 || pino==8)continue;//No caso da variavel pino for 4 , 7 ou 8 vai rodar a função continue
byte x = 1;//A variavel vai ser atribuida o valor de x
for(byte Shine = 0 ; Shine < 255 ; Shine = Shine + x){// O valor da variavel Shine vai começar ao valor 0,vai sendo somada com o valor de x, no caso ate chegar la e 254
analogWrite(pino, Shine);//Ali o led com o numero do pino escrito vai receber o valor da variavel Shine
delay(Time);//Tempo
if(Shine == 252) x = -1;//Ali se o valor da variavel xfor identico a 252 vai passar a ser -1
}
}
}

Refeito 2.13 Resolvido 2.13 1f603 Resolvido 2.13 1f603
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Resolvido 2.13 Empty Re: Resolvido 2.13

Ter Nov 23, 2021 12:24 am
Muito bom Monica, nota 10.0
Conteúdo patrocinado

Resolvido 2.13 Empty Re: Resolvido 2.13

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