domingo, 30 de setembro de 2012

SENSOR DE ULTRASSOM HC-SR04

Aplicação em robôs de sumô: detecção de objetos.
Programa de testes- Utilizado para 2 sensores de ultrassom:

// Comandos para leitura de sensor de ultrassom para os robôs TITAN e ORION.
//sensor 1
#define echoPin 2                            // Pino do Arduino para emissor
#define trigPin 3                            // Pino do Arduino para receptor
//sensor 2
#define echoPin1 4                           // Pino do Arduino para emissor
#define trigPin1 5                           // Pino do Arduino para receptor

float distancia=0; // variável para distância do sensor 1
float distancia1=0;//variável para distância do sensor 2

float valorSensor=0; //valor do sensor 1
float valorSensor1=0;//valor do sensor 2

void setup(){
  Serial.begin(9600);
  pinMode(echoPin, INPUT); // seta pino 2 como entrada - receptor - echo
  pinMode(trigPin, OUTPUT); // seta pino 3 do Arduino como saída - transmissor - trigger
  pinMode(echoPin1, INPUT);//seta o pino 4 como entrada receptor
  pinMode(trigPin1, OUTPUT);//seta o pino 5 como saída (gatilho) - transmissor
}

void loop(){
  //sensor de objeto 1
  digitalWrite(trigPin, LOW); // desliga o pino gatilho do sensor por 2 microssegundos
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);// gatilho ativado por 10 microssegundos
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);// gatilho desligado
  //sensor de objeto 2
  digitalWrite(trigPin1, LOW); // desliga o pino gatilho do sensor por 2 microssegundos
  delayMicroseconds(2);
  digitalWrite(trigPin1, HIGH); // gatilho ativado por 10 microssegundos
  delayMicroseconds(10);
  digitalWrite(trigPin1, LOW); // gatilho desligado

  int distance = pulseIn(echoPin, HIGH);//leitura do sensor 1 - alto ou baixo.
  int distance1 = pulseIn(echoPin1, HIGH);//leitura do sensor 2 - alto ou baixoo pulso em microssegundos.
  distance = distancia/58;//converte o valor do sensor1 em cm
  distance1 = distancia1/58;//converte o valor do sensor2 em cm
  //a partir daqui pode seguir com as variáveis para controlar os motores usando a distância
  //comando para exibir no serial monitor o valor de distância
  Serial.print(distancia);
  Serial.print(distancia1);
  Serial.println(distancia);
  Serial.println(distancia1);
  delay(100);
}


FONTE: http://www.webtronico.com/documentos/HC-SR04.pdf


Descrição:
 Medidor de distância ultrasônico é capaz de medir distâncias de 2cm a 5 metros. O módulo possui um circuito pronto, com emissor e receptor ultrasônico.
Conexões:
  • 5V Supply
  • Trigger Pulse Input
  • Echo Pulse Output
  • 0V Ground
Também pode ser utilizado para detectar objetos, movimento, etc.
Especificações:
  • power supply :5V DC
    Corrente: 15mA
  • quiescent current : <2mA
  • effectual angle: <15°
  • alcance da medição : 2cm – 500 cm
  • resolution : 3mm
O módulo possui 4 pinos : VCC , Trig, Echo, GND . Sendo assim, é muito simples utiliza-lo. O processo de medição se resume em: coloque o pino TRIG em nível ALTO por mais de 10us, e a medição começa; Quando o ultrassom emitido bater em um obstáculo e voltar, o pino ECHO ficará em nível ALTO pelo tempo correspondente a distância medida. Assim, a distância do obstáculo pode ser medida pelo tempo (largura do pulso) que o pino ECHO ficar em nível alto usando a seguinte regra:
Distância em CEMTIMETROS: (largura do pulso em uS) / 58;
Distância em POLEGADAS: (largura do pulso em uS) / 148;
Se a largura do pulso for igual a 38ms, então não tem obstaculo.

Nenhum comentário:

Postar um comentário