【雕爷学编程】Arduino动手做(140)---MAX3232串口转换板
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百四十:MCU mini RS232 MAX3232电平转TTL电平转换板 串口转换板
知识点:MAX3232芯片
采用专有低压差发送器输出级,利用双电荷泵在3.0V至5.5V电源供电时能够实现真正的RS-232性能,器件仅需四个0.1uF的外部小尺寸电荷泵电容。MAX3232确保在120kbps数据速率,同时保持RS-232输出电平。
MAX3232具有二路接收器和二路驱动器,提供1uA关断模式,有效降低功效并延迟便携式产品的电池使用寿命。关断模式下,接收器保持有效状态,对外部设备进行监测,仅消耗1uA电源电流,MAX3232的引脚、封装和功能分别与工业标准MAX242和MAX232兼容。即使工作在高数据速率下,max3232仍然能保持RS-232标准要求的正负5.0V最小发送器输出电压。
只要输入电压在3.0V至5.5V范围以内,即可提供+5.5V(倍压电荷泵)和—5.5V(反相电荷泵)输出电压,电荷泵工作在非连续模式,一旦输出电压低于5.5V,将开启电荷泵;输出电压超过5.5V,即可关闭电荷泵,每个电荷泵需要一个飞容器和一个储能电容,产生V+和V-的电压。
MAX3232在最差工作条件下能够保证120kbps的数据速率。通常情况下,能够工作于235kbps数据速率,发送器可并联驱动多个接收器和鼠标。
MAX3232是MAXIM公司生产的一款 232通讯的芯片,他可以将单片机的逻辑信号的电平转成RS232的电平。因为RS232是用,正负电平来表示0和1的信号,所以MAX3232要产生相应的正负电压。在使用MAX3232时,先确定一下系统接供的电压,因为此芯片,对不同的工作电压,要给不同的电容来产生电压。通电后,先检测一下2脚是否有+5.4V以上的电压,6脚有-5.4V以上的电压,16脚是否有电压, 如没有则要检查相应的电容。注意在16脚一定要有电容,要不然就可能不能产生相应的电压。
MAX3232器件包括两个线路驱动器,两个线路接收器以及一个双电荷泵电路,该电路的两端(±5 kV)ESD保护端子(串行端口连接端子,包括GND)均处于该状态。该设备符合TIA / EIA-232-F的要求,并在异步通信控制器和串行端口连接器之间提供电接口。电荷泵和四个小型外部电容器允许在3V至5.5V单电源下工作。这些器件以高达250 kbit / s的数据信令速率和最大30V / µs的驱动器输出压摆率工作。
MAX3232主要特征
使用人体模型(HBM)的RS-232总线端子ESD保护超过±15 kV
达到或超过TIA / EIA-232-F和ITU V.28标准的要求
使用3V至5.5VV CC电源工作
最高可运行250 kbit / s
两个驱动程序和两个接收器
低电源电流:300 µA(典型值)
外部电容器:4×0.1 µF
接受具有3.3V电源的5V逻辑输入
备用高速终端兼容设备(1 Mbit / s)
SN65C3232(–40°C至85°C)
SN75C3232(0°C至70°C)
电压范围:3V~5V
最高波特率:建议不要高于120kbps
尺寸:9.4mm*15.9mm
模块参考电原理图
下面为模块正反面图,两边的电源是接在一起的,只需接一边即可,两面分别的独立的两个通道,均可使用,箭头表示信号流向,向里说明是输入,向外说明是输出,靠近RS232字符端为RS232电平,靠近TTL字符端为TTL电平。
TTL电平逻辑1为+5V,逻辑0为0V。
RS232电平逻辑1为+3V~+15V,逻辑0为-3V~-15V。
也就是说我们所转换的数据电平+5V ->(+3V~+15V),0V->(-3V~-15V)即可。
我们的MAX232是5V供电的,+5V ->(+3V~+15V)的转换是很容易满足的,0V->(-3V~-15V)就需要内部产生一个负压电源然后去转换输出。MAX232的一般外接4个电容,C+对地之间,C-对地之间的电容用于稳定电荷泵输出的电压,由于C1+ C1-之间的电容加上C2+和C2-之间的电容。由于都是由VCC对它们进行循环充电,产生的V+<=2VCC,V->=-2VCC。这样也基本满足232的电平要求了。CMOS电平的转换同理。
Arduino实验开源代码
/* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验一百四十:MCU mini RS232 MAX3232电平转TTL电平转换板 串口转换板 实验接线(TTL端) + +5V - GND TXD 2 RXD 3 实验接线(RS232端) + +3.3V - GND TXD 4 RXD 5 */ char val = 0; int BluePin = 2; int HelloPin = 3; int RedPin = 4; int GreenPin = 5; void setup() { Serial.begin(115200); pinMode(GreenPin, OUTPUT); pinMode(RedPin, OUTPUT); pinMode(BluePin, OUTPUT); pinMode(HelloPin, INPUT); digitalWrite(GreenPin, HIGH); digitalWrite(RedPin, HIGH); digitalWrite(BluePin, LOW); delay(5000); } void loop() { if (digitalRead(HelloPin) == HIGH) Serial.println("hello!"); while (Serial.available()) { digitalWrite(GreenPin, HIGH); val = Serial.read(); if ((char)val == 'A') { digitalWrite(RedPin, HIGH); digitalWrite(GreenPin, LOW); delay(5000); } } }
实验串口返回情况
Arduino实验场景图
相关线上资料
RS232至TTL至Arduino(MAX232)
https://forum.arduino.cc/index.php?topic=475964.0