基于单片机的远程无线控制系统设计

news/2024/11/10 13:40:03/
摘 要 主要介绍了一种以单片机 AT89C2051 无线模块 APC200A-43 和继电器为核心的远程智能控制系统。 该系统通过对单片机功能的研究 使用单片机的输入输出口和中断实现对控制信号的处理, 通过调试无线通讯模块 控制接近开关实现对远程电机的启动 停止等控制
关键词 单片机 远程无线控制 无线模块 接近开关

引言

近年来 , 我国经济快速发展 , 煤炭需求量剧增 , 对煤矿安全生产提出了更高的要求。 据国家安全生产监督局统计, 我国煤炭安全事故死亡人数为 5 000~7 000 人 /a 如果能尽量减少井下作业的人数或者能让工人尽量远离危险的作业地点, 就能在一定程度上减少事故伤亡人数。 鉴于此 提出了基于单片机 的远程无线控制系统 ,通过该系统来有效地控制远处的设备, 使作业人员尽量远离作业地点

1 远程控制系统总体设计

基于单片机的远程无线 控制系统主 要由发送模块与接收模块组成。 发送模块通过无线模块发送从外部接收到的指令( 如接近开关 ), 接收模块接收到指令后传给单片机 经过单片机处理后 控制继电器的闭合与断开, 达到远程控制电机的目的 。发送模块主要由单片机控制单元、 无线发射单元 、RS485 芯片和接近开关组成 原理框图如图 1 所示
1 发送模块组成框图
接收模块主要由无线接收单元 单片机控制单元、 RS485 芯片 继电器模块及电动机组成 原理框图如图 2 所示
2 接收模块组成框图

2 硬件设计

1 主要芯片的选择
由于控制过程较简单 选用了廉价的AT89C2051单片机 并外接 MAX813 看门狗芯片
芯片电路如图 3 所示
3 看门狗电路图
接近传感器选用的是防铝切削的 E2EZ 型接近开关。
无线模块选用的是多通 道微功率嵌 入式无线数传模块 APC200A-43 其传输距离可达 1 000 m ,工作频率为 431 478 MHz 256bytes 数据缓冲区 提供 UART/TTL RS485 RS232 三种接口 适合大量数据传输, 本文采用的是 RS485 接口 电路图如图 4所示。
4 RS485 接口电路
在数据传输方式上选用的是地址数据传输 即所处传输的前 2 个字节为地址 后为数据 若接收端接收到匹配的数据包, 即将地址 数据传给终端设备, 否则将丢弃 使用这种方式能减轻上位机的软件开销。
2 发送模块设计
发送模块主要由 AT89C2051 单片机 看门狗芯片 MAX813 电压转换芯片 光电耦合器 APC200A-43 无线模块 RS485 芯片 指示灯及接近开关及滤波电路等组成。 实验过程中 通过控制接近传感器 选用的是防铝切削的 E2EZ 型接近开关 来提供高低电平, 控制单片机发送启动数据 AA 或者停止数据(55 ), 单片机通过 RS485 芯片把数据传给无线模块 。发送模块中 的电源芯片 采用的是 MAX730 电压转换芯片, 转换电路如 5 所示
5 MAX730 电压转换电路
光电耦合器采用的是 4N35 原理图如 6 所示
6 光电隔离电路
实验过程中 RS485 接收发送选择位接单片机的 P3.3 接近开关的输出端通过 4N35 光电隔离后, 接到单片机 P3.2 通过手动控制接近开关的接近与远离来控制单片机发送的数据, 程序中启动数 据设为 AA 停 止 数 据 设 为 55 RS485 芯 片连接单片机与 APC200A-43 通过 APC200A-43 把数据传给接收模块。
3 接收模块设计
接收模块主要由 DC/DC 电源转换模块 继电器, APC200A-43 无线模块 RS485 芯片 指示灯及控制电路和滤波电路等组成。
24 V 电源经过滤波电路滤波后 给继电器供电 ,此外还将 24 V 送入 DC/DC 电源转换模块 得到 5 V电压( V CC ), 滤波后供给单片机等使用 电压转换电路如图 7 所示 5 V 滤波电路如图 8 所示

7 24 V 转 5 V 电路

实验过程中 RS485 发送接收选择位接单片机的 P3.3 看门狗接 P1.6 继电器 1 P1.7 ,继电器 2 P1.5 控制电路如图 9 所示
接收模块接收到发送模块发送的数据 AA 或55), 通过 RS485 传给单片机 单片机处理后 通过光电耦合器把信号放大后, 控制继电器控制电机的启动与停止。

3 软件设计与调试

软件设计采用了模块化结构 软件主要由主程序、 发送数据子程序 接收数据子程序 数据验证子程序、 定时子程序 延时子程序 中断服务子程序等组成。 基于以上各个程序模块的设计 本软件实现了对数据的发送与接收, 使得系统具有一定的实用价值。 主程序工作流程软件开发采用 Keil 软件的开发环境, 使用 C 语言模块化编程 为系统调试带来极大的方便。
1 接收模块主程序流程图
接收模块主程序流程图如图 10 所示 首先进行单片机的串口初始化, 进行短暂的延时后 单片机发送数据 AA 启动电机或者报警指示灯 然后设置看门狗的复位时间, 最后通过判断接近开关的状态, 启动中断程序 确定发送数据是 AA 启动 还是 55 停止 ), 延时后返回
2 发送模块主程序流程图
发送模块主程序流程图如图 11 所示 串口初始化之后, 进行延时等待 直到接收到数据 接收到数据后先进行判断, 如果数据正确 则由单片机发送指令控制继电器, 如果数据错误 则发送错误标志, 返回等待新的数据

4 结语

由于是研究无线模块 所以先是在实验室利用报警灯代替电机进行了初步调试, 2 个继电器分别控制报警灯的亮灭和发声, 较好地达到了预期的 最后对电机进行了简单的启动 停止控制 ,也达到了预期的效果, 实现了对电机的简单控制 为下一步的研究提供了基础。

http://www.ppmy.cn/news/1527934.html

相关文章

桥接网络设置多用户lxd容器

文章目录 前言配置宿主机网络固定内核版本安装 lxd、zfs 及 bridge-utils安装宿主机显卡驱动lxd 初始化创建容器模板安装容器显卡驱动复制容器 前言 使用桥接网络配置 lxd 有个好处,就是每个用户都可以在该局域网下有一个自己独立的 IP,该 IP 的端口可以…

玩转RabbitMQ声明队列交换机、消息转换器

♥️作者:小宋1021 🤵‍♂️个人主页:小宋1021主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!! 🎈🎈加油! 加油&#xff01…

【自动驾驶】控制算法(九)深度解析车辆纵向控制 | 从算法基础到 Carsim 仿真实践

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

Leetcode面试经典150题-79.搜索单词

题目比较简单,回溯最基础的题,记得除非覆盖,否则一定要恢复现场就行 解法都在代码里,不懂就留言或者私信 class Solution {public boolean exist(char[][] board, String word) {int m board.length; int n board[0].length;i…

JavaScript如何判断输入的是空格

1、JavaScript如何判断输入的是空格 1.1. 使用trim()方法和length属性 trim() 方法可以移除字符串两端的空白字符(包括空格、制表符、换行符等),然后检查处理后的字符串长度是否为0。 function isOnlySpaces(str) {return str.trim().lengt…

es由一个集群迁移到另外一个集群es的数据迁移

迁移es的数据 改下index的索引 就可以了。 查询 用curl -u就可以查询了

C# 中Faker

在 C# 中,Faker 类通常用于生成模拟数据(也称为虚拟数据、测试数据),这对于开发、测试以及演示应用程序非常有用。一个流行的库叫做 Faker,它提供了一种简单的方式来生成各种随机数据。 安装 Faker 库 要使用 Faker …

VMware安装飞牛私有云fnOS并挂载小雅Alist实现异地远程访问

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…