GPS + SD + LCD + BMP180 no Arduino - Provável problema de conflito entre portas.

Prezados,

Estou preparando um projeto cujo objetivo é obter um par de coordenadas, a altitude, pressão e temperatura, inserir isso tudo em uma string e então gravar ela em um cartão sd.

Logrei sucesso em parte desse projeto. Consigo que o GPS, o LCD e o SD estejam funcionando, ou o LCD, o BMP180 e o SD. Mas com os quatro juntos o sistema não funciona.

Penso que seja um conflito com as portas seriais. Achei que não seria um problema já que estão em um sistema diferente (SPI, I2C, etc). Se for isso mesmo, como posso resolver? Há algum jeito de "desligar" a porta do gps enquanto eu leio o BMP180 ou gravo no SD e a religo apenas quando quero tomar uma posição atualizada?

Segue abaixo o código que elaborei até agora. Se eu excluir as ultimas linhas, que gravam informações no SD ele funciona perfeitamente.

Ficarei agradecido por qualquer ajuda que possam dar. Pretendo ajeitar mais o código quando estiver funcional.

Código no Pastebin

Abraços

Exibições: 591

Anexos

Responder esta

Respostas a este tópico

Tem que funcionar..

Fale mais:

- Sobre sua fonte, se ela realmente aguenta tanta coisa. Ou está pendurando tudo no 3.3V da plaquinha ?

- Sobre o erro que está dando. Exatamente o q para de funcionar ?

Vc pode desligar a serial usando:

https://arduino.cc/en/serial/end

Mas não é uma boa prática ficar ligando e desligando...

Olá Eduardo.

Coloquei tudo conectado à placa (um arduino Nano). Mas não tem muita coisa: O lcd, o gps (uBlock-m6), o SD e um bmp180.

Quanto ao que para de funcionar:

Eu coloquei alguns "print" de controle para saber em quais pontos o aparelho lê e executa. Quando desligo as linhas que abrem e fecham a edição no cartão SD, o programa realiza todas as operações normalmente. Porém, ao ativar essas linhas ele executa apenas o VoidSetup. Mesmo quando deixo as Linhas do SD ao fim de todo o código, e mesmo quando transformo essas linhas de comando em uma função (nesse caso o programa trava quando chamo a função no corpo do projeto).

Ontem eu achei essa função end e consegui implementar uma função para o GPS que quando chamada ligava a porta serial, realizava a leitura e fechava a porta e entregava os valores de lat/long. Mas ao ativar a gravação no SD a placa parou igualmente.

Acha que pode ser a questão da corrente com apenas 4 periféricos? Hoje eu farei um teste conectando o sistema em fontes separadas.

Boa tarde, 

Favor informar como fez as ligações (diagrama). 

Especifique o modelo de todos módulos.

Atenção -  módulo de SD Card usa interface SPI de 3,3V (deve ser a cauda do problema). 

Olá José,

As ligações eu carreguei como imagem e arquivo para o Fritzing.

Quanto aos módulos:

SD Card: Modulo MicroSD (http://www.mamuteeletronica.com.br/home/produto/codigo:10492/adapta...)

GPS: uBlock-Neo6m

Temperatura/Pressao: BMP180

Tudo montado com um arduino Nano;

Porque acha que é o SD Card?

Obrigado

Anexos

Boa noite, 

O regulador de 5V do Arduino Nano não vai aguentar tanta carga !  Meça a tensão no pino 5V e nos informe. 

Use um Arduino UNO ou então alimente o VCC de todos os módulos com uma fonte externa de 5V. 

Não se esqueça de conectar todo os GND.  Exceto o BMP180 que é alimentado com 3,3V. 

Bom dia,

Quero te agradecer. Realizando as conexões dessa forma consegui tornar o projeto funcional.

Agora vou colocar um pack de baterias, e organizar o circuito em uma caixa para conseguir levar ele paa campo.

Em breve vou colocar o código e o esquema aqui.

Abração!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço