• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Tiny GPS++, Problem z koordynatami
#1
Cześć.
Urządzenie do którego wysłam dane, aby prawidłowo wyświetliło Liteki E, N, W, S przy współrzędnych potrzebuje  następujących danych:
(01 =N.W),(02 =S.E),(03 =N.E),(04 =S.W).

W tym celu zrobiłem taki szkic do pobierania danych, potem ich sprawdzenia i na końcu zastosowaniu odpowiedniej cyfry dla aktualnie nadawanych liter przy współrzędnych.
Kod:
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
TinyGPSPlus gps;
TinyGPSCustom Lat1(gps, "GPGGA", 3);
TinyGPSCustom Lon1(gps, "GPGGA", 5);

int cord;
int co1 = 01;
int co2 = 02;
int co3 = 03;
int co4 = 04;

char N = 'N';
char S = 'S';
char W = 'W';
char E = 'E';
void setup()
{
  Serial.begin(115200);
 
}
void loop()
{
Serial.print(" ALT="); Serial.print(gps.altitude.meters());
Serial.print(" LAT="); Serial.print(Lat1.value());
Serial.print(" LON="); Serial.print(Lon1.value());
Serial.print(" cord="); Serial.print(cord);
Serial.print(" SATS="); Serial.println(gps.satellites.value());

while (Serial.available() > 0)
gps.encode(Serial.read());

//(01 =N.W)(02 =S.E)(03 =N.E)(04 =S.W)
if ( Lat1.value() == N && Lon1.value() == E)
{
  cord = co3;
}
if ( Lat1.value() == N&& Lon1.value() == W)
{
  cord = co1;
}
if ( Lat1.value() == S && Lon1.value() == W)
{
  cord = co4;
}
if ( Lat1.value() == S && Lon1.value() == E)
{
  cord = co2;
}

}


Niestety chyba coś źle napisałem bo program nie działa Sad

W terminalu odczytuje prawidłowe Literki z GPS ale dane wyjściowe "cord = 0 " a powinno wyświetlić 03 dla E, N.

   

Może ktoś pomoże w rozwiązaniu problemu.
 
Odpowiedź
  


Wiadomości w tym wątku
Tiny GPS++, Problem z koordynatami - przez Osiasty - 12-03-2020, 18:04

Skocz do:


Przeglądający: 1 gości