Sensor de distancia por Ultrasom – Modulo HC-SR04 – Emulador do modulo

Olá,

Se está criando uma aplicação com PIC, ou outro microcontrolador, seria de grande ajuda se puder simular o circuito em funcionamento antes de fazer a aplicação em placa ou em um proto-board, e para isso existem diversos programas de simulação.

hc-sr04

A ideia principal neste poste não é a de explicar como usar algum simulador, mas sim a de emular o módulo de ultrasom HC-SR04, este módulo é conectado por 4 pinos, sendo:

vcc (5V),

Triger (Gatilho – Entrada),

Echo (Resposta – Saída) e

GND (Comum).

 

Para funcionar é bem simples, alimenta-se o módulo, deixa-se o pino Triger em estado lógico baixo (0V).

Quando for disparar a conversão, ativa o pino Triger por 10 us em estado lógico alto (5V), o módulo vai processar e retornar a distancia pelo pino Echo, sendo o tempo em estado lógico alto (5V) proporcional à distancia, pelo Datasheet pode-se observar que para transformar este tempo em centímetros, basta dividir o tempo (em ms) por 58, e para polegadas tem que dividir por 148. Observe a imagem abaixo, não se preocupe com o sinal Transmit Wave, ele é o sinal que o módulo processa enviando o ultrasom para cálculo do tempo de retorno. Para a comunicação com o HC-SR04 basta observar somente o disparo Triger e o Echo.

Para facilitar o teste do programa do microcontrolador que opera o módulo eu criei um módulo emulado, com microcontrolador PIC12F629, sendo o código escrito em linguagem Basic com compilador MIKROBASIC, obtido no site http://www.mikroe.com.

 

A versão gratuita tem um limite de 2k de programa para PIC e 6k para dsPIC, se for fazer algo com o PIC12F629/675 ou ainda o PIC16F628A, o limite não será atingido pois quantidade de memória é inferior a isso.

 

Este compilador é o mais fácil de se usar, por ter uma série de exemplos incorporados ao arquivo de ajuda, não tem comparação com CCS, MPLAB e outros, recomendo mesmo para que não sabe nada. Pena que não to ganhando pela propaganda😉

 

O código que eu montei é basicamente o de esperar uma interrupção, assim que a interrupção é ativada em estado lógico alto para estado baixo, o timer é ativado e gera um pulso que será o sinal ECHO do módulo HC-SR04.

Para ficar ainda mais interativo dá para alterar o valor do timer com os pinos de entrada UP e DN, o PIC tem PULL-UP interno o que significa que não precisa de resistor externo, apenas um botão. Observe o código abaixo.

PIC12F629

program UltrasomModuloHCSR04

‘ Declarations section
symbol Triger = GPIO.2 ‘ pino 5 do PIC
symbol Echo = GPIO.1  ‘ pino 6 do PIC
symbol btn_up = GPIO.4   ‘ pino 3 do PIC
symbol btn_dn = GPIO.5   ‘ pino 2 do PIC

dim tempo as word
dim loop1 as word

sub procedure interrupt
if INTCON.INTF = 1 then
INTCON.INTF = 0

TMR1H = tempo / 256
TMR1L = tempo – (TMR1H * 256)
T1CON.TMR1ON = 1
Echo = 1

else

if PIR1.TMR1IF = 1 then
PIR1.TMR1IF = 0
T1CON.TMR1ON = 0
Echo = 0
end if

end if

end sub

main:
‘   Main program
delay_ms(1000)
GPIO = 0
TRISIO = %110100
CMCON =  %00000111
OPTION_REG = %00000111
INTCON = %11010000
PIE1 = %00000001

T1CON = %00000100

WPU = %00110100

tempo = 65535 – (25 * 58)
while true

if btn_dn = 0 then
if tempo < 65530 then
tempo = tempo + 1
end if
end if

if btn_up = 0 then
if tempo > 5 then
tempo = tempo – 1
end if
end if

delay_ms(1)

wend
end.

 

Abaixo são os fusíveis, é a configuração que muitas vezes dá dor de cabeça aos iniciantes, no caso está sendo utilizado o clock interno e o pino RESET está desativado, por isso ao iniciar o PIC é altamente recomendado (porque eu já tive problemas para reprogramar o PIC) deixar um delay de 1s antes de fazer alguma operação com os pinos de programação PGD e PGC, pinos 6 e 7.

modulo ultrasom

Note que este emulador faz o processo inverso do microcontrolador que vai receber o sinal do módulo, para o receptor do sinal ECHO, primeiro tem que enviar o sinal Triger de 10ms ao módulo e depois contar o tempo em estado lógico alto que o módulo HC-SR04 vai retornar pelo pino ECHO.

Para saber como fazer o programa do controlador do módulo experimente este outro post a seguir:

http://microcontrolandos.blogspot.com.br/2013/09/pic-hc-sr04-sensor-ultrasonico.html

Datasheet HC-SR04:

http://www.micropik.com/PDF/HCSR04.pdf

 

Boa sorte!

 

 

 

 

One Response to Sensor de distancia por Ultrasom – Modulo HC-SR04 – Emulador do modulo

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: