轻量级开源 USB 继电器控制器(Windows)
·
本文介绍一个专为 LCUS-1 型 USB 继电器(或任何支持串口控制的继电器模块)设计的轻量级控制程序。该程序使用 C++ 原生 Windows API 通过 CH340 等串口芯片发送十六进制指令,实现继电器的吸合、断开与定时功能,适用于 Windows 10/11 系统。



预编译程序
项目已封装为独立的可执行文件,无需配置开发环境或编译源码,开箱即用。
- 获取程序:从项目仓库的release下载
USB继电器控制器.exe。 - 运行与注意:直接运行程序。部分安全软件可能会误报,请在运行时暂时允许或将其加入白名单。
- 功能特性:程序界面支持选择串口号、手动开启/关闭继电器以及设置定时关闭。
项目仓库地址:github
源码编译
如果你想了解其实现原理、进行二次开发或自定义功能,可以参考以下步骤从源码编译。
1. 开发环境配置
1.1 安装 C++ 编译器 (MinGW-w64)
我们推荐使用 MSYS2 来获取完整的 GCC 工具链。
- 访问 https://www.msys2.org/ 下载并安装。
- 打开 MSYS2 UCRT64 终端。
- 执行以下命令安装编译工具链:
出现提示时,输入pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchainy并按回车确认。
1.2 配置系统环境变量
将编译器的 bin 目录添加到系统 PATH,以便在任意位置调用 g++。
- 打开“系统属性” -> “高级” -> “环境变量”。
- 在“系统变量”中编辑
Path,新建一项并添加:C:\msys64\ucrt64\bin - 保存后,重启你的终端或 IDE 使配置生效。
1.3 安装 VS Code 插件(可选但推荐)
如果你使用 VS Code,安装以下插件可以极大提升开发体验:
- C/C++ (Microsoft):提供智能提示、代码跳转和调试支持。
- Code Runner (Jun Han):支持一键运行代码片段。
2. 硬件准备与代码配置
2.1 确认串口号 (COM Port)
将你的 USB 继电器(或 CH340 模块)插入电脑,然后通过以下任一方式查看其分配的串口号:
- 打开“设备管理器”,展开“端口 (COM 和 LPT)”查看。
- 使用串口调试助手软件(如友善串口助手)自动检测。
2.2 修改源码并编译
- 打开项目中的
serial.cpp源文件。 - 找到并修改以下关键参数以匹配你的硬件:
// 修改串口号,例如 COM10 CreateFileA("\\\\.\\COM10", ...); // 注意:COM10及以上端口必须使用 “\\\.\\” 前缀 // 波特率(通常无需修改) // dcb.BaudRate = CBR_9600; // 修改为你的继电器控制指令(十六进制数组) unsigned char data1[] = {0xA0, 0x01, 0x01, 0xA2}; // 吸合指令示例 unsigned char data2[] = {0xA0, 0x01, 0x00, 0xA1}; // 断开指令示例 - 在终端中,进入源码目录,使用以下命令编译:
g++ serial.cpp -o serial.exe -lsetupapi - 运行生成的可执行文件:
.\serial.exe
常见问题
-
Q: 程序报错“错误:无法打开串口”。
A: 请按以下步骤排查:- 确认 USB 设备已正确连接。
- 检查“设备管理器”中的 COM 口号是否与代码中
CreateFileA函数指定的完全一致。 - 确认是否有其他软件(如串口调试助手)占用了该端口,请先关闭它们。
-
Q: 发送指令后继电器无响应。
A: 可能是指令间隔太短。源码中两条指令间有Sleep(120);(120毫秒)的延时。如果硬件响应较慢,可以尝试将此值增大,例如改为Sleep(1000);(1秒)。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)