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:
  1. const int pinTrigger = 5;  
  2. const int pinEcho = 6;  
  3.   
  4. void setup() {  
  5.   pinMode (pinTrigger, OUTPUT);   
  6.  Serial.begin(38400);   
  7. }  
  8.   
  9. void loop() {  
  10.   digitalWrite (pinTrigger, HIGH);  
  11.   delayMicroseconds (20);  
  12.   digitalWrite (pinTrigger, LOW);  
  13.   long tEcho = pulseIn (pinEcho, HIGH, 38000L);  
  14.   if (tEcho < 38000L) {  
  15.     Serial.print (tEcho);  
  16.     Serial.print (" ");  
  17.     Serial.print (tEcho/58L);  
  18.     Serial.println ("cm");  
  19.   }  
  20.   delay (3000);  
  21. }  
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: