程序如何写串口控制继电器开关?求思路和源码?

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路的电气设备
    本设备无需校准,能准确的兼容各种品牌的遥控设备。
    本设备使用接收机供电。

典型应用

  1. 连接
    将信号输入电缆插入接收机的三段开关通道或者摇杆通道,该通道和遥控器上对应。
    将控制端开关和设备连接。
  2. 触发
    (以油门通道为例)将遥控器上的油门遥杆拨到满油门,一个继电器闭合(即公共端和常开端接线接通,公共端和常闭端断开)。将遥控器上的油门遥杆拨到半油门,两路继电器都不闭合(即公共端和常开端断开,公共端和常闭端接通)。将遥控器上的油门遥杆拨到最小油门,另一个继电器闭合(即公共端和常开端接线接通,公共端和常闭端断开)。

(以三段开关通道为例)将遥控器上的三段开关拨到高位,一个继电器闭合(即公共端和常开端接线接通,公共端和常闭端断开)。将遥控器上的三段开关拨到中位,两路继电器都不动作(即公共端和常开端断开,公共端和常闭端接通)。将遥控器上的三段开关拨到低位,另一个继电器闭合(即公共端和常开端接线接通,公共端和常闭端断开)。

原理图

  • 继电器控制端
  • 单片机原理图
  • 总的原理图绘制
  • 绘制的PCBA板图(单片机供电的地方自己多增加的了一个电容,一个滤除高频的一个滤除低频的)

因为这只是自己照着模块绘制的原理图和PCBA板,没有验证就不开元路,免得坑人家,基本的原理图就是这样的,不过市面上在出售的这个模块,感觉还是有很多不足的地方:

  1. 从原理图上可以看出,并没有做到真正的隔离。
  2. 不能处理频率较高输入和输出的开关量信号。
  3. 如果是控制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源码

航模遥控继电器单通道控制2路继电器开关实现原理解析

12V继电器开关控制

智能开关:orange pi one(arm linux)控制继电器

Linux系统上用QT编写ARM9继电器控制程序的问题。 想写个QT界面程序到arm板子上,通过界面的按钮来控制继电