Skip to content

Acelerómetro Memsic 2125

Con el fin de poder detectar caídas del usuario, el sistema llevará un acelerómetro encargado de medir la aceleración en distintos ejes.

En concreto, el acelerómetro es el Memsic 2125 montado por Parallax. Se trata de un acelerómetro térmico de bajo coste (30$ es algo barato tatándose de un acelerómetro) de 2 ejes, con un rango de medición desde -3g hasta +3g, útil para medir inclinación, colisiones, aceleración dinámica y estática y vibración.

El consumo es menor de 5 mA.

Funcionamiento

El circuito integrado MX2125 que confoma el sensor dispone de una cámara de gas calentado y cuatro sensores de temperatura alrdedor de su eje. Cuando el acelerómetro está en horizontal, todos los sensores de temperatura miden la misma temperatura. Al inclinarlo, el gas caliente se acerca más a uno de los sensores de manera que comparando las temperaturas se puede detectar tanto la aceleración estática como dinámica. El CI MX2125 se encarga de convertir las medidas de temperatura en pulsos PWM, recibidos por el arduino.

Conexiones

El esquema del Memsic 2125 es el siguiente:

Y los pines son los siguientes:

Pin Nombre Función
1 Tout Señal analógica indicando la temperatura
2 Yout Señal PWM con la medida del eje Y
3 Gnd
4 Gnd/NC Ground o no conectado (internamente conectado, según el esquema)
5 Xout Señal PWM con la medida del eje X

Protocolo de comunicación

La salida de la medición de los ejes se realiza mediante una señal PWM de 100Hz con ciclo de trabajo proporcional a la aceleración.

Con una alimentación de 5V, un ciclo de trabajo del 50% corresponde a una aceleración de 0g, aunque el ciclo de trabajo posee un error de +-1.3% (dependiente de cada unidad), de manera que es necesario tener en cuenta el offset a cero.

Lectura con arduino

Para leer el acelerómetro con el arduino se utilizará la función pulseIn() que está incluída por defecto en arduino. La función pulseIn() devuelve un unsigned long indicando el número de microsegundos que dura un pulso positivo en un pin.

Para convertir la lectura del pulso en un valor entre -1000 y 1000, la función es la siguiente:

f(x) = (x-5000)/5

Post a Comment

Your email is never published nor shared. Required fields are marked *