WAX-RX-M矩阵式薄膜压力传感器采集模块

数据采集模块使用视频教程

链接:https://www.bilibili.com/video/BV1UHEwzDEog

数据采集模块资料包下载地址

通过百度网盘分享的文件:WAX-RX-M薄膜数据采集模块 链接: https://pan.baidu.com/s/1OeL8Tst5GxOnQsEyi3vOeg?pwd=cju2 提取码: cju2

传感器尺寸

image-20250514080110299

image-20250514080153312

WAX-RX-M数据采集器使用方法

image-20250514081231269

image-20250512214351940

image-20250514233837103

image-20250514233849480

image-20250514233857442

image-20250514233908026

薄膜压力传感器采集器输出协议格式

本采集器蓝牙/USB/排针串口输出协议统一

串口输出协议数据,115200波特率【默认】,8位数据位,1位停止位,无校验。

数据协议

字节数 字段名称 描述
2 帧头 固定为 0xAA 0x55 作为数据起始标志
1 命令字 表示当前选择的不同传感器,例如0x01代表RX-M0404M-1KG传感器
1 数据长度 固定为 48(16 个 3字节整数)
48 数据区 传感器而定数据长度
1 校验码(Checksum) 校验数据正确性
1 结束符 固定 0x0D(回车符)

帧头

占用2个字节,固定为 0xAA 0x55 作为数据起始标志

命令字

占用1个字节,

0x01 代表当前是RX-M0404M-1KG传感器

0x02 代表当前是RX-M0404M-5KG传感器

0x03 代表当前是RX-M0404M-10KG传感器

0x04 代表当前是RX-M0303M-1KG传感器

0x05 代表当前是RX-M0303M-5KG传感器

0x06 代表当前是RX-M0303M-10KG传感器

...

数据长度

这里只是数据位的长度,并非整个帧长度

0x30:4*4传感器是16组数据,1个传感器数据占用3个字节,总共是16X3=48个字节,16进制是0x30

为了好解析,3*3的传感器也输出48个字节,只不过中间有7X3字节=21个字节填充0不用,具体参考汇总表格

数据区

根据数据长度发送对应长度数据,

比如发送数据是0x01,0x23,0x34…….

代表

0x012334  十六进制数据
=74548    十进制数据

校验码(Checksum)

计算方式:

  1. 把所有数据区字节相加SUM = byte1 + byte2 + ...)。

  2. 只取低 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(回车符)

汇总表格

字节 M0404 M0303 介绍
1 AA AA 帧头
2 55 55 帧头
3 01-03 04-06 代表传感器型号
4 30 30 数据长度
5 传感器A0高8位 传感器A0高8位 传感器数据
6 传感器A0中8位 传感器A0中8位 ...
7 传感器A0低8位 传感器A0低8位
8 传感器A1高8位 传感器A1高8位
9 传感器A1中8位 传感器A1中8位
10 传感器A1低8位 传感器A1低8位
11 传感器A2高8位 传感器A2高8位
12 传感器A2中8位 传感器A2中8位
13 传感器A2低8位 传感器A2低8位
14 传感器A3高8位 00
15 传感器A3中8位 00
16 传感器A3低8位 00
17 传感器A4高8位 传感器A3高8位
18 传感器A4中8位 传感器A3中8位
19 传感器A4低8位 传感器A3低8位
20 传感器A5高8位 传感器A4高8位
21 传感器A5中8位 传感器A4中8位
22 传感器A5低8位 传感器A4低8位
23 传感器A6高8位 传感器A5高8位
24 传感器A6中8位 传感器A5中8位
25 传感器A6低8位 传感器A5低8位
26 传感器A7高8位 00
27 传感器A7中8位 00
28 传感器A7低8位 00
29 传感器A8高8位 传感器A6高8位
30 传感器A8中8位 传感器A6中8位
31 传感器A8低8位 传感器A6低8位
32 传感器A9高8位 传感器A7高8位
33 传感器A9中8位 传感器A7中8位
34 传感器A9低8位 传感器A7低8位
35 传感器A10高8位 传感器A8高8位
36 传感器A10中8位 传感器A8中8位
37 传感器A10低8位 传感器A8低8位
38 传感器A11高8位 00
39 传感器A11中8位 00
40 传感器A11低8位 00
41 传感器A12高8位 00
42 传感器A12中8位 00
43 传感器A12低8位 00
44 传感器A13高8位 00
45 传感器A13中8位 00
46 传感器A13低8位 00
47 传感器A14高8位 00
48 传感器A14中8位 00
49 传感器A14低8位 00
50 传感器A15高8位 00
51 传感器A15中8位 00
52 传感器A15低8位 00
53 校验位 校验位 校验位
54 0D 0D 0D

采集器设置协议

在当前波特率下发送这些协议数据有效

数据协议

字节数 字段名称 描述
2 帧头 固定为 0xAA 0x55 作为数据起始标志
4 命令字 见下表
1 结束符 固定 0x0D(回车符)

命令字

第一个字节,设置传感器

0x01 代表当前是RX-M0404M-1KG传感器
0x02 代表当前是RX-M0404M-5KG传感器
0x03 代表当前是RX-M0404M-10KG传感器
0x04 代表当前是RX-M0303M-1KG传感器
0x05 代表当前是RX-M0303M-5KG传感器
0x06 代表当前是RX-M0303M-10KG传感器
...

第二个字节,设置数据发送间隔

0x01 代表设置100ms
0x02 代表设置200ms
0x03 代表设置300ms
0x04 代表设置400ms
0x05 代表设置500ms
0x06 代表设置1000ms

第三个字节,预留

0x00

第四个字节,预留

0x00

举例,如果设置采集器想设置波特率为115200,型号RX-M0404M-1KG,发送间隔是100ms,整个设置帧是

AA 55 01 01 00 00 0D

采集器回复设置ACK

设置成功会回复:

AA 55 00 01 0D

设置失败会回复:

设置错误会回复:AA 55 00 00 0D

ARDUINO例程介绍

Arduino例程功能:

读取传感器数据后,通过串口打印出来16路传感器数据

接线方式

ARDUINO UNO R3					采集器
5V				-------->		5V
GND				-------->		GND
0				<--------		TXD

image-20250514214212673

注意:因为arduion uno只有一个串口,要用于烧录,所以先烧录固件,打开串口,波特率115200,显示”开始监听传感器数据”后,再接TXD的线。否则,接TXD的线会影响烧录。

image-20250514213931666

接上TXD的线后,输出输出效果,显示A0-A15总共16路数据,波特率115200

image-20250514214303240

51单片机例程介绍

例程单片机使用STC89C52RC单片机,晶振使用11.0592MHz晶振【注意不能用12MHz晶振】,波特率115200。

例程功能:

读取传感器数据后,通过串口打印出来16路传感器数据

接线方式

STC89C52RC						采集器
5V				-------->		5V
GND				-------->		GND
P3.0			<--------		TXD

如果51板子本身有串口输出电路就直接用串口输出,如果没有另外找一个USB-TTL读取打印信息
STC89C52RC						USB-TTL
P3.1			--------->   	RXD
GND				-------->		GND

image-20250514225651677

注意:因为STC89C52只有一个串口,要用于烧录,所以先烧录固件,打开串口,波特率115200,显示”传感器解析开始”后,再接TXD的线。否则,接TXD的线会影响烧录。

例程最终效果,用xcom读取串口,115200波特率数据,A0-A15对应16个传感器

image-20250514225825383

STM32F103参考例程介绍

例程单片机使用STM32F103系列单片机,波特率115200。

例程功能:

串口2读取传感器数据后,通过串口1打印出来16路传感器数据

接线方式

硬件串口方式连接:
采集器			STM32板子
5V-----------------5V
GND------------------GND
TX-----------------RX2	PA3

usb-ttl接电脑调试
USB-TTL模块			STM32板子
5V----------------------5V
GND--------------------->GND
RX---------------------->TX1 PA9

image-20250514233419233

接串口1的USB-TTL,用XCOM工具,波特率115200,打开串口,按下STM32复位键

串口输出”开始解析传感器数据:”

之后如果采集器和STM32接线接对,就会正常解析数据了,A0-A15对应16个传感器数据。

image-20250514233641997