terça-feira, 14 de dezembro de 2010

Utilizando o sensor ultrasônico HC-SR04 com o Arduino

O sensor HC-SR04 fornece medida de distância entre 2cm e 4m com uma precisão de até 3mm, o componente inclui o transmissor, receptor e o circuito de controle.
O sensor funciona basicamente da seguinte maneira:

  • Um sinal de 10 microsegundos é enviado ao sensor.
  • O sensor automaticamente envia o sinal e recebe de volta.
  • Se o sinal voltar o tempo gasto é retornado pelo circuito.


Requisitos de hardware.
1 Arduino
1 HC-SR04


Circuito.
O circuito é muito simples, basta conectar o VCC do sensor aos 5v do Arduino, GND ao GND, Echo a porta digital 10 e Trig a porta digital 12.


Imagem desenvolvida com o Fritzing

Código.
#define triggerPin 12
#define echoPin 10

void setup() {
  // Configura a saída serial para recuperar a leitura do sensor
  Serial.begin(9600);
  // Configura a porta digital em modo saida
  pinMode(triggerPin, OUTPUT);
  // Configura a porta digital em modo entrada
  pinMode(echoPin, INPUT);
}

void loop() {
  // Envia um sinal de 10ms ao sensor
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  
  // O sensor calcula o tempo gasto entre o envio e o recebimento
  // do sinal e retorna um pulso com esta duração
  long duration = pulseIn(echoPin, HIGH);

  // Converte o tempo para distancia em centimetros
  float cm = microsecondsToCentimeters(duration);
  
  // Informa a distancia na serial
  Serial.println(cm, DEC);
  
  delay(1000);
}

float microsecondsToCentimeters(long microseconds){
  // Converte o tempo de microsegundos para segundos
  float seconds = (float) microseconds / 1000000.0;
  // Com a velocidade do som de 340m/s calcula-se a
  // distancia percorrida
  float distance = seconds * 340;
  // Divide o resultado por dois pois o tempo é calculado
  // considerando a ida e a volta do sinal  
  distance = distance / 2;
  // Converte o resultado em metros para centimetros
  distance = distance * 100;
  
  return distance;
}


Referências.

domingo, 12 de dezembro de 2010

Introdução ao Arduino

Ops, desculpe este post não será uma introdução ao Arduino.


Desde criança sempre gostei de eletrônica e agora estou retomando este antigo hobby, o objetivo será postar alguns projetos que eu irei construir, exemplos de uso de componentes que tive certa dificuldade em encontrar na internet ou que sejam mais interessantes.


E quanto a Introdução ao Arduino?
Há uma série de outros blogs que já fazem isto, veja algumas referências abaixo.


Referências.

Agora sim Introdução ao Arduino
Site do Arduino
Sessão Learning do site arduino.cc
layada.net
freeduino.org
arduinobrasil
brasilrobotics
sabereletronica.com.br
grokpodcast.com

Ao pesquisar referências observei que temos pouca referência nacional sobre o assunto, boa parte dos que encontrei estão a um bom tempo sem atualização, espero não acontecer o mesmo com este blog.


Obrigado a todos.