程序如何写串口控制继电器开关?求思路和源码?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序如何写串口控制继电器开关?求思路和源码?相关的知识,希望对你有一定的参考价值。
程序如何写串口控制继电器开关?求思路和源码?
用串口控制继电器开关,只要能识别出串口接收的数据是什么就行。如果只是一个继电器,那只有两个动作,开和关,所以,自己确实两个控制代码,如用0xA1表示开,0xAF表示关。串口收到数据后,判断是什么代码后,就执行相应动作即可。如果想简单的控制代码,就用这一个字节,想串口控制更可靠,就用多字节代码,并有校验码,保证串口通信控制的正确可靠。 参考技术A 比较简单可靠可拓展方式举个例子:5字节一帧,第一位默认AF 第五位默认BF 第二位为地址位,三四位为命令地位位是为了拓展一个串口控制多个开关(尤其是同频道的无线串口模块有用)。以下为参考数据结构。当前设计没有校验位,需要可以自己加上,比如第五位为前四位校验和,第六位为固定df等等方式
AA BB CC DD EE
AA起始位 af
BB 地址位
CCDD
0101闭合
0202打开
0303翻转
04XX点动闭合XX*100ms
05XX点动闭合XX*1S
06XX点动断开XX*1S
07XX循环周期XX*1S
08XX循环开关XX*1min
0909查询当前开关1开0关
0a01命令时返回ACK
0a02命令时不返回ACK
ecec设置新地址,BB位置为新地址
ebeb查询地址
eaXX设置波特率 1:4800 2:9600 3:19200 4:38400
e9e9查询波特率
e8XX设置按键模式 01翻转 02屏蔽串口 03点动 X3点动,闭合X*1S后断开
e7e7查询按键模式
e6XX设置开机状态 01断开 02闭合 03上次断电前模式
e5XX查询开机状态
EE 默认df结束位
航模遥控继电器单通道控制2路继电器开关实现原理解析
航模遥控继电器单通道控制2路继电器开关实现原理解析
航模遥控继电器
硬件解析
- 两路型号为: SRD-05VDC-SL-C 继电器
- 2个PC817光耦
- 3个S4,1N5819WS肖特基二极管
- 2个S8050 NPN型三极管
- 2个指示灯,用于继电器导通时点亮。
- 1片
STC15W104
单片机
功能简介
仅支持5V电压接收机,不能超过5.5否则可能会造成模块损坏.(这么写主要原因是STC15单片机工作电压范围决定的。)
- 1路舵机信号输入,控制2路电子开关
- 250V/AC 最大受控电压, 10A电流。
- 受控端支持 10A 250VAC /10A /30VDC
- 2路输出(同一时间只能一个继电器动作)
- 无需校准就能兼容各品牌的遥控设备
- 三段开关通道/比例通道控制
- 带蓝色LED指示灯功能。
- ★ 功能描述
该远程开关通过遥控器上的某个开关通道远程控制飞机模型上多达2路的电气设备
本设备无需校准,能准确的兼容各种品牌的遥控设备。
本设备使用接收机供电。
典型应用
- 连接
将信号输入电缆插入接收机的三段开关通道或者摇杆通道,该通道和遥控器上对应。
将控制端开关和设备连接。 - 触发
(以油门通道为例)将遥控器上的油门遥杆拨到满油门,一个继电器闭合(即公共端和常开端接线接通,公共端和常闭端断开)。将遥控器上的油门遥杆拨到半油门,两路继电器都不闭合(即公共端和常开端断开,公共端和常闭端接通)。将遥控器上的油门遥杆拨到最小油门,另一个继电器闭合(即公共端和常开端接线接通,公共端和常闭端断开)。
(以三段开关通道为例)将遥控器上的三段开关拨到高位,一个继电器闭合(即公共端和常开端接线接通,公共端和常闭端断开)。将遥控器上的三段开关拨到中位,两路继电器都不动作(即公共端和常开端断开,公共端和常闭端接通)。将遥控器上的三段开关拨到低位,另一个继电器闭合(即公共端和常开端接线接通,公共端和常闭端断开)。
原理图
- 继电器控制端
- 单片机原理图
- 总的原理图绘制
- 绘制的PCBA板图(单片机供电的地方自己多增加的了一个电容,一个滤除高频的一个滤除低频的)
因为这只是自己照着模块绘制的原理图和PCBA板,没有验证就不开元路,免得坑人家,基本的原理图就是这样的,不过市面上在出售的这个模块,感觉还是有很多不足的地方:
- 从原理图上可以看出,并没有做到真正的隔离。
- 不能处理频率较高输入和输出的开关量信号。
- 如果是控制PWM输出,建议使用MOS管,而不是使用继电器。
- 可能采用的是采集模拟量信号,(当然不排除使用单总线的通讯协议)通过单片机采集到的模拟量来判断是否开启,或开启哪一路或多路开关,模拟量采集具体实现,就需要看程序里面去设定区间值了。
RC接收机收到信号后将PPM或SBUS信号转换后,传到对应每个通道
- 什么PPM信号
PPM信号是将多个控制通道(一般10个控制通道)集中放在一起调制的信号也就是一个PPM脉冲序列里面包含了多个通道的信息。如下图所示:
模型接收机转接控制电动车控制器信号转换器
采用32位单片机完成信号采集、处理、转换,稳定与速度远超普通8位单片机,输入信号自动识别,无需手动切换,即插即用,状态指示简洁明了,5V供电,支持8通道输出,PWM输出标准范围是在1000-2000us。
兼容:
- PPM(CPPM)
- PWM(普通接收机信号)
- SBUS(包括futaba-R7008SB系列、FrSky等)
功能:
- 输入PWM信号,同时输出PPM与SBUS信号
- 输入PPM信号,同时输出PWM与SBUS信号
- 输入SBUS信号,同时输出PWM与PPM信号
指示灯:
- 无信号输入时,三个指示灯全灭
- 输入信号指示灯常亮,输出信号指示灯闪烁
- 例如:输入PPM信号时,PPM对应指示灯常亮,PWM与SBUS信号指示灯闪烁
通道说明:
- 1-8通道为PWM信号输入或输出通道
- 9通道为SBUS信号输入通道或 PPM 信号输入、输出通道
- 10通道为PPM或SBUS信号输出通道
接线指示:
- 当1-8通道中任意1个或多个通道输入PWM信号时,对应9通道输出PPM信号,10通道输出 SBUS信号
- 当9通道输入PPM信号时,对应1-8通道输出PWM信号,10通道输出SBUS信号
- 当9通道输入SBUS信号时,对应1-8通道输出PWM信号,10通道输出PPM信号
以上是关于程序如何写串口控制继电器开关?求思路和源码?的主要内容,如果未能解决你的问题,请参考以下文章
RS485串口继电器modbus RTU读写通信调试软件工具和python源码
RS485串口继电器modbus RTU读写通信调试软件工具和python源码