Estoy atascado en esta cosa aparentemente simple. Tengo un módulo GPS NMEA. No importa cómo funcione, solo transmite un flujo de datos en serie a una velocidad de transmisión de 38400.
Tengo un arduino Mega que tiene varios módulos seriales de hardware. Si conecto directamente GPS Tx al pin Arduinos Tx (y programo arduino para que no use el módulo serial predeterminado Serial0
), entonces puedo observar las oraciones GPS sin procesar transmitidas por el módulo GPS usando el monitor serial arduino.
Lo que realmente quiero es leer el módulo GPS al Serial1
puerto arduino y reenviar los datos recibidos a través del puerto serie predeterminado Serial0
sin hacer nada. De modo que debería poder monitorear los datos del monitor en serie exactamente como en el caso anterior.
Intenté algo como lo siguiente, pero no funciona (da una secuencia de dígitos, intenté hacer todos los cambios posibles pero nada funcionó)
void setup(){
Serial.begin(38400); // the default serial module, serial0
Serial1.begin(38400); // GPS is connected to this
}
void loop(){
if(Serial1.available()){ // if GPS data available
Serial.print(Serial1.read()); // write it to serial0
}
}
Espero que alguien aquí pueda darme alguna solución.
Serial::print()
convierte los bytes a una representación ASCII. Utilice Serial::write()
en su lugar.
Serial.print()
convierte la entrada a ASCII mientras Serial.write()
"pasa" los datos binarios. Aquí está el enlace a la referencia de Arduino: arduino.cc/en/Serial/Write
rojoarenosoladrillo
Anubis