In this article, we will make two Arduino control each other by turning off /on their built in LED using the RS-485 module
You will need the following items to carry out this project
Hardware
- 2 x Arduino UNO R3, get it here
- 2 x RS-485 module, get it here
- USB to RS-485 converter, get it here
Software
- Latest Arduino IDE, get it here
Introducing the RS-485 module
The RS-485 module is a device that allows sending and receiving of data up to 1.2 km at a rate of 20 Mbps. It can support up to 32 devices. It runs off 5 volts meaning your Arduino can supply power to it.
IMPLEMENTATION
STEP 1: CIRCUIT CONNECTION
Below is the circuit diagram of the project.
STEP 2: UPLOAD THE CODE
1. Start your Arduino IDE and copy the following code into your Arduino IDE
#include <SoftwareSerial.h> /*-----( Declare Constants and Pin Numbers )-----*/ #define SSerialRX 10 //Serial Receive pin #define SSerialTX 11 //Serial Transmit pin #define SSerialTxControl 3 //RS485 Direction control #define RS485Transmit HIGH #define RS485Receive LOW #define Pin13LED 13 /*-----( 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("RS-485 EXAMPLE"); Serial.println("Use Serial Monitor, type Y/N to turn off/ON LED and press ENTER"); pinMode(Pin13LED, OUTPUT); pinMode(SSerialTxControl, OUTPUT); digitalWrite(Pin13LED, LOW); 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 ******/ { if (Serial.available()) { byteReceived = Serial.read(); digitalWrite(SSerialTxControl, RS485Transmit); // Enable RS485 Transmit RS485Serial.write(byteReceived); // Send byte to Remote Arduino delay(10); digitalWrite(SSerialTxControl, RS485Receive); // Disable RS485 Transmit } if (RS485Serial.available()) //Look for data from other Arduino { byteReceived = RS485Serial.read(); // Read received byte if (byteReceived == 'Y' || byteReceived == 'y') { digitalWrite(Pin13LED, HIGH); } else if (byteReceived == 'N' || byteReceived == 'n') { digitalWrite(Pin13LED, LOW); } Serial.write(byteReceived); // Show on Serial Monitor delay(10); digitalWrite(Pin13LED, LOW); // Show activity } }
2. Click the upload button
(Note: Upload code to both Arduino)
3. Open your serial monitor and type Y or N to turn on/off the built in LED
Feel free to write any comments, thank you.
Wanna do more?
Build a Carbon Monoxide sensor with LCD display. Get the parts
RS-485 Two Way Communications with Arduino – Nerdshed
lehvrmmvw http://www.ggr774h157bx8p2f2kv1a8hps302zp35s.org/
alehvrmmvw
[url=http://www.ggr774h157bx8p2f2kv1a8hps302zp35s.org/]ulehvrmmvw[/url]
Explosion-proof Electromagnetic Starter Control
Plastic Storage Drawer Cabinet
Storage Organizer
Enclosed Explosion-proof Electromagnetic Starter
http://www.consultationcrackdown.top
Adjustable Thermal Relay
Clear Plastic Box
Plastic Laundry Basket
Plastic Shoe Box
AC 50/60Hz Thermal Relay
Thermal Overload Relay
Shackle Spring Suspension Bracket