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.
Niestety chyba coś źle napisałem bo program nie działa
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.
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
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.