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 : 5039
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Tópicos abordados na Aula FOR() Empty Tópicos abordados na Aula FOR()

Sáb maio 25, 2019 6:12 pm
Dando continuidades nas funções do capítulo 2, nessa aula conhecemos a função for(),  que basicamente repete um conjunto de instruções em uma quantidade controlada de ciclos.

O comando tem a seguinte sintaxe:
for(inicialização ; condição ; incremento){
  bloco de instruções;
}

onde:
- inicialização: variável que recebe o valor inicial que será usado na sequencia de contagem, pode ser declarada como local ou global,
- condição: condição que vai manter o loop enquanto ela for verdadeira, pode usar os operadores de comparação e boleanos ou ambos combinados
- incremento: aqui a variável de inicialização vai receber seus incrementos, positivos ou negativos, que podem ser matemáticos ou  ++ , --

Vamos aos exemplos usados na aula:
1) Programa que aumenta o brilho do led gradualmente.

Código:

#define led1 3 //Constante do compilador led1 e valor 3 são os mesmos

void setup(){            //Função para programação dos pinos
  pinMode(led1, OUTPUT); //Pino que está com o nome de led1 será uma sáida, pois o led é um atuador
 
}
void loop(){  //Função de repetição ciclica infinita
  for(int i = 0; i <255 ; i ++){  //Para int iniciando em 0(led apagado); enquanto i for menor que 255; a cada ciclo i é incrementado
    analogWrite(led1,i); //escreve numa saída PWM, ligada no led1, o valor de i, que vai ser incrementada a cada ciclo até 255
    delay(10); //da um tempo para que a retina do olho humano (que é muito lenta) consiga perceber o led aumentando o brilho
  } // aqui encerra a função for()
  } //aqui encerra a função loop()

2) Programa que aumenta o brilho do led e depois diminui o brilho do led gradualmente
Código:

#define led1 3 //Constante do compilador led1 e valor 3 são os mesmos

void setup(){            //Função para programação dos pinos
 pinMode(led1, OUTPUT); //Pino que está com o nome de led1 será uma sáida, pois o led é um atuador

}
void loop(){  //Função de repetição ciclica infinita
 for(int i = 0; i <255 ; i ++){  //Para int iniciando em 0(led apagado); enquanto i for menor que 255; a cada ciclo i é incrementado
   analogWrite(led1,i); //escreve numa saída PWM, ligada no led1, o valor de i, que vai ser incrementada a cada ciclo até 255
   delay(10); //da um tempo para que a retina do olho humano (que é muito lenta) consiga perceber o led aumentando o brilho
 } // aqui encerra a função for()
  for(int i = 255; i >= 0 ; i --){  //Para int iniciando em 255(brilho maximo); enquanto i for maior ou igual a zero; a cada ciclo i é decrementado
   analogWrite(led1,i); //escreve numa saída PWM, ligada no led1, o valor de i, que vai ser decrementado a cada ciclo até 0 (led vai apagando)
   delay(10); //da um tempo para que a retina do olho humano (que é muito lenta) consiga perceber o led diminuindo o brilho
 } // aqui encerra a função for()
 } //aqui encerra a função loop()

3) Programa do sequencial usando for()
Código:

#define led1 3 //Constante do compilador led1 e 3 são os mesmos
#define led2 4 //Constante do compilador led2 e 4 são os mesmos
#define led3 5 //Constante do compilador led3 e 5 são os mesmos
#define led4 6 //Constante do compilador led4 e 6 são os mesmos
#define led5 7 //Constante do compilador led5 e 7 são os mesmos
#define led6 8 //Constante do compilador led6 e 8 são os mesmos
int count;     //Declaração da variável count sem inicialização, será inicializada na função for()
void debug(){  //debuguizinho basico para acompanhar a contagem e provar que está funcionando
  Serial.print(count); //imprime o valor da variavel count
  Serial.print("\n");  //line feed
}
void setup(){            //Função para programação dos pinos
  pinMode(led1, OUTPUT); //Pino que está com o nome de led1 será uma sáida, pois o led é um atuador
  pinMode(led2, OUTPUT); //Pino que está com o nome de led2 será uma sáida, pois o led é um atuador
  pinMode(led3, OUTPUT); //Pino que está com o nome de led3 será uma sáida, pois o led é um atuador
  pinMode(led4, OUTPUT); //Pino que está com o nome de led4 será uma sáida, pois o led é um atuador
  pinMode(led5, OUTPUT); //Pino que está com o nome de led5 será uma sáida, pois o led é um atuador
  pinMode(led6, OUTPUT); //Pino que está com o nome de led6 será uma sáida, pois o led é um atuador
  Serial.begin(9600);    //Inicialização da porta serial na velocidade padrão de 9600
}
void loop(){  //Função de repetição ciclica infinita
  for(count = 3; count <= 8; count ++){  //Para count iniciando em 3; enquanto for menor ou igual a 8; a cada ciclo incrementa 1
    digitalWrite(count,HIGH); //acende o led do pino 3(led1) no primeiro ciclo, depois o pino 4(led2) e assim sucessivamente até o 8
    delay(200); //da um tempo para que a retina do olho humano (que é muito lenta) consiga perceber a transição do estado do led
    digitalWrite(count,LOW); //apaga o led do pino 3(led1) no primeiro ciclo, depois o pino 4(led2) e assim sucessivamente até o 8
  } // aqui encerra a função for()
  } //aqui encerra a função loop()
  }


Última edição por Paulo Augusto Batista em Seg Ago 12, 2019 9:00 pm, editado 1 vez(es)
avatar
Renan Furtado
Mensagens : 116
Data de inscrição : 25/02/2019

Tópicos abordados na Aula FOR() Empty Re: Tópicos abordados na Aula FOR()

Sex Ago 09, 2019 1:43 pm
professor o segundo estava errado, estava apenas acendendo gradualmente, tava apenas acendendo gradualmente e apagando de uma vez só corrigi aki
#define led1 3 //Constante do compilador led1 e valor 3 são os mesmos

void setup(){ //Função para programação dos pinos
pinMode(led1, OUTPUT); //Pino que está com o nome de led1 será uma sáida, pois o led é um atuador

}
void loop(){ //Função de repetição ciclica infinita
for(int i = 0; i <255 ; i ++){ //Para int iniciando em 0(led apagado); enquanto i for menor que 255; a cada ciclo i é incrementado
analogWrite(led1,i); //escreve numa saída PWM, ligada no led1, o valor de i, que vai ser incrementada a cada ciclo até 255
delay(10); //da um tempo para que a retina do olho humano (que é muito lenta) consiga perceber o led aumentando o brilho
} // aqui encerra a função for()
for(int i = 255; i >= 0 ; i --){ //Para int iniciando em 255(brilho maximo); enquanto i for maior ou igual a zero; a cada ciclo i é decrementado
analogWrite(led1,i); //escreve numa saída PWM, ligada no led1, o valor de i, que vai ser decrementado a cada ciclo até 0 (led vai apagando)
delay(10); //da um tempo para que a retina do olho humano (que é muito lenta) consiga perceber o led diminuindo o brilho
} // aqui encerra a função for()
} //aqui encerra a função loop()
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

Tópicos abordados na Aula FOR() Empty Re: Tópicos abordados na Aula FOR()

Seg Ago 12, 2019 9:01 pm
Bem observado. obrigado.
Fiz a correção.
Conteúdo patrocinado

Tópicos abordados na Aula FOR() Empty Re: Tópicos abordados na Aula FOR()

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