Sie sind auf Seite 1von 5

BARMETRO Y ALTMETRO DIGITAL CON EL CENSOR

MOTOROLA MPX4115

Introduccin.
El mtodo ms habitual para determinar la altitud es por el uso de la presin baromtrica. Sin
embargo, no se hace tan fcilmente. La relacin de altitud-presin no es lineal, es en realidad
bastante compleja y depende de varios factores, incluso de la temperatura y la humedad del aire. Esta
es la ecuacin para calcular la altitud:
Altitud = (10 ^ (Log (P/P_0) / 5,2558797) -1) / -6,8755856 * 10 ^ -6.
Donde P es la presin a una altura desconocida, y P_0 es la presin a nivel del mar (cero metros =
1013 milibares en condiciones normales). P y P_0 puede expresarse en cualquier unidad, ya que se
calculan como relacin. Pero que no nos asuste este "despliegue" de matemticas.
.

Este sensor funciona en un rango desde 1.151 milibares hasta 0.15 milibares. O sea que funciona
desde unas decenas de metros mas abajo del nivel del mar (ojo:no debajo del mar :-)),suponiendo
que el nivel del mar est a 1013 milibares, hasta miles de metros de altura. Y su salida puede variar
desde 0.2 volts. a 4.8 volts por lo que es ideal para atacar el conversor A/D de cualquier
microcontrolador, como el BX-24 en mi caso.
Esta aplicacin ser un altmetro TERRESTRE, para montar en un coche..Por lo tanto en este caso
no se requiere un rango de 0 a miles de metros de altura, si fuera para ir en un globo, ultraligero etc
entonces la cosa cambiara. Ganamos algo importante haciendo que trabaje en un rango limitado de
0 a 2000 metros: precisin.
Porqu? Si tenemos un conversor A/D de 10 bits ,el rango de medida est limitado de 0 a 1023
puntos.Podramos hacer con esto un altmetro que mida por. ejm. de 0 a 10.000 mts, por supuesto,
pero no nos quedara ms remedio que tener una resolucin de unos10 metros por punto. Esto
significa que el display cambiar bruscamente de 10 a 20 metros, y a 30 metros etc, sin termino
medio. Pero analicemos cuantas veces cruzaremos un puerto de montaa a 10.000 ,8.000,5.000,o
incluso 2.500 mts de altura? seguramente nunca,al menos en la Pennsula Ibrica. Yo ,que me la he
recorrido de Tarifa a Cabo Peas y de Finisterre a Cabo Creus, solo he estado en coche a ms de
2.400 mts en el Port de Envalira, (Pirineos, frontera de Andorra con Francia)
Por este motivo mi altmetro est diseado para un rango desde unos 1030 milibares (unos -20
metros) hasta 768 milibares (unos 2.300 metros). Y siempre aado "..unos" porque como he dicho la
relacion milibares-metros no es exacta: depende de varios factores como el tiempo atmosfrico y la
temperatura del aire. Despues veremos como corregirlos.
Quedamos que vmos a medir hasta 2300 metros, como tengo un conversor A/D de 1023 puntos,
obtenemos una resolucin de unos 2 metros/punto. Bastante aceptable. Podra reducir an ms el
rango y hacerlo slo hasta 1000 metros, con lo que tendra una resolucin de 90 cmts/punto (muy
bueno) pero... hay muchos puertos de montaa que superan esta altura, verdad? Mejor sacrificar
resolucin en aras de poder llegar ms alto.
Como incrementamos la sensibilidad del sensor y acondicionamos la seal para meterla en el
micro? Las entradas A/D van de 0 a 5 volts.
Veamos, el MPX4115 produce una tensin de 4,084 voltios a 0 mts y 2,66 voltios a 3.048 mts...
Ouch! no necesitamos tanta altura!
Tomamos la salida del MPX4115 y le restamos 2,5 voltios: Ahora tenemos un rango de voltaje de
0.16 a 1.58 voltios. Tomemos esta tensin y multipliqumosla por 3 : terminamos con un rango de
0,48 voltios a 4.74 voltios - aprovechamos casi toda la escala disponible de nuestro conversor A/D
que es de 0 a 5 volts - y por lo tanto aprovechamos casi toda su resolucin que es de 0 a 1023 puntos.
Para hacer esto en la prctica (al fin la prctica) ,se usa el doble amplificador operacional
LM358:uno resta 2.5 volts y el otro coge esta salida y la multiplica por 3 :

La seal que sale por "Vout" es la que se conecta directamente al pin del conversor A/D.Ahora queda
el procesamiento digital de esta seal.
Como deca antes, la presin no vara de forma lineal con la altura, esto es: cuando estamos al nivel
del mar, un milibar equivale a subir unos 8 metros ,pero a 2000 metros de altura habr que subir 10
metros para bajar un milibar. La curva de la relacin presion-altura se ve claramente si la llevamos
hasta los 11.000 metros:
Por lo tanto el micro tiene que corregir esta desviacin de alguna manera, si queremos que nuestro
altmetro no pierda un pice de precision cuando vayamos altos. Hay una ecuacin que hace un muy
buen trabajo:
MetrosAltitud = (-7990.6368 * Log(milibares / 1013))
No me preguntes que hace cada cosa, el tema es que funciona. Y la remarco porque la maldita cosa
esta me llev bastante trabajo. Uno que suspenda matemticas.
Ya tenemos la curva corregida,pero falta algo ms: La meteorologa. La presin atmosfrica sube y
baja, y no hay forma de corregir automticamente esta desviacin ms que manualmente. Por eso es
preciso calibrar los altmetros con respecto a una altura conocida. Los aviones lo hacen segn la
altura del aeropuerto, nosotros podemos hacerlo con respecto al mar o a una altura conocida. El error
introducido por el cambio de presion atmosfrica de un da a otro no suele ser mas que de unos
cuantos metros, pero si hay un cambio brusco en el tiempo (borrasca profunda, anticicln potente)
puedes ver como variar unas decenas de metros.
Por esto a la hora de programar el altmetro, hay que aadir un factor de correccin manual que se
pueda grabar en la eprom o memoria no voltil y puede ser algo as:

Este es el modelo de rutina para medir presin atmosfrica y altitud en metros usando el MPX4115.
No importa el lenguaje de programacin que uses, estas son las frmulas que hay que emplear. Se
supone que el conversor A/D es de 10 bits:
-------------------------------------------------------------------------------------------volt= GETADC(17) 'mide la entrada analgica en el pin 17

volts = (volt / 3)+ 512 'dividimos entre 3 y sumamos 2,5 voltios al


resultado(esto deshace el acondicionamiento de seal hecho por los operacionales)
milibares = ((1.085 * volts) + 105.55)
altitud = -7990.6368 * Log(milibares / 1013.0)+ ajuste '"ajuste" es la variable
que suma o resta metros para compensar y calibrar el cambio de presin
atmosfrica.
'imprime resultado en el display
Call Printf("Milibares: "& milibares &" ")
Call Printf("Altitud: " & Altitud &" ")

BIBLIOGRAFA:

http://personales.ya.com/perropinto/robotidus/altimetro.htm