
/*-----( Import needed libraries )-----*/
#include <SoftwareSerial.h>
/*-----( Declare Constants and Pin Numbers )-----*/
#define SSerialRX        13  //Serial Receive pin
#define SSerialTX        12  //Serial Transmit pin

#define SSerialTxControl 4   //RS485 Direction control
#define RS485Transmit    HIGH
#define RS485Receive     LOW

#define Pin13LED         9

/*-----( Declare objects )-----*/
SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX

/*-----( Declare Variables )-----*/
int byteReceived;
int byteSend;

void setup()   /****** SETUP: RUNS ONCE ******/
{
  // Start the built-in serial port, probably to Serial Monitor
  Serial.begin(9600);
  Serial.println("Remote connector");  // Can be ignored

  pinMode(Pin13LED, OUTPUT);
  pinMode(SSerialTxControl, OUTPUT);

  digitalWrite(SSerialTxControl, RS485Receive);  // Init Transceiver

  // Start the software serial port, to another device
  RS485Serial.begin(9600);   // set the data rate 
}//--(end setup )---
 

void loop()   /****** LOOP: RUNS CONSTANTLY ******/
{
  //Copy input data to output  
  if (RS485Serial.available())
  {
    byteSend = RS485Serial.read();   // Read the byte 

    digitalWrite(Pin13LED, HIGH);  // Show activity
    delay(1);
    digitalWrite(Pin13LED, LOW);

    digitalWrite(SSerialTxControl, RS485Transmit);  // Enable RS485 Transmit    
    RS485Serial.write(byteSend); // Send the byte back
    //delay(10);
    digitalWrite(SSerialTxControl, RS485Receive);  // Disable RS485 Transmit      
    Serial.println("Bounce");
    Serial.println(byteSend);
//    delay(100);
  }// End If RS485SerialAvailable

}//--(end main loop )---