Problema librerías <GSM.h> <TinyGPS++> (resuelto)

Hola buenas,

Estoy intentando usar las librerías GSM y TinyGPS++ al mismo tiempo, el problema es que se producen conflictos entre ellas. Creía que era un tema de que compartieran las mismas interrupciones y dejé a la GSM sólo con la interrupción PCINT2 y a la librería SoftwareSerial (en la cual se basa el TInyGPS++) con PCINT0, PCINT1 y PCINT3.

Ahora pruebo a realizar una comunicación GSM y funciona, pruebo a obtener tramas GPS y también funciona, pero al añadir ambas en el mismo programa no logra interactuar con el GPS, dice que revise el cableado.

¿Alguien sabe qué puede estar pasando?

Gracias anticipadas,

Porque quieres usar las dos? Suena que no tiene sentido. Es como usar dos Antivirus. Reparo computadores de tanto en tanto y veo gente que tiene dos AntiVirus pero eso es por desconocimiento.

Debo imaginar que te gusta una librería supongo GSM y por alguna razón requieres algo de la otra, es asi?
Porque no modificar la librería que tiene el mayor % que te satisface y agregar lo que requieras de la otra ampliándola?

Plantéalo y seguramente los especialistas en software del foro te darán una ayuda.

Surbyte, si que tiene sentido. Son librerias diferentes GSM (Global System Mobile) y GPS (Global Positioning System).

Yo optaría por usar la tinygps++ y usar el módulo GSM con comandos AT directamente. Sin usar la libreria GSM.

carmeloco:
Surbyte, si que tiene sentido. Son librerias diferentes GSM (Global System Mobile) y GPS (Global Positioning System).

Yo optaría por usar la tinygps++ y usar el módulo GSM con comandos AT directamente. Sin usar la libreria GSM.

Gracias por las respuestas! :slight_smile:

No puedo modificar la librería GSM, esa tiene que estar sí o sí en mi proyecto. A GSM le he comentado las interrupciones PC_INT0, PC_INT1 y PC_INT3, dejándole disponible tan sólo la PC_INT2, mientras que con Software Serial (la que usa tinyGPS) le he dejado todas excepto PC_INT2.

Como decía antes, individualmente siguen funcionando, por lo que las librerías están bien, pero al ponerlas juntas, a pesar de no dar errores de compilación, no logran conectarse a las redes. Y esto último es lo que no entiendo por qué pasa... si individualmente funcionan pero juntas no, es que entre ellas hay conflictos pero no se me ocurren cuáles.

Debo haber estado casi dormido al contestar porque tienes mucha razón carmeloco, me pareció leer que eran ambas tipo GPS, disculpen.
Puedes poner el código y enlaces a las librerías que estas usando? O mejor sube todo en un .zip

Adjunto ambas librerías.

Foro arduino.zip (176 KB)

Y el código cuando las compartes o cualquier cosa que incluya las dos da error.

MIentras aunque no respondo lo que preguntas este ejemplo puede ayudarte tal vez

Esto es mas importante
Posibles soluciones: Este hilo can`t use both GSM.h and TinyGPS.h similar al tuyo lleva a esta solución Arduino GSM Shield tips & tricks

Sí, esa web ya la visité, por eso hice el apaño de ordenar las interrupciones en las librerías y por ello no me daba errores de compilación.

Ya lo solucioné, al final era un problema con las comunicaciones serie... Para coger el dato del GPS activo su puerto serie (NombreSerialGPS.begin(9600);), cojo el dato y luego lo cierro (NombreSerialGPS.end():wink: A continuación hago la comunicación GSM normal.

No sé a que es debido esto, pues según me dijisteis en otro post se pueden realizar varias comunicaciones serie al mismo tiempo, pero bueno, al menos así funciona.

Gracias por las respuestas!

Bueno me alegro que lo solucionaras y mejor que contaras como lo resolviste para quien lo requiera en el futuro.
El tema de SoftwareSerial y sus implicancias no lo conozco, cuando necesito 2 o mas puertos uso minimo Leonado/Mega o DUE.

Estoy en el 2017 y reportó que aun tengo el mismo. Problema que menciono Mario...

Estamos en el 2017 y reporto que no has leído las normas del foro y no prestaste atención a la advertencia que te decía que no respondas un hilo de mas de 120 dias y menos de 2 años a no ser que seas parte de los intervinientes del hilo pero como no lo eres, te invito a que crees un hilo nuevo con tu problema.

Normas del foro