Autor Tema: telemetria ultrasonica con 16f84a  (Leído 5046 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado pato

  • PIC10
  • *
  • Mensajes: 12
telemetria ultrasonica con 16f84a
« en: 16 de Mayo de 2009, 00:16:53 »
hola amigos,

me he propuesto medir distancias con un transductor  piezoelectrico mas un microcontrolador (pic 16f84a),
mi intencion es realizarlo desde cero, con el siguiente transductor  imagen, que lo considere por ser bien basico, el datasheet esta en data del transductor

como algunos saben Si conocemos el tiempo y la velocidad, podemos calcular la distancia



1º he generado una frecuencia de 50 khz con el pic, esta es la frecuencia optima del transductor para emitir y recibir señales

Código: [Seleccionar]
; 16 ciclos de 20us = 320us y luego 320us en nivel bajo
; generando una onda de 50 khz
LIST P=16F84A
INCLUDE <P16F84A.INC>



contador EQU 0Ch


;*******ZONA DE CODIGOS*************************************************

ORG 0

Inicio bsf STATUS,RP0
clrf TRISB
bcf STATUS,RP0

Principal
ciclo_2 movlw .16
movwf contador
bcf PORTB,0
call Retardo_200micros
call Retardo_100micros ;320micros
call Retardo_4micros
nop
nop
ciclo_1 bsf PORTB,0
call Retardo_5micros
nop
nop
nop`
nop
bcf PORTB,0
call Retardo_4micros
nop
nop
decfsz contador,f
goto ciclo_1
goto ciclo_2

INCLUDE  <RETARDOS.INC>
END
 

en proteus se ve de esta manera (archivo adjuntado) donde cada pulso esta comprendido por 16 ciclos de 20 us

que me aconsejaria tomar en cuenta para realizar tal proyecto? mi idea es recibir el eco mediante interrupciones ya que no contaria con ccp,

recibi una breve asesoria del fabricante:

Citar
Hola Patricio,
                Los fabricantes de este transductor no proven mucha información al respecto ya que les conviene vender la placa medidora de distancia lista.
                Como punto de partida debes estudiar el esquemático que se puede encontrar en el datasheet del medidor de distancia que usa ese transductor, la etapa de amplificación es la compleja y no me he dado el tiempo de comprenderla.
                Efectivamente el transductor tiene polaridad, la cual puedes ver como una marca en la parte inferior de este sensor.
                Lo de recibir el eco mediante una interrupción, no parece mal idea, pero insisto que la etapa de amplificación es donde debes poner empeño en poder generar un pulso cuando recibas el eco.

Iván Sarmiento Ocharán
Ingeniería MCI Ltda.
http://www.olimex.cl
(02) 3339579



a lo que respondi:
Citar
para la etapa de potencia, pienso conectar a la salida del pic un opamp (lm358),
calculando las resistencias correspondientes para una buena ganancia (aun no se cuanto), e inmediatamente otro opamp (con ganancia =1) para volver la señal en su posicion original (sin desface)
y conectar al transductor donde lograria obtener una señal de transmision, ahora bien para efectos de recepcion la idea es usar el mismo transductor (es posible para este en particular?),
la etapa recepcion contaria con una sub-etapa inmeditamente despues del transductor compuesta por un amplificador del eco recibido para luego conectar un filtro pasa bandas (f0=40khz ( ancho de banda= 4khz))
y luego una etapa adaptadora de amplitud para trabajarla en el pic (etapa qe nose como realizarla por el momento)

espero alguna ayuda, gracias de antemano

respuesta:
Citar
Hola Patricio,

 

                Debes experimentar e investigar un poco más. No hemos trabajado particularmente con este transductor así que puedo darte respuestas a preguntas tan específicas. Este transductor sirve de receptor y transmisor al mismo tiempo. Insisto, estudia, simula y analiza la etapa de amplificación que aparece en el datasheet del medidor de distancia. A todo esto, el LM324 que aparece en ese esquemático es casi lo mismo que el lm358, además pareciera que no hay etapa de amplificación para la salida, sólo oscilando con los mismos pines del PIC como a cualquier Buzzer ejecuta la señal de salida.

 
Iván Sarmiento Ocharán

Ingeniería MCI Ltda.

 
Una de las etapas faltantes seria como recepcionar tal eco y que el micro lo considere como dato
para poder detener el timer y realizar el calculo de distancia recorrido, sera posible hacerlo evitando el uso de un dac?

es un proyecto qe falta mucho por madurar asi que todos lo aportes y acotaciones sirven,
saludos

nota: arreglare lo de 40 o 50 khz que se refiere a lo mismo
« Última modificación: 29 de Mayo de 2009, 03:11:46 por pato »
Pato

Desconectado NANO1985

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
    • Desarrollos Tecnologicos - Tucuman - Argentina
Re: telemetria ultrasonica con 16f84a
« Respuesta #1 en: 16 de Mayo de 2009, 00:55:05 »
interesante proyecto.... es uno de los q tengo pendiente,...lo voy a seguir de cerca,... tengo algo al respecto... ya lo busco y lo subo... saludos 8)
"La inquebrantable voluntad de vencer"
"hay dos cosas infinitas... El universo y la Estupidez humana" Albert Einstein
 "El sabio actua sin anhelos, permanece sosegado,... así no es afectado por el resultado de sus acciones sean éstas el triunfo o el fracaso"
- UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL TUCUMAN -

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: telemetria ultrasonica con 16f84a
« Respuesta #2 en: 18 de Mayo de 2009, 15:45:31 »
hola.yo tambien tenia en mente hacer un aparatico de estos.pero queria provar con los sensores de ultrasonidos de las alarmas de los coches.
es mas facil ir a un desguace.incluso los sensores de aparcamiento de algunos veiculos tambien servirian.

pero hasta que no valla acabando otros proyectos que he empezado,me parece que ire viendo los avances de este tema. :-)
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4583
Re: telemetria ultrasonica con 16f84a
« Respuesta #3 en: 18 de Mayo de 2009, 19:33:16 »
Hola.

Para la parte de recepcion no hace falta el ADC, basta una interrupcion para detectar el primer cambio de 0 a 1 de la rafaga enviada.
El papel lo aguanta todo

Desconectado pato

  • PIC10
  • *
  • Mensajes: 12
Re: telemetria ultrasonica con 16f84a
« Respuesta #4 en: 29 de Mayo de 2009, 01:17:30 »
hola amigo, ya he avanzado bastante en el tema asi que aqui se los presento:

Funcionamiento

Si sabemos la velocidad de propagación de una onda sonora en el aire más el tiempo que demora en cruzar cierto punto, podemos calcular la distancia recorrida que tuvo la onda para llegar a tal punto con la siguiente fórmula:
 

• 343 m/s es la velocidad de la onda en el aire a 20º C según la ecuación:

 

C es la velocidad y Tº la temperatura en el aire
•   y  son iguales, por eso se divide por 2



Transmisión



 Se genera la ráfaga a través del puerto RB1, el cual no necesita una etapa amplificadora para su transmisión.

Por RB0 se recibe el eco.

Recepción

Se compone de dos circuitos amplificador de señal y un filtro pasa banda para la correcta detección de frecuencia.
La señal es recibida por el sensor receptor y amplificada 2 veces, luego filtrada para verificar que es el eco de nuestra señal  y no una indeseable.


*Se ajusta el filtro a 41 KHz para una mejor precisión.

Pasa banda


Amplificador Opamp

obs: la ganancia es algo que vere ni bien haga las pruebas, ya que en proteus no me permitia una mayor

Programación


Y en assembler:
Código: [Seleccionar]
;_____detección de eco con su tiempo de llegada (guardado en 'dato' )_____
;
;____DISTANCIA = [(Tida + Tvuelta) * 343 m/s] / 2_____ con Tida = Tvuelta
;
;___como existe un delay de 20 ms la maxima distancia que podra medir
;
;___sera:  DISTANCIA = [(20 ms) * 343 m/s] / 2 => DISTANCIA MAXIMA = 3.43 mts.

LIST P=16F84A
INCLUDE <P16F84A.INC>

MULTIPLICADOR EQU .64 ; (128 del prescaler)/ 2
CBLOCK 0Ch
contador
dato
MULTIPLICANDO
ENDC

;********************ZONA DE CODIGO**********************************

ORG 0
goto Inicio
ORG 4
goto ServicioInterrupcion

Inicio bsf STATUS,RP0
movlw b'11000110'
movwf OPTION_REG bsf PORTB,0
bcf PORTB,1
bcf STATUS,RP0
clrf TMR0
clrf contador

Principal

;__________________________PWM______________________________________
ciclo_2 movlw .16 movwf contador
bcf PORTB,1
call Retardo_20ms
call muestra_dato
movlw b'10000000'
movwf INTCON
ciclo_1 bsf PORTB,1
call Retardo_10micros
nop
nop
bcf PORTB,1
call Retardo_5micros
nop
nop
nop
decfsz contador,f
goto ciclo_1
clrf TMR0
movlw b'10010000'
movwf INTCON
goto ciclo_2
;_____________________________________________________________________
ServicioInterrupcion
movf TMR0,w
movwf MULTIPLICANDO
bcf INTCON,INTF
retfie
;_____________________________________________________________________
muestra_dato
call LCD_Inicializa
movf MULTIPLICANDO,w movwf Arit_Multiplicando movlw MULTIPLICADOR movwf Arit_Multiplicador
call Arit_Multiplica_8Bit
movf Arit_Producto_H,W movwf Arit_Binario_H
movf Arit_Producto_L,W
movwf Arit_Binario_L
call Arit_Bin_BCD_16Bit movlw MensajeTpoEco call LCD_Mensaje
call LCD_Linea2
call LCD_UnEspacioBlanco
call Arit_VisualizaBCD movlw Mensaje_us
call LCD_Mensaje
return
Mensajes
addwf PCL,F
MensajeTpoEco
DT "Tpo Demora Eco = ", 0x00
Mensaje_us
DT "us", 0x00

INCLUDE <LCD_MENS.INC>
INCLUDE <RETARDOS.INC>
INCLUDE <ARITMETICA.INC> INCLUDE <LCD_4BIT.INC>
END

Diagrama Final


Ráfaga de 16 ciclos cada 20ms y prueba


Lista de materiales



Me queda por hacer las pruebas y realizar los ajustes necesarios como la ganancia del opamp, explicar porque acepta al entrada INT/RB0 una señal analogica sin problema (cosa que aun no entiendo, pero se que puede  :P), tener "algo" de referencia como para calibrar las medidas y asi sean exactas, ajustar mediante un potenciometro,por ejemplo, los 20 ms cosa de que permita diferentes escalas de distancia para medir

nota: pienso posicionar un tubo pbc en el sensor para direccionar mejor la rafaga, pero debo comprobar que no afecte tales ondas (refleje, refracte o que se yo), en el caso que desee medir nivel de liquido en un recipiente

me surge la duda de como variar o establecer el angulo deseado para la tx de las ondas, ya que he visto en esquemas y proyectos rafagas con diferentes angulos de proyeccion, creo que depende de la distancia

aaa, el dato que entrega por el LCD es el tiempo que tardo la rafaga en rebotar y volver, faltaria un calculo anexo para la distancia


criticas y acotaciones muy bien recibidas

saludos :-/

Pato





« Última modificación: 01 de Junio de 2009, 02:18:20 por pato »
Pato

Desconectado pato

  • PIC10
  • *
  • Mensajes: 12
Re: telemetria ultrasonica con 16f84a
« Respuesta #5 en: 18 de Junio de 2009, 20:57:59 »

*El PIC16F84A posee la línea RA4 con entrada Trigger Schmitt, lo que permite controlar un circuito digital con señales que no lo son, proporcionando señales puras, pero inversas a la original.  lo que explica un punto anterior
Pato

Desconectado Chrisbaf

  • PIC16
  • ***
  • Mensajes: 175
Re: telemetria ultrasonica con 16f84a
« Respuesta #6 en: 01 de Julio de 2009, 16:19:35 »
buen proyecto...gracias por el aporte :lol: