Go Down

Topic: Arduino SDcard e acelerometro MM7361 (Read 2 times) previous topic - next topic

luisandrade

Olá pessoal!
Estou com problemas ao utilizar o acelerometro MM7361 com arduino e SD card, estou utilizando o sketch datalogger exemplo do arduino.
Quando inicializo o arduino com o SD card somente alguns dados são gravados depois a gravação para, eu retirei o acelerometro das entradas analógicas a gravação é feita normalmente.
Alguém saberia me dizer porque isso acontece?
Dados com acelermetro conectado.
350,457,229
351,434,**
Aparece alguns simbolos estranhos.

Dados sem o acelerometro ligado.
23,12,45
45,56,89
...

Grava normalmente.

bubulindo

Sem ver como conectas o acelerómetro ou o programa que estás a correr, sinceramente não faço a minima ideia do problema.
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

luisandrade

Ah sim, como disse eu estou usando este exemplo: http://arduino.cc/en/Tutorial/Datalogger
Os sinais dos eixos do acelerometro são analógicos 0-3.3v ligados nas entradas analógicas 0,1 e 2 do arduino exatamente como no exemplo.
Se observar o scketch verá que as três entradas são concatenadas em uma só string, quando o arduino eo sd card é ligado sem nada na entrada, é armazenado no sd alguns valores, ruido.
21,23,45 desta forma os dados são salvos normalmente indefinidamente.
Quando eu ligo o acelerometro esses valores aumentam pois em repouso o acelerometro gera 1,5v conventendo em bits seria por volta de 307
307,307,305 dessa forma os dados são gravados somente uma vez no SD e depois para.
Estou suspeitando que seja o tamanho da string, o que você acha?

bubulindo

Não me parece que seja o tamanho da String.
O facto de ligares os sensores às entradas analógicas (ao invés de deixar as entradas vazias) apenas interfere se os pinos das entradas analógicas estiverem a fazer outra função qualquer no hardware... o que não me parece que seja. Isto porque quando não tens nada ligado as funções de conversão do AD estão em funcionamento.

Como ligaste o pino de CS ao cartão de memória? Condiz com o programa que tens? Será a versão do Ethernet Shield que estás a usar que provoca isto por não usares o pino de CS correctamente? Apenas estou a supor.

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

luisandrade

Não estou usando shield, e sim breakout sd card, o sistema está funcionando normalmente se os bits não ultrapassarem duas casas decimais.
Se tiver um nivel de tensão na entrada que gere um valor abaixo de 100bits tipo 22,37,44 os dados são gravados se o valor ficar acima de 99 ai começa o problema 101,150, 137.
Eu modifiquei o scketch  para gravar uma entrada em cada linha sem concatenar, funcionou normalmente. Por isso eu ainda acredito que seja o tamanho da string.
12,25,32 grava
123,250,450 não grava



bubulindo

E estás a usar aquele código que colocaste do exemplo? Tal e qual?
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

luisandrade

Com esse scketch os dados são gravados uma entrada em cada linha.
450
570
989
...

#include <SD.h>

const int chipSelect = 10;

void setup()
{
  //Serial.begin(9600);
  //Serial.print("Initializing SD card...");
  // pinMode(10, OUTPUT);

}

void loop()
{
  for (int analogPin = 0; analogPin < 3; analogPin++) {
    int sensor = analogRead(analogPin);
    File dataFile = SD.open("datalog.txt", FILE_WRITE);
    if (dataFile) {
      dataFile.println(sensor);
      dataFile.close();
    }   
  }
}



luisandrade

E aí pessoal ainda continuo com o problema alguma ideia?

Go Up