基于一款最多能够支持10000路的 modbus RS485 led灯光控制板做灯控程序

背景

介绍一款之前用过的一款设备,基于RS485通讯协议,控制LED灯或RGB灯带。

设备介绍

之前用它来做智能中药柜的灯控板,结合物联网网关,modbus采集,mqtt转发,以及mqtt的rpc指令下发

设备图片

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

功能说明

1、ID可设置,范围1~255;485通讯波特率可设置,9600显示96(默认),19200显示192,38400显示384。

2、3种工作模式可选。

3、输出路数可设置,外接驱动板最大支持1776路独立控制。

4、自带2路调光输出,单路输出最大支持24V*3A,灰度范围0~255,可设置频率范围1hz ~ 5khz。

设备设置

三、串口通讯设置:

8位数据/无奇偶校验/1停止位

支持MODBUS-RTU指令:

功能码:0x03 读取保持寄存器(寄存器16位)
功能码:0x06 预设(写)单寄存器(寄存器16位)
功能码:0x10 写多寄存器(寄存器16位)

参数寄存器(修改后自动保存):

寄存器0 - 【ID】(范围:1~255)[只能按键设置]
寄存器1 - 【波特率】(范围:9600、19200、38400)[只能按键设置]
寄存器2 - 【工作模式】(模式1、2、3)
寄存器3 - 【DIM1灰度】(范围:0~255,与模式无关)
寄存器4 - 【DIM2灰度】(范围:0~255,与模式无关)
寄存器5 - 【DIM频率】(范围:1~5kHZ,与模式无关)
寄存器6 - 【预留】

寄存器7 - 【驱动板整体灰度】(范围:1~255,模式1专用)
寄存器8 - 【寄存器有效位数】(范围:3~16,模式1专用)
寄存器9 - 【驱动板输出路数】(范围:16~111*16)

1、通过MODBUS-RTU可修改参数寄存器2-9;

2、OPT长按2秒可以设置寄存器0~8,修改寄存器0【ID】、寄存器1【波特率】会导致自动复位;

3、CHL长按2秒可以设置寄存器9【驱动板输出路数】;

4、修改参数寄存器后自动保存,期间禁止通讯,否则可能通讯出错。

数据寄存器(修改后不保存):

寄存器10~120 -> 每1路对应的亮/灭(模式1)或灰度(模式2、3)

对接驱动板选择合适模式:

模式1:使用寄存器7-8-9-10~ 120,寄存器10~120中每1寄存器16位数据对应16路(数据为大端模式),每1路占用1位数据对应亮/灭,最大输出111*16路(每1路亮的灰度相同,适合输出路数非常多的应用)。

模式2:使用寄存器9-10~ 120,寄存器10~120中每1寄存器16位数据对应2路(数据为大端模式,高/低8位各对应1路),每1路占用8位数据对应灰度,最大输出111*2路(每1路亮的灰度可以不同,可以应用于动态灯光控制)。

模式3:使用寄存器9-10~ 120,寄存器10~120中每1寄存器16位数据对应1路(数据为大端模式,高8位无效),每1路占用8位数据对应灰度,最大输出111路(每1路亮的灰度可以不同,可以应用于动态灯光控制)。

八、对接2811/2812灯带选择合适模式:

模式1:使用寄存器7-8-9-10120,寄存器10120中每1寄存器16位数据(数据为大端模式),一般设置寄存器8=15,15位有效可以匹配5个像素,每3位数据对应1个像素的RGB,最大输出111*15/3像素(每1像素的RGB灰度相同,适合输出像素较多的应用)。

模式2:使用寄存器9-10120,寄存器10120中每1寄存器16位数据对应2字节(数据为大端模式,高/低8位各对应1字节),每3字节数据对应1个像素的RGB,最大输出111*2/3像素(每1像素的RGB灰度可以不同,可以应用于动态灯光控制)。

模式3:使用寄存器9-10120,寄存器10120中每1寄存器16位数据对应1字节(数据为大端模式,高8位无效),每3字节数据对应1个像素的RGB,最大输出111*1/3像素(每1像素的RGB灰度可以不同,可以应用于动态灯光控制)。

功能测试

功能码0x03测试:(图A)

Tx:01 03 00 00 00 14 45 C5
//ID=0x01,指令0x03,读取从地址0x0000开始的0x0014(20)个寄存器,CRC16=0x45C5
Rx:01 03 28 00 01 25 80 00 01 00 00 00 00 00 01 00 00 00 FF 00 01 00 30 00 FF F0 F0 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1A E9
//ID=0x01,指令0x03,返回数据有0x28(40)个字节,寄存器0=0x0001,寄存器1=0x2580,寄存器2=0x0001,寄存器3=0x0000…寄存器19=0x0000,CRC16=0x1AE9

功能码0x06测试:

Tx:01 06 00 09 00 60 59 E0
//ID=0x01,指令0x06,地址0x0009的参数寄存器修改为0x0060,CRC16=0x59E0
Rx:01 06 00 09 00 60 59 E0
//ID=0x01,指令0x06,地址0x0009的参数寄存器已经修改为0x0060,CRC16=0x59E0

功能码0x10测试:

Tx:01 10 00 0A 00 0A 14 FF FF 00 00 00 01 00 1E 00 00 00 00 00 00 00 00 00 00 00 00 E3 7B
//ID=0x01,指令0x10,从地址0x000A开始的0x000A(10)个数据寄存器,总0x14个数据(20字节),数据依次为0xFFFF,0x0000,0x0001,0x001E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,CRC16=0xE37B
Rx:01 10 00 0A 00 0A 60 0C
//ID=0x01,指令0x10,从地址0x000A开始的0x000A(10)个数据寄存器数据已经修改成功,CRC16=0x600C

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LPA算法简介

1. 背景 标签传播算法(Label Propagation Algorithm)是一种基于图的半监督学习方法,其基本思路是用已标记节点的标签信息去预测未标记节点的标签信息。 2. 算法流程 1. 为每个节点随机的指定一个自己特有的标签; 2. 逐轮刷新所有节点的标签&#xff0…

前沿论文 | LLM推理性能优化最佳实践

原文:安全验证 - 知乎​ 来源 题目:LLM Inference Performance Engineering: Best Practices 地址:https://www.databricks.com/blog/llm-inference-performance-engineering-best-practices 在这篇博文中,MosaicML工程团队分析了…

2024-4-22 群讨论:微服务启动预热相关

以下来自本人拉的一个关于 Java 技术的讨论群。关注公众号:hashcon,私信进群拉你 Hotspot JVM 进程启动后,流量到来的时候 JIT 吃掉很多 CPU,如何观察到? 很多途径都能观察到: top -Hp:这个需…

ApiHug 的初心-ApiHug101

视频 秒懂 ApiHug -019 HOPE 🔥 H.O.P.E.: Help other people excellent 💝 是这个项目最初的初心 🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ 🏠 gitee github search ApiHug ApiHug 🤗 ApiHug {Post…

云架构(五)BBF模式

BFF模式(Backends for Frontends pattern)- https://learn.microsoft.com/en-us/azure/architecture/patterns/backends-for-frontends。 创建单独的后台服务用以提供给特定的前端或者接口。当你希望避免为多个接口定制单独的后台时,此模…

7天录用!录用→检索仅21天!CCF推荐毕业神刊

本周投稿推荐 SSCI • 2/4区经管类,2.5-3.0(录用率99%) SCIE(CCF推荐) • 计算机类,2.0-3.0(最快18天录用) SCIE(CCF-C类) • IEEE旗下,1/2…

限时疯抢!阿里云服务器十大优惠活动合集,手慢无

限时疯抢!阿里云服务器十大优惠活动合集,手慢无阿里云服务器优惠活动(2024年最新整理),阿里云服务器优惠活动大全、2024阿里云优惠政策整理,包括官方优惠活动主会场、2024年4月优惠活动分为:免费…

服务器(Linux、AIX)监控软件【nmon】使用

目录 1.安装 2.使用 3.使用 4.采集数据 5.查看log(根据结果,生成报表) 6.分析结果 1.安装 apt-get install nmon 2.使用 输入nmon进入下面的界面 x Use these keys to toggle statistics on/off: …

牛客网刷题 | BC60 判断是不是字母

描述 KiKi想判断输入的字符是不是字母,请帮他编程实现。 输入描述: 多组输入,每一行输入一个字符。 输出描述: 针对每组输入,输出单独占一行,判断输入字符是否为字母,输出内容详见输出样例…

加密、解密、签名、验签、数字证书、CA浅析

一、加密和解密 加密和解密应用的很广,主要作用就是防止数据或者明文被泄露。 加解密算法主要有两大类,对称加密和非对称加密。对称加密就是加密和解密的密钥都是一个,典型的有AES算法。非对称加密就是有公钥和私钥,公钥可以发布…

【Web】DASCTF X GFCTF 2024|四月开启第一局 题解(全)

目录 EasySignin cool_index SuiteCRM web1234 法一、条件竞争(没成功) 法二、session反序列化 EasySignin 先随便注册个账号登录,然后拿bp抓包改密码(username改成admin) 然后admin / 1234567登录 康好康的图片功能可以打SSRF,不能直接读本地文…

最详细步骤解决:Apps targeting Android12 and higher are required to specify...

问题原因: 当targetSdkVersion>31时,需要在AndroidManifest.xml中配置android:exported的值,该值为boolean类型。 android:exported解释: activity 是否可由其他应用的组件启动: 如果设为 "true"&#…

持续更新。。。

1、JAVA面试指南 https://javaguide.cn/ 简历优化:突出与应聘职位相关的项目经验、技术栈、技能证书和专业成就。确保简历中的技术关键词与JD(Job Description)相符。 自我评估:对照目标职位要求,梳理自身Java技能树&…

【磁盘根目录扩容】

目的 给磁盘的根目录扩容,每个人在服务器上在根目录操作的可能性更大,如果单独指定一个目录扩容,很有可能使用不当 步骤 未扩容时,查看到sda下有两个分区,目前要扩展追加一个分区 使用fdisk -l查看到sda有4.9T&…

AI写作助手:一键智能改写文章质量高

无论是自媒体人写作文章、还是企业撰写宣传资料,文字都是表达思想和传递信息的重要介质。然而,有时候我们在工作中可能会遇到写作困难,或者想要对文章进行一定程度的改写以增加独特性和质量。而在这样的背景下,智能改写文章成为了…

VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt

原文链接:VS2019编译OSG3.7.0OSGEarth3.3OSGQt-CSDN博客 工具与环境 这里使用的 cmake-3.18.3 、 VS2019 和 Qt5.15.2 进行编译。 一、编译OSG3.7.0 1、下载 下载不多赘述,在github上下master版本就是3.7.0版本。 另外还需要 3rdParty_VS2017_v141_…

Maxwell安装使用和简单案例

一、解压 cd /opt/software/ ​ tar -zxvf maxwell-1.29.2.tar.gz -C /opt/module/ ​ cd /opt/module/ 二、MySQL 环境准备 1、修改 mysql 的配置文件 修改 mysql 的配置文件,开启 MySQL Binlog 设置 vi /etc/my.cnf 添加以下内容 server_id1 log-binmysql-…

基于WOA优化的CNN-GRU-Attention的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1卷积神经网络(CNN)在时间序列中的应用 4.2 GRU网络 4.3 注意力机制(Attention) 4.4 WOA优化算法 5.算法完整程序工程 1.算法运行效果图…

把 WordPress 变成 BaaS 服务:API 调用指南

有了前面两篇内容的铺垫,我们来聊聊 WordPress 作为 CMS / BaaS 服务使用时绕不开的问题,API 调用。 这篇内容同样的,会尽量少贴代码,简单的讲清楚一件事,降低阅读负担。 写在前面 首先,我们需要进行清晰…

Docker Compose 的安装和使用详解

Docker Compose 是 Docker 官方开源的容器编排(Orchestration)项目之一,用于快速部署分布式应用。本文将介绍 Docker Compose 的基本概念、安装流程及使用方法。 简介 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,Docker C…