72 lines
1.9 KiB
C++
72 lines
1.9 KiB
C++
|
|
/*-----( 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("Master connector");
|
|
|
|
|
|
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 ******/
|
|
{
|
|
digitalWrite(Pin13LED, HIGH); // Show activity
|
|
if (Serial.available())
|
|
{
|
|
byteReceived = Serial.read();
|
|
|
|
digitalWrite(SSerialTxControl, RS485Transmit); // Enable RS485 Transmit
|
|
RS485Serial.write(byteReceived); // Send byte to Remote Arduino
|
|
|
|
digitalWrite(Pin13LED, LOW); // Show activity
|
|
//Serial.println("\nRead Local");
|
|
delay(10);
|
|
digitalWrite(SSerialTxControl, RS485Receive); // Disable RS485 Transmit
|
|
}
|
|
|
|
if (RS485Serial.available()) //Look for data from other Arduino
|
|
{
|
|
digitalWrite(Pin13LED, HIGH); // Show activity
|
|
byteReceived = RS485Serial.read(); // Read received byte
|
|
Serial.println("Received ");
|
|
Serial.write(byteReceived); // Show on Serial Monitor
|
|
|
|
delay(10);
|
|
digitalWrite(Pin13LED, LOW); // Show activity
|
|
}
|
|
|
|
}//--(end main loop )---
|
|
|
|
/*-----( Declare User-written Functions )-----*/
|
|
|
|
//NONE
|
|
//*********( THE END )***********
|