terça-feira, 4 de dezembro de 2012

Sensor de cor com LDR

12 de Dezembro de 2012
Hoje nós fizemos a medida da sensibilidade do LDR variando os resistores.
O Teste foi feito com os LEDS das cores:
Branco, vermelho e verde.
Calculando os valores máximos e mínimos.
Os resultados foram:

Resultados com resistor de 10K ohm:


                                                         
                    Branco
                    Verde 
                 Vermelho
 Max.
 Min.
 Max.
Min. 
 Max.
 Min.
 1003
 676
 1018
 806
 1012
 789
 1004
 678
 1019
 808
 1013
 791
 1012
 680
 1017
 810
 1014
 792
 1014
 681
 1016
 804
 1015
 793
 1016
 682
 1015
 807
 1016
 795



Resultados com resistor de 1K ohm:


                   Branco
                    Verde
                 Vermelho
Max.
 Min.
 Max.
 Min.
Max. 
 Min.
 987
 452
 1005
 646
 1020
 986
 988
 460
 1010
 646
 1023
 985
 988
 460
 1011
 647
 1019
 983
 913
 457
 1009
 648
 1021
 984
 926
 458
 1008
 649
 1016
 985

                                                                                                 



                                                                         

Valor de mínimo e máximo do ldr usando led azul
Vídeo do teste
05 de Dezembro de 2012

Conversão de luz em som
 PS: o barulho é irritante

Tabela 1- Sensibilidade do LDR variando os resistores
5 cms de distancia do LDR ao LEDs 



1k ohm
4k7 ohm
10k ohm
Cor
Min
Max
Min
Max
Min
Max
Branco
189
210


649
701
Verde
121
173




Vermelho










Tabela 2- Sensibilidade do LDR variando os resistores
5 cms de distancia do LDR ao led


1k ohm
4k7 ohm
10k ohm
Cor
Min
Max
Min
Max
Min
Max
Branco
913
1004


314
582
Verde






Vermelho










Tabela 3- Sensibilidade do LDR variando os resistores
0,5 cms


1k ohm
4k7 ohm
10k ohm
Cor
Min
Max
Min
Max
Min
Max
Branco






Verde
705
715




Vermelho
410
423








Descrição
Elaboração de um sensor de cor usando LDR e Arduino, com objetivo de utilizar na Olimpíada Brasileira de  Robótica, no nível fundamental para reconhecer a cor verde e para o nível médio para reconhecer uma lata de refrigerante vermelha.

Teste 1- Simulação
Este teste foi feito através do SIMULINO - simulador do Arduino, usando o programa acima e variando os resistores. Não é preciso pois não usa led de 2 cores mas, o led tem controle de intensidade permitindo a determinação dos valores máximos e mínimos de cada resistor, permitindo uma prévia seleção do mesmo.

Conclusão 
Segundo a análise dos resultados do Simulino, o sensor de 10k ohm obteve a maior faixa de valores de leitura e portanto, é considerado o mais sensível em relação aos outros resistores. Se faz necessário testes reais com os resistores para confirmar os dados. A programação utilizada é a mesma do teste 2.

Teste 2- Sensibilidade do LDR 
Usaremos resistores de valores diferentes e faremos a leitura no Arduino dos valores para cor verde e vermelha (valor máximo e mínimo), usando um fade (PWM) fazendo com que o led bicolor reduza a intensidade, simulando a distância ótima do sensor em relação ao objeto. Colocaremos uma proteção  tubo de caneta com fita isolante ou canudinho - para evitar a influência da luz ambiente.

Programação do Arduino:
/* Programa de leitura do LDR usando 2 led´s e fade
Este programa tem a função de calibrar o LDR e ajudar a decidir qual resistor é o mais indicado
*/
void setup(){
  pinMode (8, OUTPUT);
  pinMode (7, OUTPUT);
 pinMode (A0, INPUT);
Serial.begin (9600);
}

void loop (){
  float LDR; //variável para leitura do LDR
  LDR = analogRead (A0); //Leitura do LDR
  //envia o valor para o monitor serial
  Serial.print ("leitura do LDR= ");
  Serial.println (LDR);
  //Pino Vermelho
   for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5)   // seleciona o valor numa escola de 0 a 255, aumentando de 5 em 5
    analogWrite(8, fadeValue);      
    // espera 30 milissegundos para acabar o efeito  
    delay(30);                          
 //Pino Verde
   for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5)   // seleciona o valor numa escola de 0 a 255
    analogWrite(7, fadeValue);      
    // espera 30 milissegundos para acabar o efeito  
    delay(30);                          

}

Montagem - Fritzing


Material
3 resistores de 220 ohm
1 led bicolor - vermelho/verde
1 led alto brilho branco
1 ldr
1 resistor de 10kohm
1 resistor de 4k7 ohm
1 resistor de 1kohm
Arduino UNO
Fios

Resultados

Tabela 1- Sensibilidade do LDR variando os resistores


1k ohm
4k7 ohm
10k ohm
Cor
Min
Max
Min
Max
Min
Max
Branco






Verde






Vermelho











Teste 3 - Sensor de cor
 Após a calibração dos sensores, determinando qual resistor é mais adequado e qual o valor máximo e mínimo para cada cor o programa abaixo será complementado e testado em protoboard. O objetivo é que o led que acenda vermelho produza um ruído com frequência maior que o led que acenda verde. 
Montagem - Fritzing

Material
2 resistores de 220 ohm
1 resistor de 100 ohm
1 led bicolor - vermelho/verde
1 ldr
1 buzzer
1 resistor de ___kohm (depende do resultado do teste 2)
Arduino UNO
Fios


/* Programa para detecção de cores usando um ldr - sensor de cor para projeto OBR - Ensino Fundamental
O Led Vermelho acende alterando a frequência do Buzzer, o mesmo ocorrendo para o led verde
*/

void setup (){
  pinMode (A0, INPUT); //ldr
  pinMode (6, OUTPUT); // buzzer
  pinMode (7, OUTPUT); //LED vermelho
  pinMode (8, OUTPUT); //LED verde
  Serial.begin (9600);
}

void loop(){
  float LDR; //variável do LDR
  LDR = analogRead (A0);//leitura do ldr
  Serial.print ("valor do LDR =/t");
  Serial.println (LDR);
  //acende o led verde por 2 segundos
  digitalWrite (8, HIGH);
  delay (2000);
  //acende o led vermelho por 2 segundos
  digitalWrite (8, LOW);
  digitalWrite (7, HIGH);
  delay (2000);
  //apaga o led vermelho
  digitalWrite (7, LOW);
if ( ? <LDR< ?){  //se o led vermelho acender o buzzer oscila numa frequência maior
tone (6, LDR*1000);
}
if ( ? <LDR< ? ){
tone (6, LDR*1000);//se o led verde acender, o buzzer oscila numa frequência menor
}
}


? - faixa de valores depende do resultado do teste 2.

Nenhum comentário:

Postar um comentário