El HC-SR04 es un sensor ultrasónico, este utiliza el sonar para determinar la distancia a un objeto. Ofrece una precisión excelente y lecturas estables. Su funcionamiento no se ve afectado por la luz solar o materiales oscuros.
Su comportamiento es estable y tiene mucha exactitud en sus mediciones.
Su funcionamiento es con una frecuencia de 8MHz o bien 16MHz cuando lo empleamos junto a un servomotor.
También se puede realizar con la frecuencia por defecto 4MHz aunque habitualmente se ha ido realizando a 8MHz.
Para emplear junto con servomotres, emplear la frecuencia por defecto 4MHz.
Características
Nombres de las conexiones del sensor:
- VCC = +5VDC
- Trig = Entrada de Trigger de sensor. Emite pulso
- Echo = Salida de Echo de sensor. Recibe pulso.
- GND = Tierra 0V.
La forma de conectarlo puede ser de 2 formas diferentes:
1. Uniendo Echo y Trigger mediante una resistencia de 4,7K.
2. Con 2 cables independientes Echo y Trigger.
Uniendo Echo y Trigger mediante una resistencia de 4,7K o 10K
A continuación vamos a explicar la primera forma de conexión.
Para su correcto funcionamiento según el montaje realizado por mí, es necesario soldar una resistencia de 4,7kOhm entre Echo y Trigger.
Resistencia soldada a las conexiones Echo y Trigger. |
De sesta forma ahorremos un cable a la hora de conectarlo. Resulta muy cómodo.
Conexión a la placa Picaxe
La conexión a la placa Picaxe es muy simple. Sólo es necesario:
- Vcc: Positivo de la placa
- GND: Negativo de la placa
- Trigger: Conexión que sea reversible (Input y Output) y analógica. En este caso hemos tomado C.1, aunque podríamos haber cogido C.0 o C.2.
- Echo: Está conectada indirectamente a través de la resistencia de 4,7KOhm o 10KOhm.
1. Conexión con 1 solo cable.
Esquema de conexiones con Resistencia de 4,7K entre Echo y Trigger |
2. Conexión con 2 cables independientes.
Con 2 cables independientes. |
Esta es una práctica básica para entender el funcionamiento y conexión del sensor a la placa.
Consideraciones:
Para programar este sensor con el chip Picaxe 18M2+, lo que hay que hacer es básicamente:
- La frecuencia por defecto es 4MHz aunque se puede emplear la frecuencia a 8MHz y a 16MHZ. A 8MHz es incompatible con el servo.
- Enviar un pulso de 2ms mediante pulsout (Trigger).
- Recibir el pulso durante 1ms (Echo) y almacenar el valor capturado en una variable w0.
- Operar para transformar ese valor en la distancia al objeto en cm.
- Visualizarlo en pantalla, si fuera necesario.
Códigos de programación con distintas frecuencias
'Control HCSR04 con un cable y Frecuencia por defecto 4MHz
'(USAR ESTA FRECUENCIA CON SERVO)
symbol Distancia = w0
symbol operaciondistancia = w1
let Distancia = 0
let operaciondistancia = 0
ultrasonidos:
pulsout C.0,2 'Emitimos pulso en la entrada C.0
pulsin C.0,1,operaciondistancia 'Recibimos pulso
pause 10
Distancia=operaciondistancia*5/29 ' Obtenemos la distancia en cm
debug
pause 200
goto ultrasonidos 'Repetimos la medición
'Control HCSR04 con un cable y Frecuencia 8MHz
Hacemos el siguiente cambio:
Distancia=operaciondistancia*5/58 ' Obtenemos la distancia en cm
'Control HCSR04 con un cable y Frecuencia 16MHz
Hacemos el siguiente cambio:
Distancia=operaciondistancia*5/116 ' Obtenemos la distancia en cm
Programación con todas las frecuencias posibles. Es similar a lo anterior |
Programación con Blockly
Código con frecuencia 8MHz |
Código con frecuencia 16MHz |
Código con frecuencia por defecto |
La segunda forma de conectarlo es con 2 cables independientes, uno para Trigger y otro para Echo.
No hay que olvidar que Trigger debe ser una salida. Al ser reversibles muchas de las conexiones del chip 18M2+, podemos utilizar C.1 como salida aunque habitualmente sea una entrada analógica.
En la siguiente imagen podemos ver cómo conectarlo.
Con 2 cables independientes. |
'(USAR ESTA FRECUENCIA CON SERVO)
symbol Distancia = w0
symbol operaciondistancia = w1
let Distancia = 0
let operaciondistancia = 0
ultrasonidos:
pulsout C.1,2 'Emitimos pulso en la entrada C.0 (Trig)
pulsin C.0,1,operaciondistancia 'Recibimos pulso (Echo)
pause 10
Distancia=operaciondistancia*5/29 ' Obtenemos la distancia en cm
debug
pause 200
goto ultrasonidos 'Repetimos la medición
Programa HC-SR04 con 2 cables para Echo y Trigger |
Si empleamos como Trigger a cualquier salida habitual como B.0, no habría que configurarla con el comando output, como hemos hecho con C.1.
Esto es debido a que esas son salidas por defecto (B.0-B.7) y C.1 es entrada por defecto.
No hay comentarios:
Publicar un comentario
En este espacio puedes comentar la entrada publicada o hacer preguntas o sugerencias