Sensor Ultrasonido Con Pic

download Sensor Ultrasonido Con Pic

of 7

Transcript of Sensor Ultrasonido Con Pic

  • 7/24/2019 Sensor Ultrasonido Con Pic

    1/7

    SENSOR ULTRASONIDO CON PIC

    Sensor ultrasonico de distancia basado en el principio del sonar.

    Caracteristicas:

    Alimentacion: !

    An"ulo de sensado: #$

    Ran"o de distancia: % a && cm

    Numero de pines: ' (!CC)TRI*)EC+O)*ND,

    Dimensiones:

    -odo de uncionamiento:

    Para /acer una lectura con el SENSOR ULTRASONIDO basta con se"uir estos

    pasos:

    #, en0iar un pulso de minimo #&us por el pin TRI* (disparo, para iniciar la

    lectura.

    %, el sensor en0iara 1 pulsos de ultrasonido 2 colocara su salida EC+O a alto)

    debes detectar este e0ento e iniciar un 3conteo de tiempo3

    4, la salida EC+O se mantendra en alto /asta recibir el eco re5e6ado por el

    obstaculo a lo cual el sensor pondra su pin EC+O a ba6o) es decir) terminas de

    3contar el tiempo3

    ', La distancia es proporcional a la duracion del pulso 2 puedes calcularla con

    las si"uientes ormulas:

  • 7/24/2019 Sensor Ultrasonido Con Pic

    2/7

    Distancia en C- 7 tiempo medido en us 8 &.

    Distancia en PUL*ADAS 7 tiempo medido en us 8 &.&&9

    Nota: si la duracion del pulso es ma2or a 4&ms entonces asumes ;ue no /a2

    obstaculo.

    Este es el dia"rama de tiempos:

    Ear una uncion ;ue se

    encar"ara de la lectura del sensor) esta uncion debera ir uera 2 antes de la

    uncion -AIN. Lo primero es de?nir los pines de nuestro sensor

    @de?ne tri" pinc9

    @de?ne ec/o input(pinc,

    Renombrar pines acilita el entendimiento posterior del codi"o 2 ademas

    permite ;ue cambies los pines ;ue 0as a usar con simplemente modi?car las

    lineas de codi"o anteriores en lu"ar de buscarlas 2 modi?carlas dentro del

    codi"o.

    -u2 bien) sabemos ;ue el sensor puede lle"ar a medir /asta &&cm) por lo

    cual nuestra uncion tendra un DATO DE SALIDA del tipo lon" unsi"ned 2a

    ;ue sobrepasa los % de una 0ariable unsi"ned normal) asi ;ue nuestra

    uncion comien=a con un int#9:

  • 7/24/2019 Sensor Ultrasonido Con Pic

    3/7

    int#9 midedistancia(0oid,B

    int#9 centimetros creamos una 0ariable local para los centimetros medidos

    codi"o para medicion de distancia...

    a/ora comien=a la secuencia) si recuerdas /abremos de en0iar un pulso de

    almenos #&us por el pin TRI*) 2o le puse &us para no allar:

    output/i"/(tri", pulso de disparo

    dela2us(&,

    outputlo(tri",

    lue"o /a2 ;ue esperar el pulso del pin ec/o ;ue de inicio esta en cero) asi

    ;ue usaremos un /ile ;ue espera mientras el pin ec/o este en cero 2

    continuara cuando el pin este en #:

    /ile(ec/o77&, espera 5anco de subida

    -u2 acil 0erdad) a/ora comien=a la medicion de la distancia) usaremos un

    ciclo /ile ;ue incrementa cada 9&us la 0ariable centimetros mientras el pin

    ec/o sea 7 uno. Los 9&us es el tiempo aproFimado ;ue tarda en 0ia6ar el

    sonido %cm osea #cm ida 2 0uelta:

    /ile(ec/o77#,B

    centimetrosGG

    dela2us(1,

    H

  • 7/24/2019 Sensor Ultrasonido Con Pic

    4/7

    Este /ile termina cuando el pin ec/o a ido a cero) es decir 2a termino la

    lectura) asi ;ue terminamos con una demora de &ms) tiempo su"erido por el

    datas/eet del sensor 2 retornaremos con el 0alor de los centimetros medidos:

    dela2ms(&,

    return(centimetros,

    H ?n de la uncion 3midedistancia3

    Nuestra uncion completa ;ueda entonces de la si"uiente manera:

    @de?ne tri" pinc9

    @de?ne ec/o input(pinc,

    int#9 midedistancia(0oid,B

    int#9 centimetros7&

    pulso de disparo:

    output/i"/(tri",

    dela2us(&,

    outputlo(tri",

    espera 5anco de subida por el pin ec/o

    /ile(ec/o77&,

    comien=a a contar centimetros /asta ;ue pin ec/o sea cero

    /ile(ec/o77#,B

    centimetrosGG

    dela2us(1,

    H

  • 7/24/2019 Sensor Ultrasonido Con Pic

    5/7

    demora de se"uridad 2 retorna con el 0alor de centimetros contados

    dela2ms(&,

    return(centimetros,

    H

    Recuerda ;ue esta uncion /abra de ir auera 2 antes de la uncion -AIN) un

    e6emplo de uso seria asi: +acer un medidor de distancia con sensor

    ultrasonico 2 un lcd ;ue mar;ue la distancia en C- 2 ten"a un led ;ue

    enciende cuando /a2 una lectura 0alida 2 apa"a cuando no /a2 una lectura

    0alida o no /a2a ob6eto:

    88888888888888888888888888888888888888888888888888888888888888888888

    Cabecera del pro"rama) depende del pic ;ue uses

    88888888888888888888888888888888888888888888888888888888888888888888

    88888888888888888888888888888888888888888888888888888888888888888888

    uncion de mide distancia de sensor ultrasonico@de?ne tri" pinc9

    @de?ne ec/o input(pinc,

    int#9 midedistancia(0oid,B

    int#9 centimetros7&

    pulso de disparo:

    output/i"/(tri",

    dela2us(&,

    outputlo(tri",

    espera 5anco de subida por el pin ec/o

  • 7/24/2019 Sensor Ultrasonido Con Pic

    6/7

    /ile(ec/o77&,

    comien=a a contar centimetros /asta ;ue pin ec/o sea cero

    /ile(ec/o77#,B

    centimetrosGG

    dela2us(1,

    H

    demora de se"uridad 2 retorna con el 0alor de centimetros contados

    dela2ms(&,

    return(centimetros,

    H

    88888888888888888888888888888888888888888888888888888888888888888888

    88888888888888888888888888888888888888888888888888888888888888888888

    uncion principal del pro"rama0oid main( 0oid ,B

    int#9 distancia

    int1 i

    lcdinit(, iniciali=a lcd

    /ile (true,B la=o in?nito

    distancia7midedistancia(, AJUI USA-OS NUESTRA PODEROSA

    UNCIONKKK

    lcd"otoF2(#)#,

    i(distancia&&,B si lectura &&cm entonces no es 0alida) osea no /a2

  • 7/24/2019 Sensor Ultrasonido Con Pic

    7/7

    ob6eto

    lcdputc(MM, orra LCD

    print(lcdputc)3NO DETECTEDK3,

    outputlo(pinc&,

    H

    elseB si distancia ue &&cm es una distancia 0alida 2 la imprime en LCD

    print(lcdputc)3Q&4lucm 3)distancia,

    output/i"/(pinc&,

    H

    H cierra la=o in?nito

    H cierra main

    88888888888888888888888888888888888888888888888888888888888888888888