Ho comprato un po' di schedine RS-485 - TTL (il lotto da 50 pezzi) perchè le monto sui miei trasmettitori WiFi fatti con WeMos.
Poi, siccome mi sono fatto una cultura con il Modbus (come ho fatto a vivere senza fino ad adesso ??? ) ho provato il sensore umidità/temperatura XY-MD02 perché i DHT22 mi danno problemi di lettura a causa di disturbi elettromagnetici (basta una lampada al neon) sulle lunghe distanze e, a maggior ragione, con le tensioni da 3,3volt.
Con il protocollo RS-485 dovrei teoricamente arrivare a 500 metri, ma mi accontento anche di 50.
Sul WeMos nessun problema con queste schedine, sia che le attacchi ad un PLC Mitsubishi che al sensore YX-MD02
Poi ritorno sulla breadboard con NANO e cominciano i problemi...
Qualche schedina da errore InvalidSlaveID.
Le provo tutte: 15 NON RISPONDONO (complimenti, un bel 30%).
Poi mi ricordo del consiglio di ORSO2001 di provare con una modifica che aveva fatto: PERFETTO.
Con quella modifica funzionano tutte. (vedi foto sotto)
Dato che modificarle tutte è fatica qualche ESPERTO ELETTRONICO (e non faccio nomi perché non voglio offendere nessuno) se la sente di spiegarmi come mai succede ciò ai MAX485 e se magari me la posso cavare sostituendo qualcuna delle resistenze SMD sulla schedina (così faccio prima) ?
Bene, dopo diverse prove, la MIGLIORE SOLUZIONE è quella di mettere UNA SOLA RESISTENZA da 1Kohm tra GND e B.
Ho provato anche 2.2K, 3.3K e 4.7K, ma alcune "non ce la facevano", quindi ricominciavo i test con una resistenza più bassa fino a trovare il miglior valore.
Certo, anche con la sola 330ohm su GND funzionavano tutte, ma ho preferito non caricare troppo il ramo B e funzionano tutte perfettamente con 1Kohm.
Perché contrariamente a quanto si crede il 485 non è un sistema a due fili ma a tre, due fili portano il segnale differenziale e un terzo fa da riferimento comune.
Con solo due fili le diverse unità non hanno più un riferimento comune, ma tra GND di una e GND dell'altra si possono formare tensioni di svariati volt dette di modo comune.
Finché la tensione di modo comune che si crea tra le unità è entro il range ammesso funziona anche a due fili, poi ciccia.
La resistenza che hai scoperto essere funzionale in questo caso, potrebbe non esserlo in altre circostanze. L'unica certezza si ha solo usando un terzo filo di riferimento comune.
Effettivamente se tolgo la sola R7 da 120 ohm, la scheda di rete funziona perfettamente con il sensore XY-MD02 mentre se la lascio non c'è verso che funzioni.
Vedendo anche le altre due schede con MAX485 e cioè QUESTE, ho misurato che sui terminali A e B non c'è questa resistenza quindi non capisco perché la hanno voluto mettere.
Devo dire, però, che sui PLC clone FX3u che uso regolarmente, questo problema di resistenza non si pone, almeno non fino ad ora...
Quindi ho deciso di toglierla perchè a rimetterne una standard tra i morsetti si fa sempre in tempo mentre è più difficile fare il contrario nel caso di un intervento in loco su un macchinario.