quinta-feira, maio 02, 2013

Sensor Ultrassônico HC-SR04 - parte 2

Neste segunda parte vamos colocar para funcionar o sensor, ligando-o a um Arduino. No caso, um Arduino Nano, que pode ser espetado diretamente em uma protoboard.


A conexão é extremamente simples: os pinos GND e VCC são ligados aos pinos GND e +5V do Arduino; os sinais TRIG e ECHO são ligados a duas portas digitais (no meu caso, D5 e D6).

O programa de teste também é trivial:
  • Em setup() programamos a porta TRIG como saída e a porta serial para 38400bps.
  • Em loop() damos um pulso na porta TRIG, medimos o pulso em ECHO e, se o resultado for menor que o máximo, enviamos pela serial o tempo e a distância correspondente.
A biblioteca do Arduino tem uma função perfeita para medir o pulso, a função pulseIn.

O código fica assim:
const int pinTrigger = 5;
const int pinEcho = 6;

void setup() {
  pinMode (pinTrigger, OUTPUT); 
 Serial.begin(38400); 
}

void loop() {
  digitalWrite (pinTrigger, HIGH);
  delayMicroseconds (20);
  digitalWrite (pinTrigger, LOW);
  long tEcho = pulseIn (pinEcho, HIGH, 38000L);
  if (tEcho < 38000L) {
    Serial.print (tEcho);
    Serial.print (" ");
    Serial.print (tEcho/58L);
    Serial.println ("cm");
  }
  delay (3000);
}
As imagens abaixo, capturadas com um osciloscópio digital, mostram os sinais TRIG (em amarelo) e ECHO (em azul). A largura do pulso TRIG está aumentada para 50 uS neste teste, para ficar visível na imagem.



Nenhum comentário: