两个Arduino通过RS485协议通信仿真

1、RS485通信协议介绍

RS485 串行通信协议能够传输数字串行数据,最远距离可达 4000 米或 4 公里。 但通常在 1200 米之后,信号开始下降,传输的信号开始失去强度,因此数据丢失的可能性很小。 为了实现4公里的成功数据传输,承载介质应该是平滑的,并且A线和B线的长度应该是等距的。 外部 EMF(电动势)也会影响携带数据的线路。

RS485 在两根不同的电线上传输两个差分信号,命名为 A 和 B 线。 由于信号极性相反(异相 90 度),它们可以传播到很远的距离。 传输的信号极性相反,行驶过程中的任何外部感应信号都可以在输出端轻松过滤。

由于微控制器不能输出RS485 信号关心数据。 而是需要一个外部设备/模块与微控制器接口以实现 RS485 通信。 Max487 是流行的 RS487 收发器,可以与任何微控制器接口进行RS485 通信。 微控制器向Max487发送数据。 然后 Max487 在 RS485 线路上发送数据。

2、Max487介绍

Max487是用于RS-485和RS422通信的低功耗收发器。每个部分包含一个驱动器和一个接收器。 MAX487具有降低压摆率的驱动器,可最大限度地降低EMI并减少端接不当电缆引起的反射,从而实现高达250kbps的无差错数据传输。
当卸载或满载禁用驱动器时,这些收发器消耗 120µA 至 500µA 的电源电流。此外,MAX487具有低电流关断模式,仅消耗0.1μA。所有部件均采用 5V 单电源供电。
驱动器受短路电流限制,并通过热关断电路保护其免受过度功耗的影响,该电路将驱动器输出置于高阻抗状态。接收器输入具有故障安全功能,可在输入开路时保证逻辑高输出。 MAX487 具有四分之一单位负载接收器输入阻抗,允许多达 128 个 MAX487总线上的 MAX1487 收发器。 MAX487设计用于半双工应用。

Max487的引脚功能如下:

引脚诒 功能
1 RO - 接收器输出
2 RE - 接收器使能,高电平有效
3 DE - 发射器使能,低电平有效
4 DI - 发射器输入
5 GND - 接地
6 A - 同相接收器输入和驱动器输出
7 B - 反相接收器输入和驱动器输出
8 Vcc - +5V 供电

3、仿真电路原理图

4、仿真代码实现

本次实例使用了RS485通信开源库:AndroidRS485

1)数据发送端


#include <ArduinoRS485.h>void setup() {RS485.begin(9600);
}void loop() {RS485.beginTransmission();RS485.print(0x00);RS485.endTransmission();delay(500);RS485.beginTransmission();RS485.print(0x01);RS485.endTransmission();delay(500);
}

2)数据接收端

#include <ArduinoRS485.h>
#include <SoftwareSerial.h>
int led = 7;
char dat;SoftwareSerial softSerial(9,10);
void setup() {pinMode(9,INPUT);pinMode(10,OUTPUT);pinMode(led,OUTPUT);RS485.begin(9600); // 初始化softSerial.begin(9600);// 使能接收,通过RS485.noReceive()禁用接收功能;RS485.receive();softSerial.println("RS485 SLAVE");
}void loop() {if(RS485.available()) {dat = RS485.read(); // 读取数据//softSerial.println(dat);if(dat == '0'){digitalWrite(led,LOW);softSerial.println("led off");}if(dat == '1'){digitalWrite(led,HIGH);softSerial.println("led on");}}
}

5、仿真结果

Arduino与Proteus仿真实例-两个Arduino通过RS485协议通信仿真相关推荐

  1. 传感器i2c与arduino连接_如何在两个Arduino开发板之间使用I2C总线进行通信

    在之前的文章中,我们介绍了Arduino之间的SPI通信.今天我们将学习另一种串行通信协议:I2C(内部集成电路).比较I2C和SPI,I2C只有两条线,而SPI使用四条,I2C可以有多个主机和从机, ...

  2. matlab振动仿真实例小论文,《基于Matlab_Simulink的机械振动仿真研究》-毕业论文.doc...

    PAGE 目 录 TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc155377740" 1引言--机械振动的仿真原理 PAGER ...

  3. 【通信仿真】基于matlab GUI数字基带通信仿真【含Matlab源码 2510期】

    ⛄一.数字基带信号波形仿真简介 主要研究了数字信号的基带传输的基本概念及数字信号基带传输的传输过程和如何用MATLAB软件仿真设计数字基带传输系统.本文首先介绍了MATLAB仿真软件.然后介绍了本课题 ...

  4. Arduino与Proteus仿真实例-I2C总线多个M24C01设备数据储存仿真

    I2C总线多个M24C01设备数据储存仿真 I2C 总线是一种非常流行且功能强大的总线,用于主机(或多个主机)与单个或多个从设备之间的通信. 下图说明了有多少不同的外设可以共享仅通过 2 条线连接到处 ...

  5. matlab无功仿真,第八章MATLAB在无功补偿的仿真 实例.ppt

    第8章 MATLAB在电力系统无功补偿中的应用实例;由上可以看出:维持电压稳定,应该尽量减少无功的传输,采取就地平衡. ; 电力系统的无功功率平衡 ;1.变压器的无功损耗;;电力系统的无功功率电源有发 ...

  6. 单片机 串口编程之串口通信仿真实验

    单片机 串口编程之串口通信仿真实验 一.简述        记--简单的使能串口,串口收发数据的例子.(使用Proteus仿真+虚拟串口调试)        代码,仿真文件打包:链接: https:/ ...

  7. 基带信号及其眼图MATLAB仿真实现,Matlab通信仿真——带限系统下的基带信号

    Matlab通信仿真--带限系统下的基带信号 Matlab通信仿真--带限系统下的基带信号 1 余弦滚降特性 满足消除码间串扰条件的H(f)有很多种,容易想到的一种极限情况,就是H(f)为理想低通型. ...

  8. matlab 眼图 值,Matlab通信仿真——带限系统下的基带信号

    Matlab通信仿真--带限系统下的基带信号 Matlab通信仿真--带限系统下的基带信号 1 余弦滚降特性 满足消除码间串扰条件的H(f)有很多种,容易想到的一种极限情况,就是H(f)为理想低通型. ...

  9. Arduino与Proteus仿真实例-LCD2004(4线LM044L控制器)驱动仿真

    LCD2004(4线LM044L控制器)驱动仿真 LCD2004,即2004字符型液晶显示器,是一种点阵模块,用于显示字母.数字.字符等. 它由 5x8 个点阵位置组成: 每个位置可以显示一个字符. ...

最新文章

  1. 打开文件和关闭文件的含义
  2. Java语言的基础语法
  3. Oracle修改密码文件_转载:Oracle修改用户密码
  4. javascript中浅拷贝和深拷贝的理解
  5. Java Script 学习笔记 -- Ajax
  6. keil4如何将c语言转换成汇编语言_Keil 中关于C语言编译生成汇编代码函数名规则...
  7. qml: 多级窗口visible现象;
  8. a点到b点最短路线有多少条_8下数学培优:几何体上最短路径问题,总结与提升,不一样的感受...
  9. java如何让源码加密还能运行_如何有效防止Java程序源码被人偷窥?
  10. 11个优秀的交互设计作品集
  11. 待机、休眠、睡眠的区别(整理)
  12. python+opencv读取文件夹图片并保存
  13. Excel表格多个工作表数据汇总求和
  14. crash日志学习(初步)
  15. 百度飞桨ai达人创造营01-创意的诞生
  16. Android支持播mp4的文件管理,Android - 简单使用VideoView播放MP4
  17. u-boot移值(九)-u-boot的编译、链接过程
  18. 如何用Phaser实现一个全家福拼图H5
  19. 我是这样走进IBM的(转载)
  20. React高频面试题总结 (附答案及原理代码)

热门文章

  1. 单片机学习笔记————51单片机实现带数码管显示的象棋比赛专用计时器
  2. 机器学习算法总结(七)——隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)...
  3. 很遗憾,你们的问题我无法回答--Leo谈应届生求职(10)结局篇
  4. 用事实说话,用行动回报大家的支持!
  5. win10计算机磁盘图标,老司机帮你win10系统更改本地磁盘图标的修复方案
  6. 为什么扁鹊被称为“神医”?
  7. Unity 动态修改URP自带材质参数
  8. 在线接口测试工具(神器)
  9. 已知测量精度,计算工业相机分辨率
  10. Python机器学习库sklearn里利用LR模型进行三分类(多分类)的原理