serkan_ss
Üye
- Katılım
- 8 Ara 2018
- Mesajlar
- 5
- Puanları
- 1
- Yaş
- 29
Makine mühendisliği son sınıfım,projemin bir bölümü için gps kullanarak iki koordinat arasındaki mesafeyi ekrana yazdırmam gerekiyor.Kodlarda Haversin formülü kullandım ve ekranda koordinatları görebiliyorum fakat mesafe hesabını ''mesafe= '' şeklinde görüyorum,ardunio konusunda acemiyim hatanın nerde olduğunu bulamadım yardımcı olursanız sevinirim.
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
float hedefenlem = 36.1200 ;
float hedefboylam = 34.885596 ;
static const int RXPin = 8, TXPin = 9;
static const uint32_t GPSBaud = 9600;
float lat ;
float lng ;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup()
{
lcd.begin(16, 2);
Serial.begin(115200);
ss.begin(GPSBaud);
lcd.print(" WELCOME ");
delay(2000);
lcd.clear();
}
void loop()
{
// This sketch displays information every time a new sentence is correctly encoded.
while (ss.available() > 0)
if (gps.encode(ss.read()))
displayInfo();
if (millis() > 5000 && gps.charsProcessed() < 10)
{
lcd.print(F("No GPS detected"));
while(true);
}
{
float enlemfarki = abs(hedefenlem - lat) * 111194.9 ;
float boylamfarki = 111194.9 * abs(hedefboylam - lng) * cos(radians((hedefboylam + lng) / 2));
float mesafe = sqrt(pow(enlemfarki, 2) + pow(boylamfarki, 2));
}
}
void displayInfo()
{
if (gps.location.isValid())
{
lcd.setCursor(0,0);
lcd.print("Lat=");
lcd.print(gps.location.lat(), 6);
lcd.setCursor(0,1);
lcd.print("Lng=");
lcd.print(gps.location.lng(), 6);
delay(3000) ;
lcd.clear();
lcd.print(" mesafe = ");
delay(5000) ;
}
else
{
lcd.setCursor(0,0);
lcd.print(" INVALID ");
}
}
//yeryüzü ortalama çevresi=2x6371000mxpi==40030173m
//delta(d)enlem=(40030173xenlemfarki)/360=111194.9mxenlemfarki
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
float hedefenlem = 36.1200 ;
float hedefboylam = 34.885596 ;
static const int RXPin = 8, TXPin = 9;
static const uint32_t GPSBaud = 9600;
float lat ;
float lng ;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup()
{
lcd.begin(16, 2);
Serial.begin(115200);
ss.begin(GPSBaud);
lcd.print(" WELCOME ");
delay(2000);
lcd.clear();
}
void loop()
{
// This sketch displays information every time a new sentence is correctly encoded.
while (ss.available() > 0)
if (gps.encode(ss.read()))
displayInfo();
if (millis() > 5000 && gps.charsProcessed() < 10)
{
lcd.print(F("No GPS detected"));
while(true);
}
{
float enlemfarki = abs(hedefenlem - lat) * 111194.9 ;
float boylamfarki = 111194.9 * abs(hedefboylam - lng) * cos(radians((hedefboylam + lng) / 2));
float mesafe = sqrt(pow(enlemfarki, 2) + pow(boylamfarki, 2));
}
}
void displayInfo()
{
if (gps.location.isValid())
{
lcd.setCursor(0,0);
lcd.print("Lat=");
lcd.print(gps.location.lat(), 6);
lcd.setCursor(0,1);
lcd.print("Lng=");
lcd.print(gps.location.lng(), 6);
delay(3000) ;
lcd.clear();
lcd.print(" mesafe = ");
delay(5000) ;
}
else
{
lcd.setCursor(0,0);
lcd.print(" INVALID ");
}
}
//yeryüzü ortalama çevresi=2x6371000mxpi==40030173m
//delta(d)enlem=(40030173xenlemfarki)/360=111194.9mxenlemfarki