Arduino uno e rs485 e software serial

Salve ragazzi sono alle prime armi con la comunicazione rs485 sto facendo alcune prove inviando un carattere per poi riceverlo con l'altro arduino uno , ho collegato i due arduini come in foto pero non riesco a ricevere il carattere vi posto il codice forse qualcuno riesce ad aiutarmi

codice del trasmettitore

#define RS485Transmit    HIGH
#define RS485Receive     LOW
#define SSerialTxControl 8

#include <SoftwareSerial.h>

int tx = 3;
int rx = 2;
SoftwareSerial RS485Serial(rx, tx); // RX, TX




char val,val1;

void setup() {
 
    
      // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  pinMode(SSerialTxControl, OUTPUT); 
  digitalWrite(SSerialTxControl, RS485Transmit);  // Enable RS485 Transmit
 

  Serial.println("Setup");  
  
  //Inizializzo i vari sensori con i rispettivi pin
   Serial.println("avvio Trasmettitore");
   
}
 
void loop () { 
RS485Serial.write('a');
Serial.write('a');
}//fine loop

codice del ricevitore

#define RS485Transmit    HIGH
#define RS485Receive     LOW
#define SSerialTxControl 8

#include <SoftwareSerial.h>

int tx = 3;
int rx = 2;
SoftwareSerial RS485Serial(rx, tx); // RX, TX



void setup()
{

  Serial.begin(9600);

    while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  
  pinMode(SSerialTxControl, OUTPUT); 
  digitalWrite(SSerialTxControl, RS485Receive);  // Enable RS485 Receiver 
  // set the data rate for the SoftwareSerial port
  RS485Serial.begin(4800);

     Serial.println("avvio Ricevitore");
  

}

grazie buona domenica amici

Su ogni nodo terminale (quindi i due moduli RS485) devi inserire un resistore da 120 ohm tra le linee A e B.

Inoltre, ognuno dei due moduli deve essere alimentato (+5V e GND) dal rispettivo Arduino, senza mettere GND in comune, a meno che i due Arduino non siano alimentati dallo stesso alimentatore esterno da 5V.

Se usi la MEGA non hai bisogno della SoftwareSerial perché usi i pin RX1 (19) e TX1 (18) che devi inizializzare in setup con Serial1.begin(9600);

Anche per la MINI non hai bisogno della SoftwareSerial in quanto usi i pin RX (0) e TX (1) che devi inizializzare in setup con Serial.begin(9600);

Se, invece, i due Arduino sono delle UNO come sembra dallo sketch, conviene usare la SoftwareSerial che devi inizializzare in setup di ambedue con RS485Serial.begin(4800);

Ciao grazie per la risposta ho fatto quello che dicevi e ora funziona l'unico problema e che molte volte quando invio un carattare ad esempio

RS485Serial.write('a');

dall'altra parte ricevo una carattere strano con un punto interrogativo al centro,
sapresti dirmi il perchè ?

Credo sia un problema di baud rate: le velocità della RS485 sia nel trasmettitore che nel ricevitore dovrebbero essere uguali, ma nel setup del trasmettitore non hai inizializzato la velocità.

Puoi portare tranquillamente entrambi a 9600 baud o più.