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:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…