diff options
| author | Yuval Adam <yuv.adm@gmail.com> | 2014-06-07 12:04:11 +0300 |
|---|---|---|
| committer | Yuval Adam <yuv.adm@gmail.com> | 2014-06-07 12:04:11 +0300 |
| commit | 49c60ad281015b1ccbc8db9b9d1f4d3903be4d61 (patch) | |
| tree | bf75c244f752302ef7631fba8882ea5e5d970983 | |
| parent | 1161e1c9bbaf23caf35b675873c1f221a8c7dab1 (diff) | |
Initial cleanup
| -rw-r--r-- | rs485slave/src/sketch.ino | 95 |
1 files changed, 29 insertions, 66 deletions
diff --git a/rs485slave/src/sketch.ino b/rs485slave/src/sketch.ino index 4b5b15e..3a4717d 100644 --- a/rs485slave/src/sketch.ino +++ b/rs485slave/src/sketch.ino @@ -1,57 +1,38 @@ -/* YourDuino SoftwareSerialExample1Remote - - Used with YD_SoftwareSerialExampleRS485_1 on another Arduino - - Remote: Receive data, loop it back... - - Connect this unit Pins 10, 11, Gnd - - To other unit Pins 11,10, Gnd (Cross over) - - Pin 3 used for RS485 direction control - - Pin 13 LED blinks when data is received - - Questions: terry@yourduino.com -*/ - -/*-----( Import needed libraries )-----*/ #include <SoftwareSerial.h> -/*-----( Declare Constants and Pin Numbers )-----*/ -#define SSerialRX 2 //RO Serial Receive pin -#define SSerialTX 13 //DI Serial Transmit pin +#define SSerialRX 13 // RO +#define SSerialTX 10 // DI +#define SSerialTxControl 11 // DE + RE jumpered 12 + +#define RelayStartPin 2 +#define RelayEndPin 9 -#define SSerialTxControl 3 //DE RE RS485 Direction control #define RS485Transmit HIGH #define RS485Receive LOW +#define RS485Baud 115200 -#define Pin13LED 13 +#define SerialDebug 0 -/*-----( Declare objects )-----*/ -SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX +SoftwareSerial RS485Serial(SSerialRX, SSerialTX); -/*-----( Declare Variables )-----*/ int byteReceived; int byteSend; -void setup() /****** SETUP: RUNS ONCE ******/ +void setup() { - // Start the built-in serial port, probably to Serial Monitor - Serial.begin(9600); - Serial.println("SerialRemote"); // Can be ignored - - pinMode(Pin13LED, OUTPUT); - pinMode(SSerialTxControl, OUTPUT); - - pinMode(4, OUTPUT); - pinMode(5, OUTPUT); - pinMode(6, OUTPUT); - pinMode(7, OUTPUT); - pinMode(8, OUTPUT); - pinMode(9, OUTPUT); - pinMode(10, OUTPUT); - pinMode(11, OUTPUT); - pinMode(12, OUTPUT); + if (SerialDebug) { + Serial.begin(9600); + Serial.println("SerialRemote"); + } - digitalWrite(SSerialTxControl, RS485Receive); // Init Transceiver + for (int i=RelayStartPin; i<=RelayEndPin; i++) { + pinMode(i, OUTPUT); + } + pinMode(SSerialTxControl, OUTPUT); + + digitalWrite(SSerialTxControl, RS485Receive); - // Start the software serial port, to another device - RS485Serial.begin(4800); // set the data rate -}//--(end setup )--- + RS485Serial.begin(RS485Baud); +} void togglePin(int pin) { if (digitalRead(pin) == HIGH) { @@ -60,31 +41,13 @@ void togglePin(int pin) { digitalWrite(pin, HIGH); } } -void loop() /****** LOOP: RUNS CONSTANTLY ******/ + +void loop() { - //Copy input data to output if (RS485Serial.available()) { - byteSend = RS485Serial.read(); // Read the byte - - digitalWrite(Pin13LED, HIGH); // Show activity - delay(10); - digitalWrite(Pin13LED, LOW); - - togglePin(byteSend - 97 - 8 + 4 ); - - Serial.println(byteSend); - //digitalWrite(SSerialTxControl, RS485Transmit); // Enable RS485 Transmit - //RS485Serial.write(byteSend); // Send the byte back - //delay(10); - //digitalWrite(SSerialTxControl, RS485Receive); // Disable RS485 Transmit -// delay(100); - }// End If RS485SerialAvailable - -}//--(end main loop )--- - -/*-----( Declare User-written Functions )-----*/ -//NONE - -//*********( THE END )*********** - + byteSend = RS485Serial.read(); + togglePin(byteSend - 97 - 8 + 4); + Serial.println(byteSend); + } +} |
