Comando "for"
Pessoal, recentemente me perguntaram como funciona o comando "for" ... após algum tempo pensando eu percebi que não sabia explicar; por isso, resolvi fazer esta portagem.
Antes de falarmos sobre o comando for, podemos aproveitar a opotunidade para esclarecer mais alguns pontos do sketch apresentado abaixo.
Vamos começar pelo comando "#define start 11"; este comando é a mesma coisa que "int start = 11;".
Ou seja, estamos determinando que o pino 11 do arduino, vai assumir a identificação de "start", assim, não corremos o risco de confundir o numero 11 dentro da programação com o pino 11 do arduino.
No caso da variável flip_flop, ela assumi o valor 1 assim que é chamada no nosso programa.
Observe que não há diferença entre definir se a variável representa um pino ou um valor numérico; isso pode causar dúvidas aos menos experientes na hora de entender um programa que ele não tenha elaborado. Fazer as definições de pinos do arduino utilizando o comando "#define xxxx" pode ajudar a deixar o programa mais claros.
A outra forma de visualizar, é observando dentro do "void setup" as configurações que alternam entre INPUT e OUTPUT, onde INPUT são os pinos de entrada e OUTPUT os pinos de saída.
Os pinos de entrada devem receber um resistor para limitar o pico de tensão no hardware; esse resistor pode ser ativado via programação utilizando o comando :
pinMode(start,INPUT); // define pino como entrada
pinMode(start,HIGH); // ativa resistor de pull up
Mais abixo temos a inicialização da comunicação serial entre o monitor do IDE e as atividades do hardware.
Serial.begin(9600); // inicia a comunicação serial
Enfim o comando "for". Neste programa, o comando "for" só será inicializado quando o teste lógico do comando "if" for TRUE, ou seja, o pino start tiver um valor lógico alto. Logo após esta confirmação, o pino action será acionado, como próximo passo, chama o comando "for" que permanecerá executando até que os valores definidos sejam alcançados; ou seja, o pino action permanecerá com valor lógico alto enquanto o comando "for" não terminar a execução.
Dentro do comando "for" temos que definir o valor inicial da variável, o valor limite, e o encremento, veja abaixo com fica o comando:
for(check=0 (valor inicial); check<=10 (valor limite); check++ (encremento))
Enquanto o valor de check não chegar a 10, começando a contagem de 0 o comando "for" ficará executando, enquanto isso nada mais é executado, apenas o "for".
Bom nada é melhor para tirar as dúvidas do que ver o que lemos em execução, para aqueles que farão a montagem e o teste, segue o esquema de ligação:
PINO 11 -->> Este deve ser ligado inicialmente ao zero volt
PINO 13 -->> Não requer ligação, pois na placa do arduino já possui um led no pino 13
Após carrgar o programa inicie o Serial Monitor do IDE (link para baixar o IDE) e acione o start, ligando o PINO 11 (start) no 5 Vcc.
Observe os detalhes que devem ser configurados para o funcionamento do Monitor Serial:
O video abaixo o video apresenta o que deve ser apresentado no Monitor Serial.
🔽🔽🔽🔽🔽🔽
/*
ELABORADO POR: TONI
DATA : 24/08/13
*/
// INICIO DO PROGRAMA
#define start 11 // definindo a variavel como pino 11 do arduino
#define action 13
int check; // declarando uma variavel
int flip_flop = 1; // declarando uma variavel com valor definido inicialmente
int z = 1000;
int w = 332;
void setup()
{
pinMode(start,INPUT); // define pino como entrada
pinMode(start,HIGH); // ativa resistor de pull up
pinMode(action,OUTPUT); // define pino como saída
Serial.begin(9600); // inicia a comunicação serial
}
void loop()
{
if(digitalRead(start) == 1) // testa o pino
{
digitalWrite(action,flip_flop); //ativa o pino com valor na variável
for(check=0; check<=10; check++) // faz uma contagem de 0 a 10
{
Serial.print("wait ");
delay(w);
Serial.print(". ");
delay(w);
Serial.print(". ");
delay(w);
Serial.print(". ");
delay(z);
Serial.println(check);
delay(z);
}
digitalWrite(action,!flip_flop); // submete ao pino o valor inverso da variável
}
}
//////////////FIM DO PROGRAMA/////////////////////////
Comentários
Postar um comentário