【雕爷学编程】Arduino动手做(75)---TTL转RS-485模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验七十五:TTL转RS-485模块 MAX485 RS485模块


MAX485

是一个8个引脚的芯片,它是一个标准的RS485收发器,只能进行半双工的通讯,内含一个输出驱动器和一个信号接收器。MAX485具有低功耗设计,静态电流仅为300uA。MAX485具有三态输出特性,在使用MAX485时,总线最多可以同时连接32个MAX485芯片。通讯波特率可以达到2.5M 。

MAX485的引脚定义 

RO(引脚1):接收信号的输出引脚。可以把来自A和B引脚的总线信号,输出给单片机。是COMS电平,可以直接连接到单片机。 

RE(引脚2):接收信号的控制引脚。当这个引脚低电平时,RO引脚有效,MAX485通过RO把来自总线的信号输出到单片机;当这个引脚高电平时,RO引脚处于高阻状态。 

DE(引脚3):输出信号的控制引脚。当这个引脚低电平时,输出驱动器无效;当这个引脚高电平时,输出驱动器有效,来自DI引脚的输出信号通过A和B引脚被加载到总线上。是COMS电平,可以直接连接到单片机。 

DI(引脚4):输出驱动器的输入引脚。是COMS电平,可以直接连接到单片机。当DE是高电平时,这个引脚的信号通过A和B脚被加载给总线。 

GND(引脚5):电源地线。 

A(引脚6):连接到RS485总线的A端。

B(引脚7):连接到RS485总线的B端。 

Vcc(引脚8):电源线引脚。电源4.25V≤Vcc≤5.75V。

MAX485采用单一电源+5 V工作,额定电流为300 μA,采用半双工通讯方式。它完成将TTL电平转换为RS-485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100Ω的电阻。



MAX485的几个应用电路


TTL转RS-485模块 MAX485 RS485模块


模块特点

1、板载MAX485芯片,是一款用于RS-485通信的低功耗、限摆率收发器

2、板载接5.08(mm)间距2P接线柱,方便RS-485通信接线

3、芯片全部引脚已经引出,可以通过单片机控制操作

4、工作电压:5V

5、板子尺寸:46(mm)x12(mm)


模块电原理图

相比TTL的通讯方式,RS485具有传输距离远,抗干扰能力强,能够串联大量RS485设备的特点。最重要的是,能兼容大量RS485协议的工业级设备。如果用户需要在多个设备之前保持长距离稳定通信,RS485是一个非常好的选择。

●    工作电压:5V

●    板载MAX485芯片

●    RS485通信功耗低

●    5.08mm间距2P端子

●    方便的RS-485通讯接线

●    板尺寸:44 x 14mm

●    它允许长距离1200米的串行通信

MAX-485 TTL至RS-485转换器模块的引脚

引脚名称                     引脚说明

VCC                                5V

A                  非反相接收器输入,非反相驱动器输出

B                   反相接收器输入,反相驱动器输出

GND                          GND(0V)

R0                          接收器输出(RX引脚)

RE                      接收器输出(低电平有效)

DE                     驱动器输出(高电平使能)

DI                         驱动器输入(TX引脚)


RS485由RS232和RS422发展而来,弥补了抗干扰能力差、通信距离短、速率低的缺点,增加了多点、双向通信能力,即允许多个发送器连接在同一条主线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围。

RS485可以采用二线和四线两种方式,二线制可以实现真正的多点双向通信.其主要特点如下:

    (1)RS485的接口信号电平比RS231-C低,不易损坏接口电路的芯片,且该电平与TTL电平兼容,方便于TTL电路相连接。

    (2)RS485的数据最高传输速率为10Mbps.其平衡双绞线的长度与传输速率呈反比,在100Kbps速率下,才可能使用规定的最长电缆长度,只有在很短的距离下才能获得最高传输速率。

    (3)RS485接口采用平衡驱动器和差分接收器的组合,抗共模干扰能力强,即抗噪声干扰性好,因而通信距离远,最大传输距离大约为1200m,实际可达3000m。

    (4)RS485接口在总线上允许连接多达128个收发器,既具有多站能力.同时需要两个终端电阻,其阻值要求等于传输电缆的特性阻抗.在短距离300m内传输时可不连接终端电阻。

/*

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验七十六:TTL转RS-485模块 MAX485 RS485模块

将Arduino上的数字引脚10、11设置为软串口RX和TX与MAX485模块上的RO和DI连接

MAX485模块上的RE和DE连接在一起用一个引脚2控制MAX485收发状态切换

*/

#include <SoftwareSerial.h>

SoftwareSerial Master(10, 11);

char val;

int DE_RE=2;

void setup() {

 Serial.begin(38400);  

 Serial.println("Master is ready!");

 Master.begin(38400);

 pinMode(DE_RE,OUTPUT); 

 digitalWrite(DE_RE,LOW);

}

void loop() {

 while (Serial.available()) {

   digitalWrite(DE_RE,HIGH);

   val = Serial.read();

   Master.write(val);

 }

 digitalWrite(DE_RE,LOW);

 while(Master.available()) {

   val = Master.read();

   Serial.write(val);

 }

}

实验串口返回情况


/*

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验七十六:TTL转RS-485模块 MAX485 RS485模块

程序之二,主机代码

*/

#include <SoftwareSerial.h>

SoftwareSerial Master(10, 11);

char val[5]={'0','0','N','N','N'};             //定义一个数组,用来将从机地址和信息匹配

char address;                                  //定义从机地址

int DE_RE=2;

void setup() {

 Serial.begin(9600);                        //初始化

 Serial.println("Master is ready!");

 Master.begin(38400);

 pinMode(DE_RE,OUTPUT); 

 digitalWrite(DE_RE,LOW);

}

void loop()

{

 for(int i = 49 ; i < 51 ; i++)             //用来对每个从机进行一次大轮询

 {

//==========发送车位序号i=============================================//

     digitalWrite(DE_RE,HIGH);              //将主机设为发送状态

     address = i;                           //给从机发地址,此时是字符式,49对应1的字符串

     Master.write(address);                 //传唤对应号码的从机

     digitalWrite(DE_RE,LOW);               //然后立马换成接收状态

     delay(500);                            //等一下从机反应,之前没有delay,

                                             //maste.available还没反应过来,就过去了,加个

                                             //delay刚刚好

                                             //或许等从机加了超声波,还得调delay的时间


//==========接收车位信息到数组val里===================================// 

     while(Master.available())              //等从机把数据发过来

    {

     val[i-49] = Master.read();             //读车位信息到数组val

    }

 delay(1000);                               //小循环

 }                                          //整个for循环结束

 for(int a = 0 ; a < 5 ; a++)               //然后把整个字符串打印出来进行观察

    {

        Serial.print(a+1);

        Serial.println(val[a]);

    }

 delay(2000);                               //最后一整个过程结束后,多等两秒钟

}

实验二串口返回情况


实验场景图

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容