/*-----( Import needed libraries )-----*/ #include /*-----( 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 )---