Calibração do Acelerômetro 3 Eixos MMA7361

Pessoal , estou tendo um dificulde em calibra o Acelerômetro 3 Eixos MMA7361, gostaria de saber se tem alguem que ja usou esse componente e se poderiam me dar algumas dicas sobre como usa-ló, o que acontece e o seguinte eu montei o seguinte esquema:

VCC - 3.3V
GND - GND
XOUT - A0
YOUT - A1
ZOUT - A2
SLP - 3.3V

essas foram as ligações que eu fiz

em seguida usei o seguinte codigo para realizar a leitura do acelerômetro

int XPin = A1; // X
int YPin = A2; // Y
int ZPin = A3; // Z

void setup() {
  Serial.begin(9600);
  pinMode(XPin, INPUT);
  pinMode(YPin, INPUT);
  pinMode(ZPin, INPUT);
}

void loop() {
  int valX = 0;
  int valY = 0;
  int valZ = 0;
  valX = analogRead(XPin);
  valY = analogRead(YPin);
  valZ = analogRead(ZPin);
  Serial.print("X-");
  Serial.print(valX);
  Serial.print(" Y-");
  Serial.print(valY);
  Serial.print(" Z-");
  Serial.print(valZ);
  Serial.print("\n");
  delay(1500);
}

mais o acelerômetro esta retornando valores que eu acho que não esta certo por que esta variando mesmo quando esta parado  abaixo segue os valores retornado pelo acelerômetro:

X=105 Y=98 Z=111
X=563 Y=565 Z=614
X=1023 Y=1009 Z=1023
X=1023 Y=1023 Z=1023
X=876 Y=844 Z=802
X=339 Y=297 Z=248
X=73 Y=66 Z=70
X=16 Y=20 Z=25
X=40 Y=43 Z=45
X=44 Y=47 Z=59
X=49 Y=53 Z=123
X=61 Y=63 Z=59
X=66 Y=69 Z=66
X=68 Y=72 Z=69

 esse valores esta tendo esta variação mesmo quando o acelerômetro esta parado e uma posição, a minha duvida é se este são o valores que era para esta retornado e se estiver certo qual seria a forma de trabalho com esse dados por que no meu caso eu quero medir o deslocamente de um objeto então fica dificil trabalhar com esses dados, espero que alguem possa me ajudar.

desde ja agradeço a todo pela atenção

Exibições: 2306

Responder esta

Respostas a este tópico

Ressuscitando o tópico.

Alguém tem uma resposta para a questão?

Estou passando pela mesma dúvida.

Obrigado.

tente ler 10x cada entrada e tirar a media das leituras...

pq vc nao usa a biblioteca MMA7361?

Data sheet :

https://www.sparkfun.com/datasheets/Components/General/MMA7361L.pdf

1.Use 0.1 µF capacitor on VDD to decouple the power source. (use um capacitor de 0,1uF entre o Vcc e o terra)

2.Physical coupling distance of the accelerometer to the microcontroller should be minimal.(as ligações tem que ser bem curtas)


3. Place a ground plane beneath the accelerometer to reduce noise, the ground plane should be attached to
all of the open ended terminals. Coloque um placa de aterramento por baixo do acelerometro. 


4. Use a 3.3nF capacitor on the outputs of the accelerometer to minimize clock noise (from the
switched capacitor filter circuit). Use um capacitor de 3.3nF entre os pinos X,Y e Z e o terra.

7. A/D sampling rate and any external power supply switching frequency should be selected such that
they do not interfere with the internal accelerometer sampling frequency (11 kHz for the sampling
frequency). This will prevent aliasing errors.  Use uma taxa de amostragem menor do que 11 KHz

pq vc nao usa a biblioteca MMA7361?

Bem interessante essa biblioteca! 

O programa faz algumas calibrações.

Vocês deixaram os pinos G-select(pino 10) e Self-test (pino 13)  desligados?

Eles tem que estar ligados .

G-Select = terra (variação 1,5 G) ou Vcc (variação 6 G)

Self-test = terra 

Interessante a biblioteca. Vou analisar com mais calma depois pois não uso Arduino. Gostaria de tentar mais tarde uma adaptação pra PIC para o compilador que uso.

Reabri este tópico em Out/2013. Na ocasião eu estava trabalhando neste acelerômetro para meu trabalho final de curso. Terminei e apresentei em Dez.

No entanto, não precisei trabalhar com posição exata (que seria calculada fazendo-se duas integrações sucessivas dos valores de aceleração colhidos). Não era um instrumento de medição. Eu apenas guiava um pequeno veículo pendendo o acelerômetro de um lado para o outro.

Quanto a leitura dos valores colhidos pelo uC, trabalhei com uma amostragem de 512 valores para cada eixo e por fim calculei a média. Este é um meio simples sugerido pela Freescale para ser usado como filtro passa-baixo por software para diminuir o ruído. Quanto ao tamanho da amostragem, aí fica a critério do projeto. Mais ou menos amostras depende da precisão e confiabilidade exigidas no projeto.

Quanto a calibração, no meu caso, quando startava o controle do veículo, ele pegava a posição do controle neste momento e fazia esta posição ser a posição zero. Portanto nem é bem uma calibração, é mais um cálculo de offset.

Quanto aos pinos g-select e self-test deixei-os sem conexão já que no datasheet o fabricante garante que ele não ficará flutuando já que internamente há resistor de pull-down.

Prezado Diego, 

com o sensor acelerômetro MMA7361 você consegue valores em aceleração. Para obter a posição e através das diferenças de posição encontrar o deslocamento, é necessário converter os dados de aceleração em posição. Isso você consegue com processamento de sinais, integrando duas vezes os sinais de aceleração. 

Aproveitando, alguém sabe dizer a confiabilidade desse sensor MMA7361?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço