Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa
 

 

Com um Arduino em mãos e um sensor de sonar de baixo custo é possível, com pouquíssima solda e um programa muito pequeno, medir distâncias como faz uma trena eletrônica.

Você vai precisar de:

Um Arduino:

Um sensor de sonar ultrassom, que no caso dessa experiência usei um Sonar Ultrassom Griffus (V9), com custo aproximado de R$60,00 na Tato Equipamentos Eletrônicos (www.tato.ind.br) . Com esse mesmo preço é possível encontrar inúmeros outros sonares no mercado com pinagem e funcionamento idênticos ao que vou utilizar aqui.

 

O primeiro passo é soldar alguns fios nos pinos do sensor, para facilitar a ligação entre ele e o Arduino. Usei um pequeno pedaço de cabo de rede, removendo os fios internos. A grande sacada é usar fios coloridos, com cores diferentes, para identificar cada pino do sensor.

Feito as soldas, agora é só ligar o pino 5V do sensor ao 5V do Arduino, o GND (terra) ao GND do Arduino, o pino OUT ao pino digital 7 e o pino IN poderá ficar sem ligação por enquanto, para essa experiência ele não terá utilidade.

 

 

Agora só falta digitar o seguinte código no ambiente de desenvolvimento do Arduino e fazer upload para a placa:

 

{code}
void setup() {

pinMode(13, OUTPUT);

pinMode(7, INPUT);

Serial.begin(9600);

}

void loop() {

float tempo, dist;

tempo = pulseIn(7, HIGH);

dist = ((tempo * 350)/1000000)/2;

Serial.print(tempo);

Serial.print(" microssegundos, ");

Serial.print(dist);

Serial.print(" metros");

Serial.println();

delay(500);

}

{/code}

O que fizemos, passo-a-passo:

 

Coloca o pino digital 13 no modo saída :

pinMode(13, OUTPUT);

 

Coloca o pino digital 7 como entrada:

pinMode(7, INPUT);

 

Inicia a comunicação serial em 9600bps:

Serial.begin(9600);

 

No loop principal:

 

Declaração das variáveis necessárias:

float tempo, dist;

 

A função pulseIn() retorna o tempo em microssegundos entre a mudança de estado de um determinado pino, ou seja, começa a contar quando o estado do pino vai a LOW e para quando o estado vai para HIGH e vice-versa, dependendo dos parâmetros utilizados:

tempo = pulseIn(7, HIGH);

 

 

Cálculo da distância percorrida pelo pulso ultrassonico. Considerei que a velocidade do som é de aproximadamente 350 metros por segundo:

dist = ((tempo * 350)/1000000)/2;

 

 

Envia via porta serial os dados que especifica:

Serial.print(tempo);

Serial.print(" microssegundos, ");

Serial.print(dist);

Serial.print(" metros");

Serial.println();

 

Faz uma pausa de meio segundo, ou 500 milissegundos:

delay(500);

 

Compile e envie o programa para seu Arduino, abra o Serial Monitor e coloque objetos (pode ser a mão) em frente ao seu sensor de sonar e veja o resultado:

Há alguns desafios com esse projeto, a saber:

1. Existe um limiar de medição mínimo e máximo para cada tipo de sonar ultrassônico, é preciso identificar esses limites;

2. Há uma latência do próprio Arduino e da execução do programa que deve ser considerado;

3. A velocidade do som no ar varia de acordo com a temperatura do meio, talvez para conseguir um máximo de performance deva-se adicionar um termo sensor ao projeto;

 

BOM DIVERTIMENTO!