Problema con GPS y GSM en Arduino Mega.


hola.

llevo menos de 1 mes en el mundo de arduino. conseguí usar correctamente la placa gps gy-neo-6m-v2 y la placa gsm sim800l en arduino uno.

intento usar los códigos de arduino uno en arduino mega con los cambios en los seriales y no consigo hacer funcionar ninguno de los 2.

os cuento solo el gps. la placa gps la tengo conectado al serial2 en los pines 19 (rx) y 18 (tx). también probado cambiando los pines y cambiando otros seriales con el mismo resultado, además lo tengo conectado 5v y tierra.

con arduino uno, me funciona la perfección cualquiera de los ejemplos que vienen con la librería tinygps. sin embargo con arduino mega no funciona. creo que hay algo que estoy haciendo mal.

¿hay algo que tenga que tener en cuenta la hora de pasar el código de arduino uno arduino mega, además de usar los seriales en lugar de softwareserial?

muchas gracias.

codigo arduino uno. funciona correctamente.

#include <softwareserial.h>

#include <tinygps.h>



tinygps gps;
softwareserial ss(4, 3);

void setup()
{
  serial.begin(115200);
  ss.begin(9600);
 
  serial.print("simple tinygps library v. "); serial.println(tinygps::library_version());
  serial.println("by mikal hart");
  serial.println();
}

void loop()
{
  bool newdata = false;
  unsigned long chars;
  unsigned short sentences, failed;

  // 1 second parse gps data , report key values
  (unsigned long start = millis(); millis() - start < 1000;)
  {
    while (ss.available())
    {
      char c = ss.read();
      // serial.write(c); // uncomment line if want see gps data flowing
      if (gps.encode(c)) // did new valid sentence come in?
        newdata = true;
    }
  }

  if (newdata)
  {
    float flat, flon;
    unsigned long age;
    gps.f_get_position(&flat, &flon, &age);
    serial.print("lat=");
    serial.print(flat == tinygps::gps_invalid_f_angle ? 0.0 : flat, 6);
    serial.print(" lon=");
    serial.print(flon == tinygps::gps_invalid_f_angle ? 0.0 : flon, 6);
    serial.print(" sat=");
    serial.print(gps.satellites() == tinygps::gps_invalid_satellites ? 0 : gps.satellites());
    serial.print(" prec=");
    serial.print(gps.hdop() == tinygps::gps_invalid_hdop ? 0 : gps.hdop());
  }
 
  gps.stats(&chars, &sentences, &failed);
  serial.print(" chars=");
  serial.print(chars);
  serial.print(" sentences=");
  serial.print(sentences);
  serial.print(" csum err=");
  serial.println(failed);
  if (chars == 0)
    serial.println("** no characters received gps: check wiring **");
}



codigoarduino mega. solo cambiado el softwareserial por el serial2. no funciona.

#include <tinygps.h>


tinygps gps;


void setup()
{
  serial.begin(115200);
  serial2.begin(9600);
 
  serial.print("simple tinygps library v. "); serial.println(tinygps::library_version());
  serial.println("by mikal hart");
  serial.println();
}

void loop()
{
  bool newdata = false;
  unsigned long chars;
  unsigned short sentences, failed;

  // 1 second parse gps data , report key values
  (unsigned long start = millis(); millis() - start < 1000;)
  {
    while (serial2.available())
    {
      char c = serial2.read();
      // serial.write(c); // uncomment line if want see gps data flowing
      if (gps.encode(c)) // did new valid sentence come in?
        newdata = true;
    }
  }

  if (newdata)
  {
    float flat, flon;
    unsigned long age;
    gps.f_get_position(&flat, &flon, &age);
    serial.print("lat=");
    serial.print(flat == tinygps::gps_invalid_f_angle ? 0.0 : flat, 6);
    serial.print(" lon=");
    serial.print(flon == tinygps::gps_invalid_f_angle ? 0.0 : flon, 6);
    serial.print(" sat=");
    serial.print(gps.satellites() == tinygps::gps_invalid_satellites ? 0 : gps.satellites());
    serial.print(" prec=");
    serial.print(gps.hdop() == tinygps::gps_invalid_hdop ? 0 : gps.hdop());
  }
 
  gps.stats(&chars, &sentences, &failed);
  serial.print(" chars=");
  serial.print(chars);
  serial.print(" sentences=");
  serial.print(sentences);
  serial.print(" csum err=");
  serial.println(failed);
  if (chars == 0)
    serial.println("** no characters received gps: check wiring **");
}
 



Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > Problema con GPS y GSM en Arduino Mega.


arduino

Comments

Popular posts from this blog

Error compiling for board Arduino/Genuino Uno.

Installation database is corrupt

esp8266 (nodemcu 0.9) client.write très lent ???