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

Ir para baixo
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5115
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 2.13 Sequencial Gradual usando continue Empty Exercício 2.13 Sequencial Gradual usando continue

Dom Jul 26, 2020 5:19 pm
Código:
  /*
 * 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


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


//PROGRAMA PRINCIPAL
void loop() {
for(byte pino = 3 ; pino <= 11 ; pino++){
  if(pino == 4)pino = 5;
  if(pino == 7)pino = 9;
  byte x = 1;
  for(byte brilho = 0 ; brilho < 255 ; brilho = brilho + x){
  analogWrite(pino, brilho); //Acende o Led correspondente ao valor de brilho
  delay(10);
  if(brilho == 253) x = -1;
  }
 }
}
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos