Pesquisa Google

sexta-feira, 11 de fevereiro de 2011

Fotosensor


Programa para controlar um fotosensor com a placa Arduíno, este controla o sensor que emite informações sobre a quantidade de luz no ambiente.
Neste caso foi programado para que o LED vermelho fique acesso quando tenha luz no ambiente e o LED verde quando esteja com pouca luz sendo emitida para o sensor. Outro LED aumenta e diminui seu brilho conforme a intensidade da luz emitida para o sensor, como pode ser visto na figura 1.

 
Na utilização de sensores é interessante utilizar o modo de leitura analógica que lê valores de 0 a 1023, o que é mais interessante para alguns tipos de sensores, como é o nosso caso.
Pra fazer a leitura do sensor foi utilizado o seguinte código:

“int leitor;
leitor = analogRead(pinr);
leitor = map(leitor, 0,1023,0,255);”

      Criou-se uma variável do tipo int chamada leitor, os valores são lidos na segunda linha do código com o comendo “leitor = analogRead(pinr);”, onde “pinr” é o nome do pino de leitura, os valores recebidos foram atribuídos para a variável leitor. Na linha três os valores são mapeados de 0 a 1023 para 0 255, ou seja, os valores são redimensionados. Redimensionamos os valores para emiti-los em uma porta PWM que usa apenas valores de 0 a 255, essa porta é utilizada quando se deseja mandar algum tipo de intensidade ou velocidade para algum objeto neste caso o LED de intensidade. Nas outras portas da placa Arduíno se mandarmos sinal ele apenas liga ou desliga o sinal, porem nas portas PWM podemos controlar o tamanho do sinal que varia de 0 a 255.

      Normalmente os sensores são utilizados para fazer alguma coisa, bom no nosso caso vamos ligar a apagar LEDs dependendo da intensidade da luz, parece ser algo simples mas para quem tem criatividade pode ter varias utilidades. O código abaixo mostra como é feito para ligar a desligar os LEDs:

“ if(leitor>127){
digitalWrite(pinMaior, HIGH);
digitalWrite(pinMenor, LOW);}
else{
digitalWrite(pinMenor, HIGH);
digitalWrite(pinMaior, LOW);}”

        Muito simples, foi utilizado um “if”, se os valores do leitor forem maiores que 127 então ligue o pino “digitalWrite(pinMaior, HIGH);” e desligue o pino digitalWrite(pinMenor, LOW);, HIGH é utilizado no Arduíno para ligar os pinos e LOW para deligar ou mandar um valor zero. Senão “ else” ligue o pino digitalWrite(pinMenor, HIGH); e desligue o pino digitalWrite(pinMaior, LOW);


        Para uma melhor compreensão o esquema de montagem e o código completo estão abaixo:



“int pinMaior = 7;
int pinMenor = 6;
int pinIntensidade = 9;
int pinr = 0;

void setup(){
pinMode(pinMaior, OUTPUT);
pinMode(pinMenor, OUTPUT);
pinMode(pinIntensidade, OUTPUT);
Serial.begin(9600);
}

void loop(){
int leitor;
leitor = analogRead(pinr);
leitor = map(leitor, 0,1023,0,255);
analogWrite(pinIntensidade, leitor);
if(leitor>127){
digitalWrite(pinMaior, HIGH);
digitalWrite(pinMenor, LOW);
}
else{
digitalWrite(pinMenor, HIGH);
digitalWrite(pinMaior, LOW);
}
Serial.print("Valor Lido: ");
Serial.print(leitor);
delay (10);
Serial.println("");
}”

Vídeo que mostra o sistema funcionando. 
 


Nenhum comentário:

Postar um comentário