Arduino mega sonardan veri alma

Ozgurmmm

Üye
Katılım
7 Eki 2020
Mesajlar
1
Puanları
1
Yaş
50
Kod:
#include <AltSoftSerial.h>

#include <Wire.h>

#include <NMEA0183.h>

#include <NMEAParser.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);



// matches Zihatec RS422/RS485 shield

AltSoftSerial gps;

NMEA0183 nmea;

NMEAParser<4> parser;

float gprmc;

float gprmb;

 

void handleGPRMC(void)

{

  float test;

  if (parser.getArg(4, test))

  {

    gprmc = test;

    Serial.print(gprmc);

  }

}



void handleGPRMB(void)

{

  float test1;

  if (parser.getArg(4, test1))

  {

    gprmb = test1;

  

     Serial.print(gprmb);

  }

}





void setup() {

  Serial.begin(4800);

  gps.begin(4800);

  Serial.println("AltSoftSerial Test Begin");

  // Start Serial

  while (!Serial);

  Serial.println("NMEA0183 parser test");

   // Start LCD

   lcd.begin();

   lcd.backlight();

   parser.addHandler("GPRMB", handleGPRMB);

   parser.addHandler("GPRMC", handleGPRMC);





}



void loop()

// Reveive data from GPS

{

  lcd.setCursor(0,0);

 

  if (gps.available())

  {

    char c = gps.read();

    if (nmea.update(c))



    {

      Serial.print("NMEA0183 sentence accepted (");

      Serial.print(nmea.getFields());

      Serial.print(" fields): ");

      Serial.write(nmea.getSentence());

      Serial.println();

// Display Data from GPS

        lcd.clear();//Clean the screen     

        lcd.setCursor(0,0);

        lcd.print(nmea.getFields());

        lcd.setCursor(3,0);

        lcd.print(" data received ");

        lcd.setCursor(0,1);

        lcd.print(nmea.getSentence());

//  if (Serial.available()) {

    parser << Serial.read();

 

 

  

//  }



      }

      }

      }
Yukardaki kod ile gps den veri almayı başardım Arduino Mega ile oldukça uğraştırdı doğru serial com kütüphanesini bulmak ve port seçmek. Uno da sorunsuz çalışan serial kütüphaneleri mega da çalışmadı tam olarak sorunu anlamasamda bu kullandığım kütühane ile çözdüm.
bu kod a ayrıca nmea parser i ekledim fakat parser sonuçlarını serialmonitörde yazdıramadım. Kodun neresinde hata yapıyorum? Bu arada 2 haftadır C öğreniyorum belirtmek isterim.
 
Moderatör tarafında düzenlendi:

Forum istatistikleri

Konular
127,956
Mesajlar
913,906
Kullanıcılar
449,606
Son üye
rasit.

Yeni konular

Geri
Üst