martes, 29 de julio de 2014

Practicas con sensor de Ultrasonidos HC-SR04

Funcionamiento

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.
HC-SR04

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

  • Voltaje de alimentacion: 5V DC
  • Angulo efectivo: 15°
  • Distancia efectiva de medicion: 2cm – 500 cm
  • Resolucion: 0.3 cm.
  • Frecuencia 8MHz (setfreq m8) o 16MHz (setfreq m16). 
  • Frecuencia por defecto 4MHz (No se usa ningún comando especial).


  • 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.

    HC-SR04 con placa Picaxe
    Resistencia soldada a las conexiones Echo y Trigger.

    HC-SR04


    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.
    HC-SR04 con placa Picaxe


    Esquema de conexiones con Resistencia de 4,7K entre Echo y Trigger

    Vídeo explicativo

    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:

    - Cambiar la frecuencia a 8MHz aunque también puede funcionar a 16MHZ
    - 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
    symbol Distancia = w0
    symbol operaciondistancia = w1
    let Distancia = 0
    let operaciondistancia = 0
     setfreq M8  'Frecuencia 8MHz incompatible con servo ultrasonidos:
       pulsout C.0,2 'Emitimos pulso en la entrada C.0
       pulsin C.0,1,operaciondistancia 'Recibimos pulso   pause 10
       Distancia=operaciondistancia*5/58 ' Obtenemos la distancia en cm
       debug
       pause 200
    goto ultrasonidos 'Repetimos la medición



    'Control HCSR04 con un cable y Frecuencia 16MHz
    symbol Distancia = w0
    symbol operaciondistancia = w1
    let Distancia = 0
    let operaciondistancia = 0
     setfreq M16  'Frecuencia 16MHz ultrasonidos:
       pulsout C.0,2 'Emitimos pulso en la entrada C.0
       pulsin C.0,1,operaciondistancia 'Recibimos pulso   pause 10
       Distancia=operaciondistancia*5/116 ' Obtenemos la distancia en cm
       debug
       pause 200
    goto ultrasonidos 'Repetimos la medición


    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.
    Código de programación
    '#####PICAXE 18M2+ con sensor ultrasonidos HC-SR04#####
    'C.1 emisor Trigger. Si empleamos B.0 no hay que configurarla en blockly como output
    'C.0 receptor ultrasonido Echo

    symbol medida=w1        'asignamos a la variable w1 el nombre "medida"
    setfreq m8                       'frecuencia a 8MHz aunque podríamos usar 16MHz o por defecto
                                            'en tal caso no se pondría este comando.
    inicio:

    pulsout C.1,2                 'Emitimos ultrasonido durante 2ms en entrada C.1 (Trig)
    pulsin C.0,1,w0             'Recibe ultrasonido en C.0 en 1ms y grabamos en w0 (Echo)
    pause 10

    medida=w0*5/58          'Operamos para obtener distancia en cm en la variable w1
    debug w1                      'Mostramos en pantalla
    pause 100

    goto inicio


    
    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