Brújula Digital mediante sensores magnetoresistores.

Hola, soy nuevo por el foro y me gustaría, no obstante que me ayudárais.

Se que en el foro existe un tema parecido al mío, pero lo he leído y no he encontrado las soluciones que necesito. Mi problema es la realización de un trabajo para una asignatura de la carrera, en la que construiríamos un dispositivo que mediante sensores reconoce la dirección del norte y la marca mediante una linea de leds y mediante un display de 3 dígitos.

Todo esto se debe realizar con un microcontrolador PIC16F876A y dos sensores HMC1021Z magnetoresistivos de la marca Honeywell. Además de los decodificadores y displays oportunos(pero esto creo que sí seríamos capaces de hacerlo).

Tengo entendido que los sensores, poniendo uno perpendicular respecto al otro, y sabiendo que cuando marcan el máximo es cuando el campo de la tierra está paralelo a él, nos daría uno la proyección sobre su eje del vector campo de la tierra y el otro la otra proyección, de forma que de uno sacaríamos el seno y del otro el coseno del ángulo, teniendo que realizar con el PIC la operación de dividir y sacar el ángulo mediante la arcotangente.

Pero la verdad es que nunca hemos construido nada digital y aunque me he releido la Data Sheet de los sensores no consigo saber cómo funciona, ni cómo habría que conectarlo al PIC, ni si la salida de los sensores son analógicas y luego hay que convertirlas (supongo que sí), ni cómo hay que calibrarlo, (Tiene patas set y reset supongo que serán para medir, y para quedarlo en espera).

Por ello, os pido que me ayudéis en lo posible. También adjunto la Data Sheet de los sensores. Por otra parte, no se si haría falta alguna amplificación de señales, por ejemplo para iluminar los leds mediante algunos amplificador operacionales.

Muchas Gracias y

Saludos.
 

Adjuntos

  • 6719_662.pdf
    627.3 KB · Visitas: 223
Muy interesante el sensor, parece muy apropiado para tu aplicación.

Por lo que ví de la hoja de datos lo que está metido dentro del chip es un puente de resistencias. Por lo tanto, vas a necesitar hacer una etapa de adaptación (o acondicionamiento) de señal entre el sensor (puente de resistencias) y el PIC.

Leyendo a la primera la hoja de datos, se ve que el sensor funciona en base a la alineación de dominios magnéticos de un material base (permalloy) con el campo magnético a medir. En efecto como mencionás uno sabría la dirección del campo magnético buscando la máxima variación de resistencia.
A la salida del puente vas a tener una tensión que varía en función de esa resistencia.

En cuanto a las patas set/reset, lo que dice la hoja de datos es que al sensor lo afectan los campos magnéticos fuertes, que hacen que los dominios magnéticos queden orientados al azar con lo que se pierde señal de salida. Por eso es necesario volver a alinear esos dominios aplicando un corriente (que generará un campo magnético) "fuerte" para que todos los dominios queden apuntando de vuelta hacia el mismo lugar. Dependiendo del sentido de circulación de esa corriente los dominios quedará alineados en una dirección o en la contraria.

En cuanto al offset, al parecer el puente de resistencias del sensor no viene perfecto de fábrica (las 4 resistencias iguales sin señal). Eso genera que la señal de salida tenga un offset. Pero eso no supone un problema porque se puede compensar justamente con las entradas de offset del sensor.
Si vas a usar un microcontrolador ni te preocupes por eso, lo podés compensar por firmware.
También habla de que puede ser utilizado para cancelar la distorsión generada en el campo a medir por objetos cercanos (ferromagnéticos: hierro, niquel, acero...), pero es igualmente un valor fijo en función del emplazamiento del sensor, por lo tanto también se podría compensar por software.

Lo que sí es interesante de las patas de offset es que se puede hacer un sistema de medición de lazo cerrado. La idea es meter un corriente controlada (por el sistema) por esos terminales, de tal manera de tener a la salida una tensión 0. A la salida de la etapa de acondicionamiento, a la que se le puede dar una ganancia alta y de esta manera tener una mejor resolución, y todas las ventajas que tiene un sistema de lazo cerrado respecto de uno de lazo abierto.

También de auto-calibración.... bueno, no voy a seguir traduciendo la hoja de datos, para entenderla te recomiendo darle una buena leída a los siguientes temas: 1)Puente de Wheatstone; 2) Materiales magnéticos (para entender como funciona); 3) Materiales magneto-resistivos; 4) Acondicionamiento de señal de un puente de resistencias.

Después si tenés alguna duda en particular lo vemos, pero dominando esos temas no deberías tener problemas en entender y aplicar la información de la hoja de datos.

Saludos
 
En primer lugar, perdón Ardogan por no haber contestado antes para actualizar mi conocimiento con respecto a este trabajo que me ocupa.

Muchas gracias por tu respuesta de gran calidad. Se nota que te lo has leído de "cabo a rabo" y lo has entendido todo.

Ya he comprendido "casi todo" el funcionamiento del sensor que comentas. Lo de la utilización del offset para realizar un circuito a bucle cerrado (con realimentación) no lo había entendido bien, pero creo que no lo voy a utilizar para facilitar un poco las cosas. Creo que sin realimentación y sin corrección de offset en el aparato me podrá ir bien. Lo hemos comentado con el profesor y nos ha sugerido que hagamos el circuito de ejemplo de la Data Sheet que aparece en pag.12 fig.19 para el set/reset y para la amplificación de la salida. Hemos pensado, como es una aplicación académica, que sólo realicemos un set mediante un pulsador (sustituyendo al interruptor de la figura) cuando deseemos asegurarnos la medida (por si ha habido perturbación de dominios magnéticos) y luego olvidarnos del set/reset durante el funcionamiento, si nos hace falta pues le damos al pulsador y listo.

Por otra parte sigo teniendo dudas. En el circuito de amplificación, a la salida se supone que tendremos un terminal que dará la tensión de salida amplificada del sensor con respecto a tierra. Pero, para la entrada en las patas del conversor A/D del PIC hay dos patas: una que es Vref- y otra Vref+ creo que es para poner el límite inferior y superior de las tensiones que van a entrar y así poder ajustarse a ese rango, pero en nuestro caso, ¿tendríamos que poner Vref- a tierra y Vref+ a la salida amplificada del sensor?
Y si fuera así, ¿el sensor siempre entrega tensiones positivas con este circuito de amplificación incluso cuando se pone en todas direcciones con respecto al campo de la tierra?

Otra duda es que ¿Cómo sabemos cuánto hay que amplificar la señal del sensor para entrar en el A/D del PIC? Creo que esto se podría hacer modificando la resistencia del OPAMP que aparece en fig.19, no?

Es que nos hemos leído ya lo del PIC (es un PIC16F877A) y no sabemos bien cómo habría que entrar la señal en el A/D.

Y la última duda está incluida en el documento adjunto.

Por otra parte, como tenemos que hacerlo muy deprisa y la exposición del trabajo es antes de Navidades, ¿conoces algún tutorial en español para P-cad (programa para esquematizar circuitos digitales y diseñar circuitos impresos) ? Si lo tienes por favor mándamelo. Es que no encuentro por ningun lado y no sé como usar este programa.

Muchas gracias por tu atención. Te iré informaciónrmando si avanzamos en algo con respecto a este trabajo.

Saludos
 

Adjuntos

  • esquema_para_duda_125.doc
    50 KB · Visitas: 106
Por otra parte sigo teniendo dudas. En el circuito de amplificación, a la salida se supone que tendremos un terminal que dará la tensión de salida amplificada del sensor con respecto a tierra. Pero, para la entrada en las patas del conversor A/D del PIC hay dos patas: una que es Vref- y otra Vref+ creo que es para poner el límite inferior y superior de las tensiones que van a entrar y así poder ajustarse a ese rango, pero en nuestro caso, ¿tendríamos que poner Vref- a tierra y Vref+ a la salida amplificada del sensor?

Las patas Vref- y Vref+ del pic van directamente al conversor AD de aproximaciones sucesivas del PIC. Son una opción, no es obligatorio usar esos pines, pueden quedar libres para ser utilizadas como entradas/salidas.
El conversor AD puede usar como referencia para hacer la conversión la alimentación del PIC, o las niveles de tensión presentes en Vref- y Vref+.

Se usan cuando se quiere aprovechar todo el rango de conversión (todos los bits) del conversor AD. Por ejemplo, si uno quiere medir una tensión entre 1.5 volts y 4 volts, y se usa la alimentación (+5V y 0 V) del pic para las tensiones de referencia del conversor AD, se está aprovechando solamente la mitad del rango de entrada del conversor (4 - 1.5 = 2.5V, cuando el conversor puede medir entre 0 y 5V). En ese caso si es necesario aprovechar todo el rango, se puede configurar el conversor para que tome las referencias de tensión de los pines Vref+ y Vref-, y poner en Vref- una tensión de 1.5V y en Vref+ una tensión de +4V, y ahí si se aprovecha todo el rango porque el conversor mediría en el rango 1.5V a 4V.

Y si fuera así, ¿el sensor siempre entrega tensiones positivas con este circuito de amplificación incluso cuando se pone en todas direcciones con respecto al campo de la tierra?

A la salida del puente se tienen tensiones positivas o negativas. Luego con el amplificador lo que se hace es por un lado convertir esa salida diferencial en una salida single-ended (referida a masa/tierra), y por otro lado darle ganancia.
En la figura que mencionaste (figura 19 de la hoja de datos del sensor) usan un AD623 que es un amplificador de instrumentación (click en el link para ver la hoja de datos). Lee la hoja de datos para ver los valores de tensión que te va a dar a la salida.

Otra duda es que ¿Cómo sabemos cuánto hay que amplificar la señal del sensor para entrar en el A/D del PIC? Creo que esto se podría hacer modificando la resistencia del OPAMP que aparece en fig.19, no?

Cuidado que no es un op-amp, es un amplificador de instrumentación.
En cuanto a la ganancia, bueno, en la hoja de datos del sensor dice que la tensión de salida del puente varía 1mV/V/gauss (valor típico, página 3 del pdf ->sensitivity). El V dividiendo es para referenciarlo respecto de la tensión de alimentación del sensor (del puente bah). Si alimentas con 5V vas a tener 5mV/gauss y si alimentas con 12 tendrás 12mV/gauss. Aparte a esa salida hay que sumarle el offset.

Sería importante usar los terminales de offset del sensor para tratar de minimizar el offset a la salida. Pensa que la tensión de salida se amplifica x500 (circuito de la figura 19). Siendo que los valores de offset están entre -10 y 11.25 mV, tendrías a la salida una tensión de 500 x 10mV= 5V -> la salida del amplificador de instrumenación va a saturar y no vas a medir nada.

Volviendo al tema de saber la ganancia, supongamos que alimentamos con +5V, la salida del puente sería 5mV/gauss. En la hoja de datos del sensor, indica que el rango de campos que puede medir está entre -6 y + 6 gauss. Eso daría a la salida del puente, si se anula el offset, tensiones entre -30mV y +30mV.
Luego si queremos llevar ese rango de tensiones (60mV) a 0 a 5V, la ganancia necesaria sería 5/0.06 = 83.3; y el AD623 debería meter un offset de (30 * 83.3 = 2.5V).

No sé en que rango estará el campo magnético terrestre, por ahí no interesa medir en todo el rango de -6 a +6 gauss. En vez de -6 a +6 gauss tendrías que poner el rango que te interesa medir y recalcular la ganancia.

Por otra parte, como tenemos que hacerlo muy deprisa y la exposición del trabajo es antes de Navidades, ¿conoces algún tutorial en español para P-cad (programa para esquematizar circuitos digitales y diseñar circuitos impresos) ? Si lo tienes por favor mándamelo. Es que no encuentro por ningun lado y no sé como usar este programa.

Desconozco ese programa, es la primera vez que lo escucho.

Respecto a lo del doc (se quiere sacar tan alfa = sen alfa / cos alfa pero se tiene c*sen alfa + d y a*sen alfa +b). Los offset vas a precisar anularlos para que no sature el instrumentador de instrumentación. Tratándose de una medición de contínua no está la chance de poner un capacitor serie de desacoplo, así que vas a tener que usar la compensación de offset (por lo que yo sé, por ahí alguien del foro con más experiencia sabe hacerlo, puede haber otros circuitos acondicionadores de señal que solucionen eso).
Por otro lado el offset puede cambiar con la temperatura (0.001% / °C según hoja de datos, parámetro Tempco), hay que ver si eso puede llegar a ser un problema.
Interesante lo de la página 11 del pdf de la hoja de datos del sensor, ahí primero toma una lectura después de aplicar un pulso de set (dominios del sensor orientados en una dirección) y luego otra lectura al aplicar un pulso de reset (dominios orientados en la dirección contraria). El offset será el promedio de esas dos lecturas, para cualquier temperatura.
Está esta nota de aplicación: http://www.ssec.honeywell.com/magnetic/datasheets/an212.pdf (hay más en http://www.ssec.honeywell.com/magnetic/datasheets.html). Esta nota de aplicación habla exactamente de tu aplicación:

http://www.ssec.honeywell.com/magnetic/datasheets/an214.pdf

No las leí, fijate si con lo que está ahí te las arreglás.
 
buenas soy nuevo en el foro, estudio ing. electronica y tengo que presentar un tp final que es una brujula y utilizo 2 sensores KMZ10A, pero no puedo amplificar la señal me gustri que me ayun para el operacional, gracias
 
Atrás
Arriba