Buona sera a tutti, ho bisogno del vostro aiuto perché non so come risolvere.
Ho sviluppato un programma che comunica tra 2 arduino collegati tramite una scheda rs-485 ( link rs-485), sino a quando i cavi A e B sono corti (10 cm) funziona tutto perfettamente ma se cambio con cavi lunghi 10 metri l'arduino slave continua a ricevere segnali che non hanno senso ("ÿÿÿÿÿÿÿû¿¿ÿ¿ÿ÷ÿÿÿÿÿÿ¿ý¿") insieme però al segnale corretto (ýý¿ÿ2o16#35#29 µÿÿÿÿ÷�þ).
Cosa può essere ? li alimento entrambi con un alimentatore 5v così la massa è in comune.
C'è qualcosa che ho dimenticato ?
I collegamenti sono corretti perché con il cavo corto tra A e B funziona perfettamente!
C'è qualche cosa da mettere per eliminare i segnali ?
Grazie mille
SOLUZIONE: mettere una resistenza 4.7k tra GND e A o B.
Intanto, per il 485, la massa in comune non serve ... poi, personalmente ho realizzato un link (doppino da 0.5mm quadri) fra un sonar ed il relativo convertitore RS485/usb, e di problemi non ne da, anche se il cavo e' lungo circa 360 metri ... quindi la prima cosa che mi viene in mente, e' che forse il modulino che stai usando ha qualche problema ...
Se non metto la massa in comune alimentando con 2 alimentatori diversi non funziona, appena metto la massa in comune funziona.
Ho notato che se alimento un arduino con la usb funziona anche con un cavo da 20 metri, se invece alimento con l'alimentatore funziona solo con un cavo piccoli.
Uso un cavo non twistato però.
Grazie mille
maverikgoos:
Sei sicuro che il cavo sia integro e non sia spezzato e generi qualche falso contatto?
Hai lo sketch dell'arduino configurato come ricevitore?
Sono sicuro che il cavo è integro e che lo sketch funziona infatti se alimento entrambe gli arduino con l'usb funziona anche con il cavo lungo, stessa cosa se alimento uno solo e alimento l'altro con l'usicta del primo.
Il problema si ha quando alimento entrambe gli arduini con l'alimentatore ed il cavo lungo, con il cavo corto funziona.
E' come se usare l'alimentatore portasse con se degli errori che si vedono solo con il cavo lungo
maverikgoos:
Alimenti gli arduini con carica batteria per cellulari?
No con un alimentatore da 5v che collego al pin 5v ed al Gnd degli arduini.
Ho notato anche che se alimento con l'usb ed il cavo lungo lo sketch funziona ma legge sempre un dato vuoto tipo ogni mezzo secondo cioè riceve uno spazio mentre con il cavo corto legge solo i segnali che manda il master.
Strano, ma l'unica cosa che mi viene in mente è l'alimentazione che ha qualche problema. Se sono switching potrebbe essere qualche ripple. Mi raccomando controlla che DE RE siano a massa sul ricevitore.
davidino81:
Se non metto la massa in comune alimentando con 2 alimentatori diversi non funziona...
Gia questo e' strano ... quel sistema e' studiato per l'uso di un doppino, per il trasferimento dei dati mediante segnali in controfase (quando un capo e' ad "1" l'altro e' a "0" e viceversa, la massa non serve a creare un potenziale comune, ma solo a schermare il cavo, e puo anche essere connessa solo da un lato, io non l'ho neppure usata), quindi mi sa che c'e' qualcos'altro che non va ...
Etemenanki:
Gia questo e' strano ... quel sistema e' studiato per l'uso di un doppino, per il trasferimento dei dati mediante segnali in controfase (quando un capo e' ad "1" l'altro e' a "0" e viceversa, la massa non serve a creare un potenziale comune, ma solo a schermare il cavo, e puo anche essere connessa solo da un lato, io non l'ho neppure usata), quindi mi sa che c'e' qualcos'altro che non va ...
Io ho fatto collegamenti di 20 metri con le tue stesse Shield e alimentate da un solo alimentatore collegato nel tuo stesso modo. Quindi penso sia l'alimentatore.
Ho pubblicato il disegno come alimentato dagli USB, in realtà ho fatto una basetta con tutti gli attacchi per i 5 volt ed una per il gnd, tutto attaccato all'alimentatore
Penso che sia un problema di disturbi elettrici perché se cambio il cavo AB da lungo a corto funziona perfettamente