Em linha de conta com as duas ultimas publicações sobre o sensor HC-SR04 este tutorial, tem por objetivo dar a conhecer as suas capacidades. Aqui vamos demonstrar este em funcionamento simultâneo como detetor de objetos e medidor de distâncias.
Tanto ao nível do esquema como do bloco de código, foi feito o aproveitamento do que tínhamos elaborado na ultima duas publicações.
Desta forma muito simples o nosso sistema vai ser capaz de determinar se um objecto se encontra no seu raio de ação e a que distancia está do mesmo sendo os resultados exibidos através do ”Monitor Série” e da alteração da cor dos leds.
Desta forma muito simples o nosso sistema vai ser capaz de determinar se um objecto se encontra no seu raio de ação e a que distancia está do mesmo sendo os resultados exibidos através do ”Monitor Série” e da alteração da cor dos leds.
Material necessário
- Arduino Duemilanove ou outra versão;
- Sensor HC-SR04
- Placa breadboard;
- 2 x Leds Verdes;
- 2 x Leds Vermelhos;
- Vários jumpers (fios condutores para as ligações)
Esquema de montagem
Neste terceiro ensaio vamos utilizar o circuito desenvolvido para o projeto "Detetar objetos com o Arduino e o Sensor HC-SR04", o esquema é o mesmo sendo a grande alteração apenas feita ao nível do código.
Atenção a montagem dos componentes deve ser feita de acordo com o esquema seguinte:
Atenção a montagem dos componentes deve ser feita de acordo com o esquema seguinte:
Nota: Muito cuidado ao ligar o sensor HC-SR04, se este for ligado de forma incorrecta, pode ficar danificado.
Descrição de funcionamneto
- Se não estiver qualquer objecto no campo de ação do sensor os leds verdes estão "ON" ligados, e os leds vermelhos estão "OFF" desligados e no ”Monitor Série” podemos ver a indicação de que não existe qualquer objeto na área de ação.
- Se tivermos um objeto na área de ação do sensor os leds verdes passam a estar "OFF" desligados, e os leds vermelhos passam a "ON" ligados e no ”Monitor Série” podemos ver que existe um dado objeto nas proximidades e a que distancia se encontra do mesmo.
Código Fonte
Código desenvolvido e com o qual iremos programar o nosso Arduino, este é o responsável pelo funcionamento do sistema de acordo com o pretendido.
/*********************************************************
TecnoDomos
Codigo para teste do sensor HC-SR04
Software for testing HC-SR04
Detector de Objectos/ Objects detector
Medidor de distâncias/ Meter distances
Código em inglês/ English Code
*********************************************************/
//Definição dos pinos de ligação
//Define pins
#define trigPin 13
#define echoPin 12
#define led 11
#define led2 10
void setup()
{
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop()
{
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
//.....Objects detector .....
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance < 20) //Definição da área de ação (em cm)
{ //Distance definition (cm)
digitalWrite(led,HIGH); // red LED on
digitalWrite(led2,LOW); // green LED off
}
else
{
digitalWrite(led,LOW); // red LED off
digitalWrite(led2,HIGH); // green LED on
}
//......Meter distances .....
if (distance >20 || distance <= 0) //Definição das áreas de exclusão (em cm)
{ //Exclusion area (cm)
Serial.println("Out of range/Fora de alcance");
}
else
{
Serial.print(distance);
Serial.println(" cm");
}
delay(500);
}
TecnoDomos
Codigo para teste do sensor HC-SR04
Software for testing HC-SR04
Detector de Objectos/ Objects detector
Medidor de distâncias/ Meter distances
Código em inglês/ English Code
*********************************************************/
//Definição dos pinos de ligação
//Define pins
#define trigPin 13
#define echoPin 12
#define led 11
#define led2 10
void setup()
{
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop()
{
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
//.....Objects detector .....
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance < 20) //Definição da área de ação (em cm)
{ //Distance definition (cm)
digitalWrite(led,HIGH); // red LED on
digitalWrite(led2,LOW); // green LED off
}
else
{
digitalWrite(led,LOW); // red LED off
digitalWrite(led2,HIGH); // green LED on
}
//......Meter distances .....
if (distance >20 || distance <= 0) //Definição das áreas de exclusão (em cm)
{ //Exclusion area (cm)
Serial.println("Out of range/Fora de alcance");
}
else
{
Serial.print(distance);
Serial.println(" cm");
}
delay(500);
}
Video De Demonstração
Links úteis
Ficheiros para Download
Considerações Finais
O HC-SR04 é um sensor que tem uma ampla aplicabilidade em montagens em áreas como a Domótica, Robótica e muito mais.
Esperamos que este artigo tenha sido útil e se gostaram comentem e partilhem. Alguma dúvida ou questão deixem em comentário ou utilizem o formulário de contatos.
Um bom dia em nome da TecnoDomos.
Um bom dia em nome da TecnoDomos.
Conteúdo redigido ao abrigo do novo Acordo Ortográfico.
Sem comentários:
Enviar um comentário