|
该项目将向您展示如何将最多三个独立的RS485总线连接到一个Arduino。
这个项目中使用的东西 硬件组件 Arduino UNO和Genuino UNO × 1 隔离RS422 / RS485屏蔽 × 2 介绍
Arduino UNO带有两个堆叠式RS485防护罩 在这篇博客文章中,我将展示如何将最多三个独立的RS485总线连接到一个Arduino。如果要在这些总线之间创建网关,或者如果要控制这些总线中的设备(无需连接总线本身),这将非常有用。另一个应用是将RS422设备(例如电机控制)和RS485设备(例如传感器)连接到相同的Arduino。 在任何情况下,您都需要一个带有隔离接口的可堆叠RS485屏蔽,以消除接地问题并保护Arduino。对于任何RS485总线(或RS422),我们需要一个单独的屏蔽。
为什么隔离接口很重要 总线1的DIP开关和跳线设置: 跳线: UART RX到位置0 UART TX到位置1 电压为5V DIP开关: S1 = OFF - ON - ON - OFF S2 = OFF - OFF - ON - ON S3 = ON - OFF - OFF – OFF
BUS 1的跳线和DIP开关设置 BUS 2的DIP开关和跳线设置: 跳线: UART RX到位置2 UART TX到位置3 电压为5V DIP开关: S1 = OFF - ON - ON - OFF S2 = OFF - OFF - ON - ON S3 = ON - OFF - OFF – OFF
BUS 2的跳线和DIP开关设置 BUS 3的DIP开关和跳线设置: 跳线: UART RX到位置4 UART TX到位置5 电压为5V DIP开关: S1 = OFF - ON - ON - OFF S2 = OFF - OFF - ON - ON S3 = ON - OFF - OFF – OFF
BUS 3的跳线和DIP开关设置 软件集成 总线1的屏蔽将使用PIN 0上的硬件UART和Arduino中的1。其他两个屏蔽将使用软件UART。 #include<SoftwareSerial.h> SoftwareSerial RS485_BUS2(2,3); SoftwareSerial RS485_BUS3(4,5); void setup() { .... // init serialport for bus 1 Serial.begin(9600); // init serialport for bus 2 RS485_BUS2.begin(9600); // init serialport for bus 3 RS485_BUS3.begin(9600); .... 这些软件UART的传输数据受到Arduino的计算能力的限制。当然,如果你将使用基于ARM的Arduino或STM32板,这不会是一个真正的问题,但对于UNO,建议同时只使用两个屏蔽,而第二个屏蔽不要像9600波特那样数据速率。 |
微信公众号
手机版