Dúvida sobre o código de um projeto gps com armazenamento de dados em cartão sd

Boa tarde,

Estou desenvolvendo um projeto de pesquisa para faculdade, onde utilizarei um módulo gps e salvarei os dados gerados em um cartão sd. Entretanto, estou com dificuldade na parte inicial dos códigos (códigos.pdf), mas ao inicial, ele não prossegue para o "void loop", como demonstra a imagem abaixo:

O curioso é que quando retiro o seguinte trecho:

Serial.println("Iniciando cartão SD...");

if (!SD.begin(chipSelect))

{

Serial.println("Falha na inicializacao do SD!");

while (1);

}

Serial.println("Cartao SD iniciado com sucesso...");

Os dados gerados pelo módulo começam a serem gerados. Gostaria da ajuda de alguém para resolver esse problema. 

*Obs.: Estou utilizando um DATA LOGGER SHIELD PARA ARDUINO COM RTC DS1307

Obrigado

Exibições: 483

Responder esta

Respostas a este tópico

Esse "while (1);" é um comando para travar o processamento. Vai ficar em loop enquanto 1 for 1.

Coloque o trecho a seguir logo antes do while(1):

Serial.println("Travando o processamento pq não consigo dar continuidade sem inicializar o SD!");

Assim vai fazer mais sentido.

Mas a verdade é que

SD.begin(chipSelect)

Esta retornando False e não deveria.

Ok, vou mudar isso e ver se consigo prosseguir

Tentei mudar, mas continua não pulando para o "void loop"

Bom dia IJ,

coloque a instrução na primeira linha do loop():

    Serial.println("Entrei no Loop");

E  diga se imprimiu.

RV

eu já fiz isso, vou mandar o código(modificado.pdf) com está e o que está sendo lido. Os *** significa que entrou no loop, entretanto não está lendo os dados gerados pelo gps.

IJ,

dê mais detalhes do seu projeto.

Qual "módulo" de GPS vc está usando, e em quais ports do arduino vc está ligando ele?

Abaixo esquema do Shield SD Card.

RV

ok, está as seguintes ligações, como estou usando o seguinte shield:

Como estou usando ele acoplado no arduino, as únicas ligações são as do GPS, sendo:

 rx=11

tx=12

GND

5V

Qual "módulo" de GPS vc está usando?
RV

MÓDULO GPS NEO-6M V2

Boa tarde IJ,

vc esta usado a softserial para se comunicar como o modulo

do GPS usando os ports 11 e 12 do arduino (UNO/mini).

Está usando o shield de DATA LOG que tem um SD card,

e este SD card usa a SPI para se comunicar com o arduino.

No arduino (UNO/mini) a SPI usa os ports  11 MOSI, 12 MISO,

13 SDK,  e o DATA LOG usa o 10 como SS.

Portanto está tendo um conflito de uso dos ports 11 e 12.

Mude os ports da sua serial para outros ports, (qualquer 2  de port 3 a 9),

e deverá funcionar sem problemas.

Se der certo de um retorno pra gente.

RV

Boa noite, 

Deu certo sua informação sobre conflitos, pelo jeito era isso mesmo. O código não foi alterado em nada (código pronto), os dados estão sendo gerados corretamente agora, como mostra a imagem abaixo:

Obrigado, faz dias que estava sem resolver esse problema....

Boa noite, 

Aprenda a usar o GPS primeiro, depois faça testes com o outro shield. 

A antena precisa estar conectada no módulo  e virada para o céu. Faça testes ao ar livre ! Não dentro de casa. 

Use esse tutorial e informe os resultados:

http://blog.eletrogate.com/gps-neo-6m-com-arduino-aprenda-usar/

 A interface Serial do GPS usa 3,3V . Tem que usar o divisor de tensão como no diagrama do tutorial. 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço