Boa tarde,

sou iniciante no Arduino e em programação, estou tendo algum problemas ao transferir dados recebidos pelo GPS para os menus de um LCD.

Preciso colocar as informações que o GPS me fornece, dividido em menus e por sentenças.

Usarei por enquanto $GPGGA e $GPRMC, criei um submenu para cada.

Mas não posso "jogar" simplesmente as informações na tela, preciso colocar no menu de maneira organizada, separando latitude, longitude, Hora, HDOP...

Fiz meu código baseado em um que achei na internet de tratamento dos dados do GPS e acoplei a este código o que eu sabia sobre menus.

O meu grande problema esta em que a parte de tratamento de dados não me fornece uma string que eu possa utilizar posteriormente na impressão de dados no LCD.

Este é uma pequena parte do meu código, a qual representa minha grande dúvida.

void displayGPS(){
char field[20];
getField(field, 0);
if (strcmp(field, "$GPGGA") == 0)
{
Serial.print("Time: ");
getField(field, 1);
Serial.print(field);

Serial.print(" Fix Quality:");
getField(field, 6);
Serial.println(field);

Eu obtenho meu "field" (campo), mas logo após quando peço outro field (getField) ele faz a troca do field inicial pelo o que ele pegou logo depois, por exemplo trocando os valores relativos ao Time pelo Fiz Quality. Assim não estou conseguindo aplicar no LCD. 

Será que teria como transformar estes fields em uma variável que eu possa usar posteriormente?

Deixo meu código em anexo para quem puder me ajudar e dar uma olhada.

Não sei se é muito difícil ou esta me faltando algo na base de programação.

Por que caminho devo seguir?

Muito Obrigado,

Amauri.

Exibições: 396

Anexos

Responder esta

Respostas a este tópico

alguém tem idéia??

void displayGPS(){
char time[20];

char quality[20];


getField(field, 0);
if (strcmp(field, "$GPGGA") == 0)
{
Serial.print("Time: ");
getField(time, 1);
Serial.print(time);

Serial.print(" Fix Quality:");
getField(quality, 6);
Serial.println(quality);

Daí pra frente é manipulação de vetores de char (veja na referencia o uso de string - minusculo).

Muito obrigado Jonatas,

com tua ajuda consegui arrumar vários "erros" de leigo e ainda sanar minhas dúvidas.

O grande problema agora está na atualização do LCD juntamente com a atualização do GPS.

Quando entro no Menu que uso para obter as leituras do GPS, ele me da a leitura do momento e acaba não atualizando o LCD com as leituras seguintes. 

Não sei o que estou fazendo errado,

alguma idéia pessoal?

Muito obrigado,

Amauri.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço