Medindo distância com Sensor IR / Detector de obstáculos

Este é um projeto simples e funcional, ótimo para se utilizar em robôs. A proposta desse circuito é fazer um detector de obstáculos, não funciona para utilização como seguidor de linha.

Abaixo é mostrado como devem ser ligados os componentes. 

Para IR Receptor (Receiver) usei um IPX 81 e para o IR LED (Emissor) um LD 271.

O resistor de 56 K, eu não tinha, portanto usei um de 38 K e funcionou bem, tente manter próximo ao valor de 56 K que provavelmente funcionará corretamente o circuito. Esses valores de resistores foram projetados para serem usados com esses modelos de Emissor e Receptor, se for usar outros modelos, ai é bom consultar o datasheet do componente que você está usando. 

As leituras das distâncias obtidas foram bem próximas das medidas reais, acredito que dê para medir distâncias aproximadas até de uns 25 cm. 

Esse é o vídeo tosco, com câmera de churrasco que eu fiz, câmara e cinegrafista são lamentáveis (desculpa Tarantino).

https://www.youtube.com/watch?v=37zmXv10KKM&feature=share&l...

Está ideia foi retirada do blog de Legwinkij, o garoto fez um vídeo melhor do que o meu lá.

http://legwinskij.blogspot.sk/2011/03/arduino-ir-distance-sensor-up...

http://legwinskij.blogspot.com.br/2011/03/arduino-ir-distance-senso...

Código para Arduino :
int IRSense = A0;
int IRTrans = 2;
int valueAmbient = 0;

void setup() 
{
  pinMode(IRSense, INPUT);
  pinMode(IRTrans, OUTPUT);
  Serial.begin(9600);
  digitalWrite(IRTrans,LOW);
}

void ambient()
{
  digitalWrite(IRTrans,HIGH);
  delay(20); 
  valueAmbient = analogRead(IRSense);
  delay(20);
}

void loop() 
{
  ambient();
  digitalWrite(IRTrans,LOW);
  delay(20);
  int value = analogRead(IRSense);
  int value2 = round(value - valueAmbient);
  int dist = (((value2+15.0)/(value2*(value2+100.0)))*2000.0);  
  Serial.print(dist);
  Serial.print("cm.");
  Serial.println("");
  delay(20);
}

Código para Processing : (necessário apenas para um acompanhamento visual, para testes)

import processing.serial.*;
Serial Port;
String distance ="";
String data ="";
int index = 0;
PFont font;

void setup()
{
  size(700,400);
  Port = new Serial(this, "COM4", 9600);
  Port.bufferUntil('.');
  font = loadFont("Courier-48.vlw");
  textFont(font, 200);
}

void draw()
{
  background(0,0,0);
  fill(200,0,0);
  text(distance,50,100);
}

void serialEvent (Serial port)
{
  data = port.readStringUntil('.');
  data = data.substring(0, data.length() - 1);
  distance = data;
}

Exibições: 15406

Responder esta

Respostas a este tópico

Esse é o sensor IR da SHARP.

datasheet

Se pelo menos eles falassem o nome do CI que ele tem ficaria mais facil

Julio, o código do CI é GP2Y0D810..., o mesmo do datasheet que o Maurício colocou acima.

Pesquise o preço do GP2Y0D810Z0F na Aliexpress e vais ver esse e outros modelos (para diferentes distâncias).

Vou ver se eu importo esse CI e tento fazer o sensor sharp caseiro.

LINK:http://pt.aliexpress.com/item/GP2Y0D810Z0F/32229526953.html

Caro ele rsrs

Edson vc tem esse sensor?Sera que ele fica louco quando e esposto a luz do ambiente e do sol?Obrigado ai pelo link e muito mais negocio comprar  o sensor do que o CI,nunca comprei no Ebay mas vc poderia me dizer se eu comprar esse sensor eu tomo taxa do correio,porque eu compro no aliexpress e dealextreme e nunca fui taxado?

Julio,

Infelizmente não tenho esse sensor, mas se for baseado em IR, qualquer corpo [mais] quente, como o Sol, Lâmpada, fogueira, emite radiação infravermelha, o que pode comprometer. Acho que funciona razoavelmente em locais com iluminação indireta. Por isso, esses sensores são para uso interno. Para ambiente externo, geralmente utilizam câmeras, ultrassom, laser, gps... ou a combinação deles.

Eu também nunca comprei no Ebay. Apenas na Dx, Sparkfun e NKC Electronics. Como eram compras inferiores a U$ 100,00 (e os chineses da Dx geralmente declaram como "gift") não foram tributados.

Olá Luis, como eu faço para limitar o alcance em 10 Centímetros? Quero que ele movimente um servo quando for igual ou menor que 10 centímetros.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço