Alguem pode me ajudar com o Accelerometer MMA8452 (Resolvido)

Eu usei o exemplo da IDE e escreve isso:

Alguem sabe resolver? vlw

Exibições: 795

Responder esta

Respostas a este tópico

Parece que ou boundrate ou tamanho da palavra ta errado, talvez ele comunique por 7n1 e não 8n1 e tenta colocar outro boundrade 14400 ou outra coisa

Obrigado mais uma vez, no cod. a serial estava com 115200, vlw

Mas resolveu???

Resolveu, sim -

vlw

Muda o Titulo do tópico e acrescenta (Resolvido) e põe ai o que você fez, assim se aparecer alguêm com esse problema, já vai saber...

Assim, ajuda muitas outras pessoas.

Ai pessoal, resolvi o problema com a ajuda de nosso colega Marcelo Mosczynski, comprei um accelerometer MMA8452,

no LDG, baixei o arquivo de exemplo da Sparkfun o resultado foi este da imagem, mais é só alterar código da Serial. begin em 115200 troquei para 9600 e funcionou.

Vlw

Coisa besta, testa colocar de volta o 115200 no código e muda no SerialMonitor também para 115200

Veja se funciona..

Quando eu vi a serial com 115200 eu falai da zero pra ele kkkkk, antes de alterar o codigo eu mudei no monitor, e funciona, vlw

Oi Clayton, blz

Também sou leigo em accelerometer mais consegui entender um pouco do cod.

La no cod. de exemplo tem accelG[3], certo então ai são os 3 eixos X Y Z

eu fiz assim -  accelG[0] para o eixo "X" e o

                      accelG[1] para o eixo "Y".

Fiz um circuito com 4 led's, o led acende para o lado inclinado e bem nivelado todos os led's estão apagados. Você só adiciona este cod a baixo, no setup e no loop, o MMA8452Q da um escala negativa e positiva os led's acendem quando passam de -0.100 e 0.100 como está no cod..

Espero ter ajudado

///////////////////////////////////////////////////////////////////

void setup()
{

  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);

}

void loop()

{  
  if (accelG[0]  > 0.1){
    digitalWrite(13, HIGH);
  }else{
    digitalWrite(13, LOW);
 
  }
}
 
 
  {  
  if (accelG[0]  < -0.1){
    digitalWrite(12, HIGH);
  }else{
    digitalWrite(12, LOW);
 
  }
}

  {  
  if (accelG[1]  > 0.1){
    digitalWrite(11, HIGH);
  }else{
    digitalWrite(11, LOW);
 
  }
}

  {  
  if (accelG[1]  < -0.1){
    digitalWrite(10, HIGH);
  }else{
    digitalWrite(10, LOW);
 
  }
}

Eu melhorei a instabilidade tirando a media da leitura da uma olhada no site

http://arduino.cc/playground/Portugues/LearningSmoothing

Ele faz a leitura do sensor neste caso 10 vezes e tira a media melhora o movimento, mais fica mais lento, quando mais você aumentar esse valor mais lento ele fica, blz

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço