Aplicaciones Industriales de Ultrasonido Microcontroladoresdea.unsj.edu.ar/ultrasonido/pdfs/Trabajos...
Transcript of Aplicaciones Industriales de Ultrasonido Microcontroladoresdea.unsj.edu.ar/ultrasonido/pdfs/Trabajos...
Universidad Nacional de San Juan
Facultad de Ingeniería
Aplicaciones Industriales de Ultrasonido
Microcontroladores
Proyecto:
“Medidor diferencial de variaciones sísmicas simuladas”
Autores:
Liotta, Fabricio Ariel
Mallamaci, Franco Andrés
Más, Pablo Nicolás
2012
Índice
Introducción ................................................................................ 1
Fundamentación Teórica ............................................................. 1
Realización real del sistema ......................................................... 9
Desarrollo del software ..............................................................15
Pruebas y ajustes del circuito .....................................................19
Problemas y soluciones ..............................................................21
Conclusiones ...............................................................................22
Anexo 1: Programa principal del microcontrolador ....................23
Anexo 2: Configuraciones del microcontrolador .........................25
Introducción
En el presente informe, se expondrán las características técnicas, y constructivas del
proyecto, como así también los fundamentos teóricos que lo respaldan.
El sistema en cuestión tiene por finalidad medir, mediante ultrasonido, las variaciones
diferenciales que se producen en una columna dada durante un movimiento sísmico simulado.
El procesamiento de los tiempos y generación de los pulsos está a cargo del microcontrolador
de Microchip, PIC 16F88.
Los resultados del mismo son enviados a una PC, mediante puerto serie RS-232, para poder ser
visualizados. Este estudio se realizó en un solo punto de la columna, pero puede ser extendido
a diversos puntos de la misma, obteniendo así un análisis más detallado de la reacción de la
misma.
El posterior estudio de los datos registrados y graficados en la PC, excede el alcance de la
materia, quedando a su disposición la complementación del proyecto.
Fundamentación Teórica Introducción al ultrasonido
Las ondas acústicas (o mecánicas), que se propagan por un medio material hacen vibrara sus
moléculas de acuerdo a la forma de la fuente que los genera. Simplificando mucho, si
empleamos como generador de las ondas un modelo senoidal (por simplificación) podemos
decir, que el movimiento es semejante al de una pequeña masa unida a un resorte, que se
mueve libremente después de recibir un impulso. Por tanto, la masa se mueve de forma
armónica alrededor de su punto de equilibrio. Al igual que el desplazamiento, la velocidad,
aceleración, fuerza, etc. y demás características mecánicas son también armónicas, y siguen
una función senoidal de la forma:
(1)
Donde: A es la amplitud máxima de la oscilación, es decir, el desplazamiento máximo de una
partícula desde su posición de equilibrio [longitud], f es la frecuencia [Hz] de la vibración y _ es
la fase en el instante inicial. El valor de la frecuencia puede variar entre 20Khz (usada para
aplicaciones de potencia en aire) hasta 100 MHz (usadas en microscopía ultrasónica). En
medicina se cubre el rango entre 1 MHz a 20 MHz En el caso de los ensayos no destructivos
(END), se suele trabajar 100Khz y 20 MHz, siendo las más frecuentes las comprendidas entre
1MHz y 10MHz.
En el extremo izquierdo de la Fig. 1 se observa el modelo de oscilador armónico ideal
(Sin pérdidas), en el centro la función senoidal que representa la ecu. (1) y en el extremo
izquierdo, la deformación de la estructura molecular del medio material excitado con s (t).
Más aún, se puede asumir que el cuerpo elástico está compuesto por partículas individuales,
unidas entre sí por fuerzas elásticas. La Fig. 1 muestra una imagen de estas partículas ligadas,
aunque en la realidad la distribución es tridimensional.
Supongamos que todas las partículas que se encuentran en el plano de la izquierda se excitan
simultáneamente, de manera que se produzca un movimiento de oscilación horizontal con la
misma amplitud y la misma frecuencia (frente de ondas).
Figura 1 - Modelo de un excitador de ondas elásticas
Si todas las partículas del material estuvieran unidas rígidamente, su movimiento sería
idéntico, coincidiendo en amplitud, frecuencia y fase. En cambio, al ser las uniones elásticas, el
movimiento requiere un tiempo para ser transmitido, y se produce un desfase en el
movimiento de planos consecutivos. La velocidad a la que se trasmite un frente de ondas a
través del material se le denomina velocidad del sonido. Este modelo de resorte no puede
aplicarse a gases y líquidos, cuyas partículas se pueden mover en libertad. Sin embargo, los
gases y líquidos, son capaces de transmitir perturbaciones de presión en forma de ondas
elásticas.
El tipo de onda ultrasónica que se utiliza en este proyecto es longitudinal ya que las
direcciones de la oscilación de las partículas (v) y de propagación del frente acústico (c) son
coincidentes (Fig. 2). Son también llamadas ondas de presión o compresión, ya que con ellas
aparecen esfuerzos de compresión y dilatación. Este es el único tipo de ondas que aparecen en
materiales gases o líquidos y, además, es el tipo de onda más usado para inspeccionar
materiales sólidos.
Figura 2 - Ondas Longitudinales
Parámetros de Interés
• Velocidad del sonido o velocidad acústica (c) [ms_1 ]: Es la velocidad de
propagación del frente acústico a través del material. Esta velocidad es una
característica del material y, en general, es constante para un material dado,
independientemente de la frecuencia de oscilación. En cambio, la velocidad del sonido
sufre ligeras variaciones con otras magnitudes físicas tales como la temperatura,
presión (en gases), etc. Como se verá más adelante es conveniente definir la C en
términos de longitud de onda y frecuencia,
(2)
• Velocidad instantánea (v) [ms_1 ]: Es la propia de la partícula en su movimiento
oscilatorio. v es la desviación máxima de la velocidad respecto a su valor de equilibrio.
• Presión acústica (p) [ Kg.m_2 ]:La presión entre las partículas es también oscilatoria
(dependiendo de la forma de la excitación), siendo inferior a la normal de equilibrio
cuando las partículas tienden a separarse, y superior a ésta cuando tienden a juntarse.
Se denomina amplitud de la presión acústica a la desviación máxima de la presión
relativa al valor de equilibrio. La mayoría de los sistemas de medida de ultrasonidos
miden este parámetro.
• Impedancia (Z) :La impedancia acústica es una medida de la resistencia que opone el
medio a la vibración de la onda. Si un medio posee una baja impedancia, sus partículas
vibrarán a gran velocidad ante una ligera perturbación – este es, por ejemplo, el caso
de los gases. Si por el contrario, la impedancia es elevada, el material que está
sometido a grandes fuerzas elásticas, requiere mayores presiones acústicas para
vibrar, por ejemplo, los aceros. Conviene advertir que la impedancia acústica se opone
a la vibración de las partículas, pero no a la propagación de la onda. Esto significa que
una vez que las partículas comienzan a vibrar, la onda acústica se propaga a la
velocidad de ese medio. De acuerdo a la teoría de la acústica, la impedancia acústica se
define como:
(3)
Donde: P es la presión acústica y V la velocidad con que se produce la variación de
presión. Acústico. Si en la expresión anterior se reemplaza P por su equivalente en
fuerza, definida.
La expresión anterior está representando a un modelo de un generador acústico
compuesto por un pistón que girando a una velocidad de rotación V ejerce una presión
P sobre una carga (acústica). Como observamos, P está representando el símil eléctrico
de la tensión y la V, el de la corriente. La Fig. 2.4 muestra el concepto de impedancia
acústica y su analogía con el sistema eléctrico. El pistón y el mecanismo de giro,
emulan a un generador ésta del principio de Newton:
Figura 3 - Impedancia Acústica
Expresando la masa en función de la densidad ρ, y operando, se obtiene:
Siendo _ la densidad del material y C la velocidad del sonido, indicando que esta
magnitud
Es una constante del material. Esta expresión es mucho más sintética y práctica de
emplear que el cociente expresado en la ecu. (2.2). Los medios con elevada
impedancia se denominan “acústicamente duros”, en contraste con los
“acústicamente blandos”.
Existen formulaciones que permiten calcular la velocidad acústica de los diversos tipos
de ondas a partir de las constantes elásticas de los materiales (módulo de Young (E) y
relación de Positrón (μ)1. Por nuestra parte, y con ánimo de simplificar, se dice que la
velocidad de transmisión de las ondas transversales es aproximadamente la mitad que
la de las ondas longitudinales. Por otro lado, las ondas superficiales se propagan a una
velocidad ligeramente inferior que la de las ondas transversales. La tabla I muestra los
valores de densidad, velocidad del sonido e impedancia acústica de alguno de los
materiales más comunes en aplicaciones industriales.
• Energía acústica (Ec): La propagación de una onda se caracteriza por el transporte
de energía y no de masa. Partiendo de la definición de energía cinética:
En la tabla (tab.1) se pueden observar los parámetros para el aire, ya que es el medio
involucrado en el sistema.
Tabla 1 - Parámetros de materiales varios
La presión acústica reflejada será de la misma amplitud, cualquiera que sea el lado sobre el
cual incide la onda. Ahora bien, si Z2 > Z1, la onda incidente y la reflejada tendrán la misma
fase, pero si Z2 < Z1 la onda de presión reflejada sufrirá un desfase de 180º. Por otro lado, la
onda de presión que atraviesa la interfaz tendrá la misma fase que la onda incidente, y su valor
varía de manera importante dependiendo el sentido en que se realice la transmisión, de forma
que si Z2> Z1, la presión de la onda reflejada será superior a la presión de la onda incidente y,
en cambio si Z2 < Z1 la onda de presión reflejada será de menor amplitud que la incidente.
En la tabla 2, se pueden apreciar Valores de densidad, velocidad del sonido de las ondas
longitudinales e impedancia acústica de algunos medios frecuentes.
En el proyecto se ha utilizado madera, cuyo coeficiente de reflexión de presión con el aire es:
Y el coeficiente de transmisión es:
Tal que:
Incidencia Oblicua a la Interfaz
Cuando una onda acústica pasa de una región a otra cercana con diferente impedancia
acústica, una parte de la de la intensidad acústica de la onda incidente, es reflejada sobre la
superficie límite entre las regiones y el resto continua como onda transmitida. La onda
reflejada sirve de indicador de la posición y forma de la interfaz, mientras que la porción
transmitida es un indicador de la profundidad de la región limitada por la interfaz. La figura 4
muestra el caso donde sólo existe una interfaz.
Figura 4 - Reflexión y transmisión en el medio
Como en este caso se trata de un material con alta impedancia, la mayor parte de la onda es
reflejada y muy poca es transmitida. Esta onda reflejada es la cual vamos a centrar nuestro
interés.
Métodos para la Emisión y Recepción
El método utilizado para la realización del sistema, es el llamado pulso ECO. En este caso, la
excitación del transductor emisor se realiza mediante un generador que genera pulsos muy
angostos (depende de la frecuencia de oscilación natural del transductor empleado, 42Khz en
este caso) y de amplitud 12volts. La recepción del eco se realiza por un transductor receptor
montado precisamente al lado del emisor. En la Fig. 5 se observa el concepto básico de esta
metodología.
Figura 5 - Pulso Eco incidencia Normal
El funcionamiento consiste en que, simultáneamente en ser excitado el transductor emisor, se
pone en funcionamiento un temporizador, y el sistema queda esperando la señal de eco.
Cuando esta es recibida por el transductor receptor (luego de ser acondicionada
analógicamente), el contador es detenido. El valor del temporizador dividido por 2 representa
la distancia al objeto o blanco.
Relación Física de las variables
Para realizar este análisis se retomará la cinemática Newtoniana, que explica el movimiento
rectilíneo uniforme. Si bien la onda mecánica presenta una dinámica particular, con esta
aproximación se pueden obtener resultados muy acertados. Considerando constante los
parámetros se expresa:
Aplicando a los parámetros en cuestión, resulta:
Observado esta ecuación, se puede notar que la velocidad del sonido, para el aire, es conocida
y la medición del tiempo es la variable que el microcontrolador PIC se encarga de medir. Una
vez obtenido este valor, matemáticamente se puede determinar la distancia hacia la columna,
cuyo valor es precisamente el que se requiere medir.
Medición de tiempo de tránsito.
Es necesario entender que sucede con el proceso de emisión y recepción, para ello, en la
Figura 6 se muestra la forma ideal de la medición de tiempo de transito (tt).
a- Representa el pulso de excitación del transductor emisor provisto por el generador de
pulsos. Además, este pulso activa un contador de tiempo (start).
b- La respuesta del transductor emisor ante su excitación. Representa la información
eléctrica que éste transforma en energía acústica y la envía al medio.
c- Es la energía acústica que el medio retorna al transductor receptor y que éste lo
convierten energía eléctrica. Es decir, es la señal que está presente en los terminales
de salida del transductor y que es amplificada para su tratamiento posterior. Se la
puede denominar como primera etapa de procesamiento analógico.
d- Representa la segunda etapa de procesamiento analógico y la primera de detección de
envolvente. La señal previamente amplificada se le extrae su valor medio y se la
rectifica (onda completa).
e- La señal rectificada se la ingresa a un filtro pasa bajos para eliminarle las componentes
de alta frecuencia (portadora). Es, por consiguiente, la tercera y última etapa de
procesamiento analógico y la segunda del proceso de extracción de envolvente.
Figura 6 - Ondas de pulso eco
f- Finalmente, la señal demodulada se ingresa a la entrada de un circuito detector de
cruce por cero. Cuando la salida de éste cambia de estado (flanco positivo o negativo),
el pulso que genera para el contador de tiempo. El valor del contador, dividido por dos
representa el tiempo de transito tt (también llamado tiempo de vuelo o flight time)
por medio del cual se puede determinar la distancia al objeto por medio de la Ecu. (4).
El proceso anterior se repite de nuevo en forma automática a través de una unidad de
control. Sin embargo como se dijo anteriormente, se trata sólo de un proceso ideal, ya que
existen una serie de problemas reales que no permiten la determinación práctica del tt, los
que se detallan a continuación.
Problemas reales del método Pulso-Eco
• Existencia de la Zona Ciega o Zona Muerta (deadzone) del Transductor Receptor.
La naturaleza de la zona ciega (zc, zm) en transductores emisor-receptor separados por
acoplamiento mecánico a través del montaje y acústico como consecuencia de los lóbulos
laterales de ambos, se transmite la excitación del emisor al receptor. La excitación del
emisor es absorbida por el receptor y amplificada por el pre-amplificador de entrada al
receptor de ultrasonidos.
Figura 7 - Zona muerta
De todas formas, sea cual fuere el caso, debido a la alta ganancia del pre-amplificador de
entrada (como mínimo 50 dB), el sistema de medición se satura.
En la Figura 7c. Se observa este efecto. Esta saturación se propaga a través de todas las
etapas del procesamiento analógico (Fig. 7d y 7e). Por consiguiente, el detector de cruce
por cero detecta el comienzo de la zc y para al contador, dando este un valor de tt
prácticamente nulo, tal como se observa en la Fig. 7f.
• Existencia de Ruido
El medio por el que se transmite la señal de ultrasonido (canal) es por lo general ruidoso
debido a: gradientes dinámicos de temperatura, corrientes variables de aire y
perturbaciones en naturaleza mecánica de frecuencias similares a la transmitida por el
sistema y que no pueden ser filtradas por el filtro pasa banda incluido en la primer etapa
amplificadora .Por otro lado, también hay que tener en cuenta el ruido propio del pre-
amplificador de entrada.
Estas dos fuentes de ruido hacen que el detector de cruce por cero cambie de estado
cuando en realidad no hay señal de eco, originando que el contador pare la cuenta antes
de lo debido. En la Fig. 4.7f se pone de manifiesto este problema. Con ttr se designa al
valor del tt erróneo causado por las fuentes de ruido.
Para soslayar estos inconvenientes, existen una serie de soluciones que permiten detectar
el instante real de arribo del eco.
Soluciones
Para el caso del proyecto el método utilizado es Detección por umbral, para filtrar el ruido
presente en la señal.
Se define por software un valor de tensión tal que la amplitud de la señal sea mayor.
Recién en este punto se considera como una señal valida, siempre suponiendo que la
amplitud de la señal es mayor que la amplitud del ruido.
Para eliminar el eco de transmisión que produce el transductor, se utiliza una ventana
temporal de inactividad en el microcontrolador, cuya duración fue medida
experimentalmente con un valor aproximadamente cercano a 250µs.
En la figura 8 se puede observar las 2 soluciones.
Figura 8 - Umbral y Ventana temporal
Realización real del sistema Diagrama en Bloques del sistema
Figura 9 - Diagrama en Bloques
En la Figura 9 es posible apreciar el diagrama en bloques del sistema completo.
El microcontrolador (PIC16F88), realiza diversas tareas en el sistema. Es el encargado de
generar los pulsos que excitan al transductor luego de una correspondiente amplificación
(Driver).
Una vez que la señal rebota en el muro, el encargado de detectarla es el transductor receptor,
pero como esta señal tiene muy baja relación señal a ruido, es necesario filtrar con una muy
pequeña banda de paso, y además amplificar la misma, a fines de poder ser procesada con el
microcontrolador.
Para la interfaz con el entorno, se utiliza una PC con puerco serie RS-232, donde se presenta
las variaciones positivas y negativas del muro oscilando.
Filtro Pasa banda
El primer filtro de recepción utilizado es de 4to
orden, Butterworth, con estructura Sallen-Key,
cuya frecuencia central está ubicada en 42Khz. El filtro es de banda angosta, con un ancho de
banda de solamente 6Khz, y una ganancia de 500. El circuito real se implementó con
amplificadores LM318, debido a su excelente relación ganancia*ancho de banda.
Con el programa FilterPro, se simuló el circuito, y se obtuvo la respuesta en frecuencia del
mismo. En la figura 10 se puede observar el circuito eléctrico del filtro de cuarto orden, y su
correspondiente respuesta en frecuencia en la figura 11.
Figura 10 - Circuito y especificaciones de un filtro de 4to orden
Figura 11 - Respuesta en frecuencia de un filtro de 4to orden
Filtro Pasa banda n° 2
Para obtener una señal más limpia y confiable, se agregó una segunda etapa de filtrado pasa
banda, con la misma frecuencia central, esta vez implementado con un filtro de segundo orden
de Butterworth. Se detallan a continuación el circuito esquemático, y la respuesta en
frecuencia del filtro, obtenida en el software FilterPro.
Figura 12 - Filtro pasa banda nº 2
Figura 13-Respuesta en frecuencia
Filtro Pasa bajo
Se agregó a continuación un filtro pasa bajo, con frecuencia de corte de 42 KHz, con la función
de mejorar la calidad de la señal al eliminar ruidos de alta frecuencia, en conjunto con un
diodo en función de demodulador. El circuito esquemático se detalla a continuación:
Figura 14-Filtro Pasa bajo
Amplificación
Como última etapa de procesamiento de señal, se agregó un amplificador no inversor de
segundo orden, con ganancia regulable, con el objetivo de obtener amplificación extra de la
señal, regulable en caso de que sea necesario. El mismo fue implementado con un
amplificador LM318. El circuito esquemático se detalle en (FIGURA). La ganancia de este
amplificador está dada por: ΔV= (1+R2/R1).
Figura 15-Amplificador
Módulo RS 232
Muchos Microcontroladores poseen una interfaz UART para comunicación serial asincrónica,
tipo RS-232, que en un PC se denomina puerto “COM”. Si bien los Microcontroladores poseen
hardware para generar la secuencia de bits en los tiempos correctos, no son capaces de
generar el voltaje especificado por el estándar RS-232, por lo cual requieren de un chip externo
que haga esta conversión de voltajes.
Existe un circuito integrado muy popular para hacer la conversión de lógica TTL de 5V a lógica
RS-232 llamado MAX232. El chip incluye inversores, ya que un 0 lógico se transforma en un
nivel alto en el lado RS-232 y vice versa. Además, el chip es alimentado con una fuente simple
de 5 volts, y a través de la conexión externa de 4 condensadores electrolíticos de 1 ó 10[µF]
(dependiendo del fabricante del chip) genera el voltaje necesario para la transmisión RS-232.
Cada chip posee 2 drivers y 2 receptores, con lo cual pueden conectarse las 2 señales de datos
y, de ser necesario, una señal de control de entrada y otra de salida.
Este módulo fue diseñado para poder conectar el microcontrolador a cualquier equipo que
utilice la interfaz RS-232 por medio de un cable serial con un conector DB9 común.
En la siguiente imagen se aprecia una foto del circuito de adaptación de nivel RS-232,
implementado en un PCB para tal fin.
Figura 16-Módulo RS-232
En este proyecto se utilizó este módulo para conectarlo a una PC, a través de su
correspondiente cable (cable RS 232 Null-Modem), y por medio del programa HyperTerminal
fueron mostrados los datos.
Figura 17-Software Hyperterminal
Desarrollo del software
En este proyecto se trabajó con el microcontrolador PIC 16F88 debido a las capacidades que
tiene el mismo y por sobre todo por la disponibilidad que había en el mercado.
Es ideal para principiantes, debido a su arquitectura de 8 bits, 18 pines, y un set de
instrucciones RISC muy amigable para memorizar y fácil de entender. Sus características
principales son:
Características de baja potencia:
• Modos de manejo de energía:
- Ejecución primaria: oscilador RC, de 76 μA, 1 MHz, 2V
- RC_RUN: 7 μA, 31, 25 kHz, 2V
- SEC_RUN: 9 μA, 32 kHz, 2V
- Sleep: 0,1μA, 2V
• Oscilador Timer1: 1.8 μA, 32 kHz, 2V
• Watchdog Timer: 2,2μA, 2V
• Dos velocidades Oscilador Start-up.
Osciladores:
• Tres modos de Cristal:
- LP, XT, SA: hasta 20 MHz
• Dos modos de RC externos
• Un modo de reloj externo:
- ECIO: hasta 20 MHz
• Bloque oscilador interno:
- 8 frecuencias seleccionables por el usuario: 31 KHz, 125 KHz, 250 KHz, 500 KHz, 1 MHz, 2
MHz, 4 MHz, 8 MHz
Características de los periféricos:
•Módulo de Captura, Comparación, PWM (CCP):
- La captura es de 16-bit, máx. Resolución de 12,5 ns
- Comparador de 16-bit, máx. Resolución de 200 ns
- PWM Max. Resolución de 10-bit
• 10-bit, 7-canalesconversor analógico/digital.
• Puerto serie síncrono (SSP) con SPI ™(Master / Slave) y I2C ™ (Esclavo)
Transmisor Receptor Asíncrono (AUSART / SCI) con detección de direcciones de 9-bit:
- RS-232 operación utilizando oscilador interno (sin cristal externo requerido)
• Módulo Comparador Dual Analógico:
-Voltaje de referencia programable en el chip.
- Entrada programable para multiplexación de dispositivo de entrada y referencia de tensión
interna.
- Las salidas del comparador son accesibles desde el exterior.
Características especiales: Micro-controladores
• 100.000 ciclos de borrado / escritura de memoria de programa.
• 1.000.000 de ciclos típicos de escritura /borrado de memoria EEPROM.
• Retención de datos EEPROM:> 40 años
• In-Circuit Serial Programming ™ (ICSP ™) a través de dos pines.
• Procesador de lectura / escritura a la memoria de programa.
• Low-Voltage Programming.
•Depuración In-Circuit a través de dos pines.
• Watch Dog Timer (WDT):
- Período programable de 1 ms a 268S
• Amplio rango de tensión: 2,0 V a 5,5 V
•Memoria Flash de programa (4K x 14).
•Memoria EEPROM de datos (256 x 8).
•Memoria RAM (368 registros x 8).
De las características antes mencionadas las más utilizadas fueron:
Las salidas digitales de algunos pines, utilizadas para generar los pulsos necesarios para
disparar el transductor ultrasónico. El principal inconveniente fue el valor de la tensión de
salida, debido a que su máximo valor de tensión es de 5 Volt (tensión de la fuente de
alimentación para el micro-controlador).La misma tuvo que amplificarse a una tensión de 12
Volt (debido a que los transductores ultrasónicos funcionan con una tensión de ese valor),
mediante una electrónica adicional. La misma constaba de un transistor de juntura N-P-N (BC
338) disparado en su base por la salida del micro-controlador para hacer uso del mismo en las
zonas de corte y saturación. Este transistor funciona con una alimentación de 12 Volt, para que
cuando trabajase en las zonas antes mencionadas pudiera enviar una señal que pudiera ser
captada por una compuerta NAND (CD 4011).
Otra característica que se utilizó fue la del oscilador externo debido a que se necesitaba una
gran precisión en el tiempo de disparo de los transductores. El cristal que se utilizó fue de 10
MHz, el cual fue conectado entre los pines 15 y 16 del micro-controlador, con sus respectivos
capacitares a VCC y GND, para tener un funcionamiento aceptable del oscilador.
Una de las características más importantes es que en uno de los pines de este micro-
controlador se encuentra un modo de funcionamiento como un disparador de Schmitt, lo cual
nos fue muy útil para la captura de las señales obtenidas.
Y por último, se utilizó la conexión a través del RS 232 por medio de la cual nos permite una
interfaz entre el micro-controlador y la computadora, para mostrar todo lo realizado en el
experimento.
Una vez asignados los pines se procedió a instalar el programa PIC-C, se aprendió a usar este
programa y se comenzó a desarrollar el programa del microcontrolador en lenguaje C.
Figura 18-Compilador PIC-C
Cada vez que se necesitó grabar el integrado del micro-controlador se hizo por medio del
programa Pickit 2, el cual es recomendado por el fabricante. El archivo .hex es generado por el
mismo programa PIC-C una vez que se compila el trabajo.
Figura 19-Software Pickit2
Inicialmente se grababa el integrado por medio del zócalo ZIF y el programador se conectaba a
la PC. A causa de algunos problemas explicados anteriormente, se decidió modificar el PCB y
realizar el grabado por medio del método ICSP (In Circuit Serial Programming). Este modo
permite grabar el micro-controlador en la plaqueta sin desmontar el CHIP. Eso se hizo con
todas las recomendaciones especificadas por el fabricante.
Figura 20-Placa grabadora
En el Anexo 1 se encuentra el código del programa desarrollado y en el Anexo 2 se encuentra
el archivo de algunas configuraciones necesarias para el correcto funcionamiento del
microcontrolador.
Diagrama de flujo del programa
Pruebas y ajustes del circuito
Una vez implementado el circuito completo en el PCB realizado para tal fin, se procedió a
realizar pruebas y mediciones en el circuito, en las distintas etapas de envío de señales y
amplificación, para realizar los ajustes correspondientes, tanto en los filtros, como en el
programa del microcontrolador. Se detallan a continuación algunas fotografías tomadas
durante este proceso.
La siguiente imagen es una foto de un osciloscopio durante las pruebas de filtrado y regulación
ganancia del amplificador. En la misma se observa, en la señal superior, los pulsos enviados por
el microcontrolador. En la señal inferior, en la parte izquierda se puede ver el pulso de
transmisión, captado por vibración por el transductor de recepción, y en la parte derecha, el
pulso-eco recibido luego de haber sido reflejado en el objeto de medición.
Figura 21-Observación de ecos en el osciloscopio
A continuación se observa el circuito final implementado en PCB, insertado en la maqueta de
pruebas del circuito, en conjunto con el módulo RS-232.
Figura 22-Circuito montado en la maqueta
Finalmente, se puede observar la maqueta de ensayos completa, con las placas, los
transductores, y un objeto que simula una pared oscilante.
Figura 23-Maqueta completa
Una vez que el módulo completo quedó funcionando, se realizó una prueba, se capturaron los
datos de la misma, y se graficaron utilizando el software MatLab. La imagen de la misma se
detalla a continuación. Se puede observar la potencialidad que tiene este sistema para la
aplicación para la que fue diseñado.
Figura 24-Captura y gráfica de datos
Problemas y soluciones
Los problemas que se tuvieron fueron principalmente en la parte de programación del
microcontrolador debido al incorrecto uso de algunas instrucciones, la falta de las inclusiones
de algunas librerías y las ineficientes asignaciones para algunos parámetros del PIC 16F88. Las
soluciones a estos problemas fueron resueltas gracias a varios foros observados en internet y
ayudas proporcionadas por gente especialista en el campo y ayudas obtenidas de ejemplos.
Con respecto al modulo RS-232 en primera instancia fue correcto su funcionamiento
(realización en experimentor), pero una vez diseñado en PCB dejo de funcionar. La solución
que se le dio a este problema fue el rediseño de la placa y se observo la conexión incorrecta de
algunas pistas.
Los filtros no sufrieron ningún problema hasta que se decidió el cambio de los transductores,
de ahí se tuvo que volver a re calcular los mismos pero no causó mayores problemas más que
el cálculo de los componentes.
Con respecto al amplificador, el problema que se tuvo fue que el amplificador primeramente
utilizado tenía que ser alimentado con tensiones de ± 12 Volt, lo cual causo el problema de
quemar un pin del microcontrolador; esto se solucionó con la implementación de un
amplificador de alimentación asimétrica y con tensión máxima de 5 Volt (la máxima tensión
que puede soportar cualquier entrada del microcontrolador) y haciendo referencia al pin del
CHIP, la captura de datos se realizo por otro pin del integrado.
Por último uno de los mayores problemas que afectaba en gran parte a todo el sistema fue el
ruido introducido por la fuente de alimentación, la solución a este grave problema fue la
implementación de filtros (capacitores) ya sea a la entrada de alimentación de todo el circuito
y a cada una de las entradas de alimentación de cada uno de los integrados utilizados.
Conclusiones
Luego de algunos meses de trabajo, y una vez que el sistema funciona de manera completa, se
puede concluir que el método de pulso-eco en ultrasonido, tiene una gran potencialidad, y
permite realizar mediciones de distancias cortas en el aire con una precisión muy aceptable. En
la aplicación específica de este proyecto se buscó medir variaciones de distancia en un rango
acotado, con módulos de ultrasonido que son apropiados para tal fin. En caso de que se
requiera la medición de distancias mayores, existen en el mercado módulos más adecuados
para realizarlo.
En cuanto al microcontrolador, se concluye que es de fundamental importancia poseer
conocimientos generales de programación de Microcontroladores. Los mismos tienen
múltiples funciones y aplicaciones. En nuestro sistema, el microcontrolador realiza varias
tareas de fundamental importancia para el funcionamiento del mismo. Es importante además
elegir de manera adecuada el µC que mejor se adapte a la aplicación específica para la que se
lo va a usar, ya que existe en el mercado una oferta muy grande. En nuestro proyecto, el µC
posee todas las funciones que eran necesarias, y posee además un tamaño adecuado.
Anexo 1
Programa principal del microcontrolador
#include "Ultra.h" #include "float.h" #define SCHMITT PIN_A4 #define GENA PIN_A1 #use STANDARD_IO(A) #use FAST_IO(B) //------------------------------------------------- --------------- //Declaración de variables globales int1 band=0; //bandera activación salida int1 band2=0; //bandera tecla presionada int8 tecla; //tecla presionada //------------------------------------------------- --------------- // Interrupción de tecla presionada //------------------------------------------------- --------------- #INT_RDA voidRDA_isr() { tecla = getc(); putc(tecla); band2=1; } //------------------------------------------------- --------------- // Subrutina para elección //------------------------------------------------- --------------- voidteclanueva () { switch (tecla) { case 0x45: band=1; break; case 0x44: band=0; break; default: printf("COMANDO INVALIDO \n \r" ); break;} } //------------------------------------------------- --------------- // Programa principal //------------------------------------------------- --------------- void main() { //------------------------------------------------- --------------- // Configuraciones del microcontrolador //------------------------------------------------- --------------- enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL); setup_adc_ports(NO_ANALOGS|VSS_VDD); setup_adc(ADC_CLOCK_DIV_2); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); setup_timer_2(T2_DISABLED,0,1); setup_ccp1(CCP_OFF); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); set_tris_A(0b11111100); // puerto A entradas y s alidas SET_TRIS_B(0x04); // pin B4 como entrad a (disp. Schmitt) //------------------------------------------------- --------------- // Variables locales //------------------------------------------------- --------------- unsigned int1 conv=0; //Onda ingresada por el co nversor AD unsigned int32 cont=0; unsigned int32 cont1=0; unsigned int32 suma=0; unsignedintcontsuma=0; floatprom=0; float distancia=0; //Distancia en centímetros del objeto floatdif=0; //Diferencia entre distanc ia y cero floatmaxdif=0; //Máxima diferencia de distancia //float cero=0; //Distancia cero de referen cia //------------------------------------------------- --------------- // Comienzo //------------------------------------------------- --------------- printf("ULTRASONIDO 2012. \n \r"); printf("Presione E para empezar la medicion y D par a detenerla. \n \r "); while(1){ if (band2==1){ teclanueva(); band2=0; } if (band==1){ cont=0; conv=0; output_high(GENA); //Envía un pulso de 20 us p or el traductor delay_us(20); output_low(GENA); delay_us(250); while ((input(SCHMITT)==0)& (cont<=1000)){ conv=input(SCHMITT); cont=cont+1; } if (conv==1){ cont1=cont+272;
suma=cont1+suma; prom=suma/2; contsuma=contsuma+1; } if (contsuma==2){ distancia=prom*343/20000; //Transforma a cm dif=(distancia-5.01)*10; // Cálculo de la diferen cia en milímetros contsuma=0; if (abs(dif)>abs(maxdif)){ maxdif=dif; } printf("Distancia actual: %f cm., Diferencia máxima : %f mm. \r",distancia,maxdif); //Muestra por pantalla la di stancia del objeto*/ suma=0; } delay_us(100); } } //fin de while } // fin de main
Anexo 2 Configuraciones del microcontrolador
#include <16F88.h> #device adc=8 #FUSES NOWDT //No Watch Dog Time r #FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD) #FUSES PUT //Power Up Timer #FUSES NOMCLR //Master Clear pin disabled #FUSES NOBROWNOUT //No brownout reset #FUSES NOLVP //No low voltage pr gming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #FUSES NOWRT //Program memory no t write protected #FUSES NODEBUG //No Debug mode for ICD #FUSES NOPROTECT //Code not protecte d from reading #FUSES FCMEN //Fail-safe clock m onitor enabled #FUSES IESO //Internal External Switch Over mode enabled #use delay(clock=10000000) #use rs232(baud=9600,parity=N,xmit=PIN_B5,rcv=PIN_B 2,bits=8)