Go Down

Topic: Conexion Modulo GPS NEO6MV2 (Read 456 times) previous topic - next topic

Bilick88

Jan 13, 2018, 07:03 pm Last Edit: Jan 21, 2018, 06:08 pm by surbyte Reason: Eleminadas las etiquetas color
Hola buenas,

Recientemente he comprado un modulo chino NEO6MV2




Lo intento conectar con un arduino MEGA con la libreria TINYGPS. Al ejecutar el ejemplo de código "Simple Test", el cual deberia mostrarme las coordenadas del GPS, pero no es el caso.

He indicado el rojo los parametros que he canviado ( basicamente ponerlo en Serial1 y en 9600 )

Code: [Select]
#include <SoftwareSerial.h>

#include <TinyGPS.h>

/* This sample code demonstrates the normal use of a TinyGPS object.
   It requires the use of SoftwareSerial, and assumes that you have a
   4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx).
*/

TinyGPS gps;

void setup()
{
  Serial.begin(115200);
  Serial1.begin(9600);          // CAMBIADO
  
  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;

  // For one second we parse GPS data and report some key values
  for (unsigned long start = millis(); millis() - start < 1000;)
  {
    while (Serial1.available())       // CAMBIADO
    {
      char c = Serial1.read();
      // Serial.write(c); // uncomment this line if you want to see the GPS data flowing
      if (gps.encode(c)) // Did a 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 from GPS: check wiring **");


Ahora mismo la conexion es tal que así:

VCC -> 3,3V
GND -> GND
RDX -> TX1 ( Pin 19)
TDX -> RX1 ( Pin 20)
PPS -> Sin conexion


Alguien me puede indicar que estoy haciendo mal?


surbyte

Bueno, tuve que editar tu hilo principal porque esas etiquetas en ROJO no se leen dentro de una etiqueta de código.

Esta claro que usas Serial1.

Ahora has verificado que se comunica? Alguna respuesta del GPS, responde a comandos AT?

Tu dispositivo es 3.3V y tu MEGA es 5V, habitualmente eso requiere un LEVEL SHIFTER o Adaptador de nivel.
Es posible que la entrada RX del MEGA no lo necesite pero la salida TX del MEGA es de 5V y deberías usar o bien un divisor de tensión o alguna otra alternativa.

No he visto las sugerencias o si tu modulo GPS es 5V tolerante, si lo es no requiere nada de esto.


Go Up