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

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

实验五十九: RS232转TTL2代串口模块刷机板模块(MAX3232芯片)

MAX3232芯片

采用专有低压差发送器输出级,利用双电荷泵在3.0V至5.5V电源供电时能够实现真正的RS-232性能,器件仅需四个0.1uF的外部小尺寸电荷泵电容。max3232确保在120kbps数据速率,同时保持RS-232输出电平。max3232具有二路接收器和二路驱动器,提供1uA关断模式,有效降低功效并延迟便携式产品的电池使用寿命。关断模式下,接收器保持有效状态,对外部设备进行监测,仅消耗1uA电源电流,max3232的引脚、封装和功能分别与工业标准MAX242和MAX232兼容。即使工作在高数据速率下,max3232仍然能保持RS-232标准要求的正负5.0V最小发送器输出电压。

MAX3232是MAXIM公司生产的一款 232通讯的芯片,他可以将单片机的逻辑信号的电平转成RS232的电平。因为RS232是用,正负电平来表示0和1的信号,所以MAX3232要产生相应的正负电压。在使用MAX3232时,先确定一下系统接供的电压,因为此芯片,对不同的工作电压,要给不同的电容来产生电压。通电后,先检测一下2脚是否有+5.4V以上的电压,6脚有-5.4V以上的电压,16脚是否有电压, 如没有则要检查相应的电容。注意在16脚一定要有电容,要不然就可能不能产生相应的电压。

RS232转TTL2代串口模块刷机板模块(MAX3232芯片)

DB9串口

DB9管脚功能

1 、DCD( Data Carrier Detect) :载波检测。主要用于Modem通知计算机其处于在线状态,即Modem检测到拨号音,处于在线状态。

2 、RXD(Receive(rx) Data):此引脚用于接收外部设备送来的数据;在你使用Modem时,你会发现RXD指示灯在闪烁,说明RXD引脚上有数据进入(电脑的2接MAX232的RS232端TOUT(如PIN7))。

3 、TXD(Transmit(tx)  Data):此引脚将计算机的数据发送给外部设备;在你使用Modem时,你会发现TXD指示灯在闪烁,说明计算机正在通过TXD引脚发送数据。

4 、DTR( Data Terminal Ready ):数据终端就绪;当此引脚高电平时,通知Modem可以进行数据传输,计算机已经准备好。

5 、GND(Ground):逻辑地。

6 、DSR(data set ready):数据设置就绪;此引脚高电平时,通知计算机Modem已经准备好,可以进行数据通讯了。

7 、RTS(Request To Send):请求发送;此脚由计算机来控制,用以通知Modem马上传送数据至计算机;否则,Modem将收到的数据暂时放入缓冲区中。

8 、CTS(Clear to send): 清除发送;此脚由Modem控制,用以通知计算机将欲传的数据送至Modem。

9 、RI ( Ring Indicator): Modem通知计算机有呼叫进来,是否接听呼叫由计算机决定。

要想实现串口间通信,至少需要三个引脚,即:RXD,TXD,GND,RXD与其他串口线TXD相连,TXD与RXD相连,GND与GND相连,这样就实现了串口间通信。该通信是全双工的,即可以同时发送/接收数据,虽然说是串行的,但是因为发送/接收不是用的一个通道,所以可以实现全双工。

DB9与MAX3232的连接电路图

模块电原理图

实验开源代码

/*

【Arduino】168种传感器模块系列实验(59)

实验五十九: RS232转TTL2代串口模块刷机板模块(MAX3232芯片)

程序之一,读取缓存中的串口数据

注意这里的接线方法,软串口RX接RS232转接板的RX口,

TX接RS232转接板的TX口

*/

#include <SoftwareSerial.h>

SoftwareSerial DLSerial(6, 7); // 软串口 RX(D6), TX(D7)

void setup() {

DLSerial.begin(9600); //设备波特率9600

}

void loop() {    

DLSerial.write(1); //发送字节数据

DLSerial.write(3);

delay(500);

while (DLSerial.available()>0) //如果缓存中有接收到的数据

{

    DLSerial.read(); //读取缓存中的串口数据

    delay(2);

}

delay(500);

}

  

/*

【Arduino】168种传感器模块系列实验(59)

实验五十九: RS232转TTL2代串口模块刷机板(MAX3232芯片)

程序之二,接收串口数据

rx = 6

tx = 7

*/

#include <ctype.h>

#define bit9600Delay 100  

#define halfBit9600Delay 50

#define bit4800Delay 188 

#define halfBit4800Delay 94 

byte rx = 6;

byte tx = 7;

byte SWval;

void setup() {

  pinMode(rx,INPUT);

  pinMode(tx,OUTPUT);

  digitalWrite(tx,HIGH);

  delay(2);

  digitalWrite(13,HIGH); 

  SWprint('o');  

  SWprint('k');

  SWprint(10);

}

void SWprint(int data)

{

  byte mask;

  digitalWrite(tx,LOW);

  delayMicroseconds(bit9600Delay);

  for (mask = 0x01; mask>0; mask <<= 1) {

    if (data & mask){ 

     digitalWrite(tx,HIGH); 

    }

    else{

     digitalWrite(tx,LOW); 

    }

    delayMicroseconds(bit9600Delay);

  }

  digitalWrite(tx, HIGH);

  delayMicroseconds(bit9600Delay);

}

int SWread()

{

  byte val = 0;

  while (digitalRead(rx));

  if (digitalRead(rx) == LOW) {

    delayMicroseconds(halfBit9600Delay);

    for (int offset = 0; offset < 8; offset++) {

     delayMicroseconds(bit9600Delay);

     val |= digitalRead(rx) << offset;

    }

    delayMicroseconds(bit9600Delay); 

    delayMicroseconds(bit9600Delay);

    return val;

  }

}

void loop()

{

    SWval = SWread(); 

    SWprint(toupper(SWval));

}

  

实验仿真编程(linkboy)

【雕爷学编程】Arduino动手做(59)---RS232转TTL串口模块的更多相关文章

  1. 「雕爷学编程」Arduino动手做(9)——火焰传感器模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  2. 「雕爷学编程」Arduino动手做(10)——敲击传感器模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  3. 「雕爷学编程」Arduino动手做(14)——倾斜角度模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  4. 「雕爷学编程」Arduino动手做(12)——霍尔磁力模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  5. 「雕爷学编程」Arduino动手做(11)——金属触摸模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  6. 「雕爷学编程」Arduino动手做(8)——湿度传感器模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  7. 「雕爷学编程」Arduino动手做(7)——旋转电位器模块

    37款传感器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验 ...

  8. 【雕爷学编程】Arduino动手做(6)---声音传感器模块

    37款传感器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验 ...

  9. 「雕爷学编程」Arduino动手做(41)---激光接收管模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

随机推荐

  1. scrollview 和 listview滑动冲突解决

    http://blog.csdn.net/wanghao200906/article/details/51084975 http://www.cnblogs.com/shitianzeng/artic ...

  2. 五分钟秒懂机器学习混淆矩阵、ROC和AUC

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第18篇文章,我们来看看机器学习领域当中,非常重要的其他几个指标. 混淆矩阵 在上一篇文章当中,我们在介绍召回率.准确率 ...

  3. mysql错误代码对照表较完整

    mysql错误代码对照表较完整 mysql_errno() From: http://blog.csdn.net/aidenliu/article/details/5925604 mysql错误代码对 ...

  4. nCOV 数据简要分析 (0326)

    nCOV 数据简要分析 (0326) matlabdatacov 简介 碰巧看到了数据上传, 正在跑数据的我想着要不拟合一下看看, 然后, 就做了两个小时, 这里做一个简单的记录过程, 后续可能做在线 ...

  5. java中的Volatile关键字使用

    文章目录 什么时候使用volatile Happens-Before java中的Volatile关键字使用 在本文中,我们会介绍java中的一个关键字volatile. volatile的中文意思是 ...

  6. c语言-----劫持自己02

    在上一节 c语言-----劫持原理01 已经叙述了劫持原理,下边正式进入劫持实战 1. 需要实现的功能 在c语言中 system("notepad") 可以打开一个记事本 syst ...

  7. 再也不用c刷题了!!——c++刷题必备

    致读者: 博主是一名数据科学与大数据专业大二的学生,真正的一个互联网萌新,写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和自己一样处于困惑的读者.由于水平有限,博客中难免会有一些错误 ...

  8. Spark 源码系列(六)Shuffle 的过程解析

    Spark 大会上,所有的演讲嘉宾都认为 shuffle 是最影响性能的地方,但是又无可奈何.之前去百度面试 hadoop 的时候,也被问到了这个问题,直接回答了不知道. 这篇文章主要是沿着下面几个问 ...

  9. 【kafka KSQL】游戏日志统计分析(1)

    [kafka KSQL]游戏日志统计分析(1) 以游戏结算日志为例,展示利用KSQL对日志进行统计分析的过程. 启动confluent cd ~/Documents/install/confluent ...

  10. 全网最清晰的ConstraintLayout教程

    ConstraintLayout是AndroidStudio2.2新增的一个功能,那么这个到底是什么呢?首先第一点我们知道传统的安卓开发,页面基本都是XML编写实现,特别在一些复杂的页面上需要嵌套多层 ...