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.
2) Programa que aumenta o brilho do led e depois diminui o brilho do led gradualmente
3) Programa do sequencial usando for()
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()
}
- Renan Furtado
- Mensagens : 116
Data de inscrição : 25/02/2019
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()
#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()
Permissões neste sub-fórum
Não podes responder a tópicos
|
|