Olá,
Desta vez vou postar sobre uns sensores infra-vermelhos em que o emissor IR e o photo-transistor estão integrados no mesmo módulo.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSfy8q4WHPqI%2FAAAAAAAAAXo%2F0PQofnxhsiM%2Fs288%2FIMG_0419.jpg&hash=ae978c1ae38f95eab0ab73a9dd78d75593ca9816) (http://picasaweb.google.com/josescxavier/IRSensor#5331343503765487266)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSfy857vrzMI%2FAAAAAAAAAYg%2FMsyrLe_7hF0%2Fs288%2FIMG_0429.jpg&hash=39ae9b310a286fa1124f34b1a4a9a5d4184046cd) (http://picasaweb.google.com/josescxavier/IRSensor#5331343762376084674)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh6.ggpht.com%2F_i2teYMYP9C0%2FSfy8u3K-JOI%2FAAAAAAAAAXw%2Feg8lvkJVZYc%2Fs144%2FIMG_0420.jpg&hash=218b16f512912acac167ba3f46e30b2c73db4586) (http://picasaweb.google.com/josescxavier/IRSensor#5331343572169794786)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh5.ggpht.com%2F_i2teYMYP9C0%2FSfy8yxFNkpI%2FAAAAAAAAAX4%2Fhgun1keT7do%2Fs144%2FIMG_0422.jpg&hash=e52f7a13c83ff029578767370564c0b4e7672e76) (http://picasaweb.google.com/josescxavier/IRSensor#5331343639254504082)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh4.ggpht.com%2F_i2teYMYP9C0%2FSfy80MgrC7I%2FAAAAAAAAAYA%2FUTDl07xjfks%2Fs144%2FIMG_0423.jpg&hash=a1b7bbe75f6d91f45be4b5f84714d2dfe30c675e) (http://picasaweb.google.com/josescxavier/IRSensor#5331343663797308338)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh6.ggpht.com%2F_i2teYMYP9C0%2FSfy81umPF0I%2FAAAAAAAAAYI%2FhcNseCr_Vt4%2Fs144%2FIMG_0425.jpg&hash=2660ef57334c2ae261f6337bf9f75786d56d240a) (http://picasaweb.google.com/josescxavier/IRSensor#5331343690127316802)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh4.ggpht.com%2F_i2teYMYP9C0%2FSfy82-isr0I%2FAAAAAAAAAYQ%2Fhikf0ydHy6c%2Fs144%2FIMG_0427.jpg&hash=32d0b40fceda06834692fa0f02c2061eb008cda5) (http://picasaweb.google.com/josescxavier/IRSensor#5331343711587315522)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSfy84T1F5cI%2FAAAAAAAAAYY%2FQB8rq1Ox4mE%2Fs144%2FIMG_0428.jpg&hash=db9532e1cd8610c5c78fed3ba40156f631df9437) (http://picasaweb.google.com/josescxavier/IRSensor#5331343734481479106)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh5.ggpht.com%2F_i2teYMYP9C0%2FSfy87Y3jguI%2FAAAAAAAAAYo%2Frb2dtGI4VvY%2Fs144%2FIMG_0430.jpg&hash=7b6dd349d097c0aab6dd576c1ef6d964c40ddbbf) (http://picasaweb.google.com/josescxavier/IRSensor#5331343787373593314)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSfy89g2ggOI%2FAAAAAAAAAYw%2Fq0wGI7GcsjA%2Fs144%2Fimg_0414.jpg&hash=881acf8aeb3f0e1efee20824919000db3f454ed4) (http://picasaweb.google.com/josescxavier/IRSensor#5331343823876423906)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh5.ggpht.com%2F_i2teYMYP9C0%2FSf3-SUQGiQI%2FAAAAAAAAAZo%2FB2UUoaGSjX4%2Fs144%2FIMG_0432.jpg&hash=58a2f89afa14ecd6ba9e35ce4f4e2668bc1aa401) (http://picasaweb.google.com/josescxavier/IRSensor#5331697124503881986)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSf3-Uz2eu_I%2FAAAAAAAAAZ0%2F4E2wUNAjqbA%2Fs144%2FIMG_0433.jpg&hash=9bef0616130f7d9d506fa593460f83a7085f7f66) (http://picasaweb.google.com/josescxavier/IRSensor#5331697167346088946)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSf3-Wm7z4fI%2FAAAAAAAAAZ8%2FiqySC8cQDJY%2Fs144%2FIMG_0434.jpg&hash=c24345ced6d061c527ccbbe9550d76534755a2a0) (http://picasaweb.google.com/josescxavier/IRSensor#5331697198238523890)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSf3-Xh8Ly0I%2FAAAAAAAAAaE%2FJczVxcA3HD4%2Fs144%2FIMG_0436.jpg&hash=aea0f6c22b34f1fa8b1d40007a6cef549d99facc) (http://picasaweb.google.com/josescxavier/IRSensor#5331697214077782850)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh6.ggpht.com%2F_i2teYMYP9C0%2FSf3-YhVqJdI%2FAAAAAAAAAaM%2FEEOStGkmLvg%2Fs144%2FIMG_0437.jpg&hash=e202b6892891e9f20b2319e25b3c55ccbeb46568) (http://picasaweb.google.com/josescxavier/IRSensor#5331697231096063442)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh4.ggpht.com%2F_i2teYMYP9C0%2FSf3-ZLoi9-I%2FAAAAAAAAAaU%2FI69ARI2-LrU%2Fs144%2FIMG_0438.jpg&hash=5de44f4de4d8ef247b02e451d4c5257dc323bbc7) (http://picasaweb.google.com/josescxavier/IRSensor#5331697242449573858)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh5.ggpht.com%2F_i2teYMYP9C0%2FSf3-aAgvwlI%2FAAAAAAAAAac%2FQPxuOWP2Ws4%2Fs144%2FIMG_0439.jpg&hash=13b55bc726141029e1faaefb79c4599ead94d3d9) (http://picasaweb.google.com/josescxavier/IRSensor#5331697256643936850)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh5.ggpht.com%2F_i2teYMYP9C0%2FSf3-awE0wPI%2FAAAAAAAAAak%2FPReKNWNt9vA%2Fs144%2FIMG_0442.jpg&hash=bc50a4ec76a4b547c51fc821d7a0e54a0a7baa33) (http://picasaweb.google.com/josescxavier/IRSensor#5331697269411725554)
http://www.youtube.com/watch?v=s6T_AxVH0twhttp://www.youtube.com/watch?v=4XK9YdMnBtM
Introdução
Estes sensores são muitas vezes utilizados em robôs para seguir linhas mas têm muitas outras aplicações, como por exemplo o uso em encoders de motores e detecção de objectos a pequenas distancias.
Estes módulos funcionam através da emissão de um feixe IR que dependendo de haver um objecto a reflectir ou não na direcção do photo-transistor vai fazer com que este entre em condução ou não.
Devido às características das cores banco e preto, em que o branco é a cor que mais reflecte e o preto a cor que menos reflecte (podemos também pensar que o branco absorve pouca luz enquanto que o preto absorve muita), podemos usar estas cores para controlar o funcionamento do sensor. Assim quando usado o sensor contra um objecto branco, por exemplo uma folha, vai ter uma reacção oposta em relação a utilização de um objecto com cor preto. Este facto permite usar este sensor para seguir uma linha, medir a velocidade de uma roda.
Neste teste usei o sensor para distinguir o branco do preto numa roda e através disto saber a velocidade da mesma.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh3.ggpht.com%2F_i2teYMYP9C0%2FSfyvdlZc-EI%2FAAAAAAAAAW4%2F-QhJj4ZJ9Ho%2Fs144%2FrodaRiscas.jpg&hash=9e58e6dfb2bf983f42010cbc2fd32c8ef4688652) (http://picasaweb.google.com/josescxavier/IRSensor#5331328981689759810)
Usando esta forma, podemos saber que ao final de o sensor mudar 4 vezes de estado, isto é, começar no preto -> branco -> preto -> branco e voltar ao preto, a roda deu uma volta completa, através do perímetro da roda podemos logo saber a distancia que percorreu. Então se por exemplo de t em t segundos fizermos (número de voltas)/ t obtemos a velocidade média da roda no intervalo t.
Electrónica \ Montagem
Através da análise da datasheet podemos encontrar as informações sobre os pinos do sensor.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh6.ggpht.com%2F_i2teYMYP9C0%2FSfyw0HxxxeI%2FAAAAAAAAAXA%2FYR_zPMrzOgE%2Fs800%2FsensoresDatasheet.jpg&hash=0587094a02c07ce291d72ff0810eb4789fd82f27) (http://picasaweb.google.com/josescxavier/IRSensor#5331330468387341794)
Assim podemos criar o seguinte esquema:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh6.ggpht.com%2F_i2teYMYP9C0%2FSfyw02GSDNI%2FAAAAAAAAAXI%2FlLxcH_GRoE0%2Fs400%2Fesquema.jpg&hash=1bed444116166efa12f916926d35ed7cfb225550) (http://picasaweb.google.com/josescxavier/IRSensor#5331330480821374162)
A resistencia R1 é de 190 Ohms e não 83 Ohms como indicado na imagem.
As resistências R1 e R2 devem ser calculadas em função do sensor utilizado, para isto devemos analisar a datasheet e apurar qual a corrente tanto no díodo como a corrente que o photo-transitor conduz.
Usando a tabela das características eléctricas tiramos para o LED :
IF = 20mA
VF = 1.2V
É necessário incluir a queda de tensão do LED nas contas.
(V-Vf) = R * If <=> R = V / If <=> R = (5V-1.2V) / 20mA = 190 Ohms
Para o photo-transistor devemos verificar +- entre que valores pode variar a corrente no colector, assim podemos escolher uma resistência em função disso, no entanto como a corrente do photo-transistor em função da luz que incide neste não é linear, R2, pode ser ajustado testando vários valores para R2 ou por exemplo usando um potenciómetro para calibrar o que nos der mais jeito.
Obrigado ao Njay pela correcção nesta parte ;)
Implementação: Arduino \ Micro-controladores
Para utilizar agora o sensor no Arduino, ou outro micro-controlador, vamos utilizar uma das entradas analógicas, assim pode-se usar o sensor para medir distancias até 1,2cm no entanto no tipo de aplicações que referi, distinguir duas cores, seria útil fazer a comparação através de um comparador e posteriormente utilizava-se uma entrada digital do micro-controlador.
Um simples código para testar pode ser:
#define sensorIR 0
void setup(){
Serial.begin(9600); //Para podermos ver o valor na consola
}
void loop(){
Serial.println(analogRead(sensorIR));
delay(50);
}
Um código para contar o numero de voltas:
#define sensorIR 0
int var_sensorIR = 0;
int contaVoltas = 0;
boolean estadoPreto = false;
void setup(){
Serial.begin(9600); //Para podermos ver o valor na consola
}
void loop(){
var_sensorIR = analogRead(sensorIR);
if(estadoPreto && (var_sensorIR < 400)){
contaVoltas++;
estadoPreto = false;
}
Documentos
Datasheet: http://www.farnell.com/datasheets/13066.pdf (http://www.farnell.com/datasheets/13066.pdf)
Produto
Fabricante:AVAGO TECHNOLOGIES
Referencia do Fabrincante:APDS-9104-L22
Nota:Eu comprei na farnell por 0,61€ http://pt.farnell.com/avago-technologies/apds-9104-l22/sensor-proximity-reflective-0-10mm/dp/1532444 (http://pt.farnell.com/avago-technologies/apds-9104-l22/sensor-proximity-reflective-0-10mm/dp/1532444) mas pode ser encontrado noutras lojas e nem precisa de ser exactamente este modelo :)
Espera que seja util e se tiver erros digam qualquer coisa ;)
Abraço