薄膜压力传感器WAX-ARR-I采集器使用说明
数据采集模块使用视频教程
数据采集模块资料包下载地址
通过网盘分享的文件:WAX-ARR-I薄膜压力数据采集模块 链接: https://pan.baidu.com/s/13KuBRP5Xs4XnOPmk5jzpcw?pwd=cuba 提取码: cuba
支持传感器列表
RX_M0808MS_2KG传感器
RX_M0808MS_5KG传感器
RX_M0808MS_10KG传感器
FS_ARR_6X6_BOT传感器
FS_ARR_4X8_BOT传感器
RX_M0808MS 感应区域尺寸97.5*97.5mm
FS_ARR_6X6_BOT 感应区域尺寸15*15mm
FS_ARR_4X8_BOT 感应区域尺寸20*10mm
使用方法
薄膜压力传感器WAX-ARR-I采集器输出协议格式
本采集器蓝牙/USB/排针串口输出协议统一
串口输出协议数据,115200波特率【默认】,8位数据位,1位停止位,无校验。
数据协议
字节数 | 字段名称 | 描述 |
---|---|---|
2 | 帧头 | 固定为 0xAA 0x55 作为数据起始标志 |
1 | 命令字 | 表示当前选择的不同传感器,例如0x01代表RX_M0808MS_2KG传感器 |
1 | 数据长度 | 固定为 192(64 个 3字节整数) |
192 | 数据区 | 传感器而定数据长度 |
1 | 校验码(Checksum) | 校验数据正确性 |
1 | 结束符 | 固定 0x0D (回车符) |
帧头
占用2个字节,固定为 0xAA 0x55
作为数据起始标志
命令字
占用1个字节,
0x01 代表当前是RX_M0808MS_2KG传感器
0x02 代表当前是RX_M0808MS_5KG传感器
0x03 代表当前是RX_M0808MS_10KG传感器
0x04 代表当前是FS_ARR_6X6_BOT传感器
0x05 代表当前是FS_ARR_4X8_BOT传感器
...
数据长度
这里只是数据位的长度,并非整个帧长度
0xC0:8*8传感器是192组数据,1个传感器数据占用3个字节,总共是64X3=192个字节,16进制是0xC0
为了好解析,4*8的传感器也输出48个字节,只不过中间有6X6字节=21个字节填充0不用,具体参考汇总表格
数据区
根据数据长度发送对应长度数据,
比如发送数据是0x01,0x23,0x34…….
代表
0x012334 十六进制数据
=74548 十进制数据
校验码(Checksum)
计算方式:
把所有数据区字节相加(
SUM = byte1 + byte2 + ...
)。只取低 8 位(
SUM & 0xFF
)。
以下为例程校验换算C 语言实现(Checksum),这里以6个字节数据为例,实际计算按照实际长度
#include <stdio.h>
#include <stdint.h>
// 计算 8 位校验和(Checksum)
uint8_t checksum_8bit(const uint8_t *data, uint16_t length) {
uint16_t sum = 0; // 16位变量存储总和,防止溢出
for (uint16_t i = 0; i < length; i++) {
sum += data[i]; // 逐字节累加
}
return (uint8_t)(sum & 0xFF); // 取低 8 位
}
int main() {
uint8_t data[] = {0x01, 0x40, 0x00, 0x00, 0x30, 0x39}; // 示例数据
uint8_t checksum = checksum_8bit(data, sizeof(data));
printf("校验和: 0x%02X\n", checksum);
return 0;
}
结束符
固定 0x0D
(回车符)
汇总表格
字节 | RX-M0808MS | FS-ARR-6X6 | FS-ARR-4X8 | 介绍 |
---|---|---|---|---|
1 | AA | AA | 帧头 | |
2 | 55 | 55 | 帧头 | |
3 | 01-03 | 04 | 05 | 代表传感器型号 |
4 | C0 | C0 | C0 | 数据长度 |
5 | 传感器A0高8位 | .. | 传感器数据 | |
6 | 传感器A0中8位 | .. | ... | |
7 | 传感器A0低8位 | .. | ||
8 | 传感器A1高8位 | .. | ||
9 | 传感器A1中8位 | .. | ||
10 | 传感器A1低8位 | .. | ||
11 | 传感器A2高8位 | .. | ||
12 | 传感器A2中8位 | .. | ||
13 | 传感器A2低8位 | .. | ||
14 | 传感器A3高8位 | .. | ||
15 | 传感器A3中8位 | .. | ||
16 | 传感器A3低8位 | .. | ||
17 | 传感器A4高8位 | .. | ||
18 | 传感器A4中8位 | .. | ||
19 | 传感器A4低8位 | .. | ||
20 | 传感器A5高8位 | .. | ||
21 | 传感器A5中8位 | .. | ||
22 | 传感器A5低8位 | .. | ||
23 | 传感器A6高8位 | .. | ||
24 | 传感器A6中8位 | .. | ||
25 | 传感器A6低8位 | .. | ||
26 | 传感器A7高8位 | .. | ||
27 | 传感器A7中8位 | .. | ||
28 | 传感器A7低8位 | .. | ||
29 | 传感器A8高8位 | |||
30 | 传感器A8中8位 | |||
31 | 传感器A8低8位 | |||
32 | 传感器A9高8位 | |||
33 | 传感器A9中8位 | |||
34 | 传感器A9低8位 | |||
35 | 传感器A10高8位 | |||
36 | 传感器A10中8位 | |||
37 | 传感器A10低8位 | |||
38 | 传感器A11高8位 | .. | ||
39 | 传感器A11中8位 | .. | ||
40 | 传感器A11低8位 | .. | ||
41 | 传感器A12高8位 | .. | ||
42 | 传感器A12中8位 | .. | ||
43 | 传感器A12低8位 | .. | ||
44 | 传感器A13高8位 | .. | ||
45 | 传感器A13中8位 | .. | ||
46 | 传感器A13低8位 | .. | ||
47 | 传感器A14高8位 | .. | ||
48 | 传感器A14中8位 | .. | ||
49 | 传感器A14低8位 | .. | ||
50 | 传感器A15高8位 | .. | ||
51 | 传感器A15中8位 | .. | ||
52 | 传感器A15低8位 | .. | ||
... | ... | ... | //此处规律省略 | |
196 | 校验位 | 校验位 | 校验位 | |
197 | 0D | 0D | 0D |
采集器设置协议
在当前波特率下发送这些协议数据有效
数据协议
字节数 | 字段名称 | 描述 |
---|---|---|
2 | 帧头 | 固定为 0xAA 0x55 作为数据起始标志 |
4 | 命令字 | 见下表 |
1 | 结束符 | 固定 0x0D (回车符) |
命令字
第一个字节,设置传感器
0x01 代表当前是RX_M0808MS_2KG传感器
0x02 代表当前是RX_M0808MS_5KG传感器
0x03 代表当前是RX_M0808MS_10KG传感器
0x04 代表当前是FS_ARR_6X6_BOT传感器
0x05 代表当前是FS_ARR_4X8_BOT传感器
...
第二个字节,设置数据发送间隔
0x01 代表设置100ms
0x02 代表设置200ms
0x03 代表设置300ms
0x04 代表设置400ms
0x05 代表设置500ms
0x06 代表设置1000ms
第三个字节,预留
0x00
第四个字节,预留
0x00
举例,如果设置采集器想设置波特率为115200,型号RX-M0808MS-2KG,发送间隔是100ms,整个设置帧是
AA 55 01 01 00 00 0D
采集器回复设置ACK
设置成功会回复:
AA 55 00 01 0D
设置失败会回复:
设置错误会回复:AA 55 00 00 0D