stavo interfacciando una antenna GPS all'arduino, dove aver fatto diverse prove mi sono trovato davanti un problema alquanto strano...
In pratica tutto funziona fino a quando le alimentazioni di arduino e dell'antenna gps sono separate. dal momento che l'alimentazione diventa comune quello che ricevo dalla seriale del gps diventa spazzatura.
Cerco di spegarmi meglio:
Configurazione funzionante:
Pc portatitle alimentato a batteria che fornisce alimentazione all'arduino mega
Trasformatore 220Vac -> 5,7Vdc che alimenta l'antenna gps collegata sulla serial3
Configurazione non funzionante:
Linea a 13,8 Volt a cui sono collegati:
trasformatore 13,8 -> 9 V Collegato all'arduino
trasformatore 13,8 -> 5,7 V Collegato all'antenna gps
l'antenna gps è collegata come sopra alla serial 3
nn riesco a capire quale può essere il problema, avevo pensato di isolare l'rx e il tx dell'antenna GPS ma nn sono sicuro che sia la strada giusta!
prova a mettere un diodo dulle linea a 9v e 5.7 v....
essendo un unico tarasformatore a due avvolgimenti secondari e forse un ponte nn proprio stabilizzato potrebbe formarsi delle ... (chiamaiamoli) disturbi tra le due linee in frequenza. i diodi impediscono il trasferimento di tensioni incerse ma potrebbero nn risolvere il problema ....
ho fatto svariate prove... ho provato di tutto, ma proprio tutto. Tutte le volte che metto la massa in comune tra arduino e l'antenna gps ricevo dati spazzatura, o peggio, nn ricevo nulla. Sta notte alle ore 2 ho avuto un illuminazione:
Arduino e antenna gps alimentati separatamente senza GND in comune (configurazione stranamente funzionante):
Misuro la tensione tra il tx dell'antenna e il gnd dell'arduino.... HO 5 VOLT di picco
Arduino e antenna gps alimentati con un lm7805 (configurazione non funzionante):
Misuro la tensione tra il tx dell'antenna e il gnd dell'arduino.... HO 2 VOLT di picco
A rigor di logica dovrebbe essere il contrario! come posso ovviare a questo problema?
Grazie a tutti per l'aiuto
Manuel
P.S. Leggendo qua e la.... mi è sorto un dubbio nn è che il problema è causato da livelli TTL/RS232