站内搜索
发作品签到
【立创开发板】基于梁山派的应变测量板
专业版

【立创开发板】基于梁山派的应变测量板

简介

基于梁山派的应变测量电路,采集电阻应变片组成的电阻电桥的差分信号,输入全差分运放和差分ADC,与GD32F407通信

简介:基于梁山派的应变测量电路,采集电阻应变片组成的电阻电桥的差分信号,输入全差分运放和差分ADC,与GD32F407通信
复刻成本:50

开源协议

MIT License

(未经作者授权,禁止转载)
创建时间:2024-11-26 16:43:46更新时间:2024-11-26 18:27:00

描述

项目简介

本项目是基于立创梁山派的应变测量电路板,用于测量电阻应变片产生的应变信号。

测量原理

电阻应变片(R4)与三个120欧,0.1%精度的电阻R1,R2,R3组成电阻电桥,将电阻应变片贴于结构表面,结构应变引起电阻应变片的阻值变化,在电桥中反映为RL两端的差分电压变化。采集这个电压的变化量,可以反推出应变的值。

image.png

项目参数

此处可填写项目的相关功能参数介绍,示例:

  • 本设计采用KY5530模数转换芯片,SPI接口单通道32位高精度Sigma-Delta ADC,实际有效精度24BIT@1倍PGA;
  • 本设计采用THP210全差分运算放大器,低输入电压噪声,1kHz时为3.7nV/sqrt(Hz);
  • 电桥差分电压信号经运算放大器放大100倍后传输至ADC再放大8倍,总放大倍数800
  • 实测有效位数15位,可采集到0.1mV/100,即微伏电压信号测量,采集频率为6.25Hz;

原理解析(硬件说明)

此处可填写项目的设计原理,将设计的原理拆分解析,示例:

本项目由以下部分组成,电源部分、信号前端部分、模数转换部分和主控部分。

SCH_方案验证板_1-P1_2024-11-26.png

1--电源电路:
采用TYPE-C接口作为供电接口,输入LDO芯片SGM2211降压为3.3V,为电路供电。0欧电阻R5用于连接模拟地和数组地。多个滤波电容在PCB中都只选焊了一个。

image.png

2--信号前端电路:
电阻电桥由U4、U5、U6三个0.1%精度120欧电阻和电阻应变片组成。电阻应变片通过接线端子U7与电桥相连。测量电桥的地平面通过0欧电阻R15与模拟地相连。

全差分运算放大器THP210对电桥输出的差分信号进行100倍放大,放大电阻100欧和10k欧精度均为0.1%。VOCM电压与电桥差分信号中U4和U6之间的电压信号直接相连,这样可以让运放输出的电压均值为3.3V/2=1.65V,保证运放输出电压在ADC芯片采集电压范围内。

image.png

3--模数转换电路:

采用32位32位高精度Sigma-Delta型模数转换芯片KY5530,,实际有效精度24BIT@1倍PGA,设置放大倍数为8倍,电路参照芯片手册。本项目参考电压选用ADC内部集成的高精度基准电压源。

image.png

4--主控电路:

主控为梁山派集成的GD32F407,M4内核,主频148MHz,PA0作为外部中断源,用于应变测量中的平衡。显示部分采用立创商城的OLED屏HS96L03W2C03,IIC接口,分辨率128X64

image.png

image.png

软件代码

见附件,此处只放main函数

#include "gd32f4xx.h"
#include "systick.h"
#include 
#include "main.h"
#include "OLED.h"
#include "KY5532.h"
#include "balance.h"

/*
#include "sys.h"
#include "bsp_usart.h"
#include "bsp_iic.h"


*/

/*!
    \brief    main function
    \param[in]  none
    \param[out] none
    \retval     none
*/

double balance_value=0;
double result;

int main(void)
{
	uint32_t Init_Data;
	uint32_t S0,S1,S2,S3;
	uint32_t Trans_Data;
	double strain_value;

	
	systick_config();
	key_gpio_config();
	OLED_Init();
	OLED_ShowString(0, 0, "Success", OLED_8X16);
	OLED_Update();
	delay_1ms(100);

	
	//初始化ky5530
	OLED_Clear();	
	Init_Data = KY5530_Init(Init_Data);	
	
	if (Init_Data==0x3fffffff)
		OLED_ShowString(0, 0, "Success", OLED_8X16);
	else
		OLED_ShowString(0, 0, "Fail", OLED_8X16);
		OLED_ShowHexNum(0, 48, Init_Data, 8, OLED_8X16);
		result=(double)0x3fffffff/Init_Data;
		OLED_ShowFloatNum(0, 16, result, 5, 6, OLED_8X16);
	OLED_Update();
  delay_1ms(1500);
	OLED_Clear();
	
		rcu_periph_clock_enable(RCU_GPIOE);
		gpio_mode_set(GPIOE,GPIO_MODE_OUTPUT,GPIO_PUPD_PULLUP,GPIO_PIN_3);	//SCL  PB13
		gpio_output_options_set(GPIOE,GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_3);
		gpio_bit_write(GPIOE,GPIO_PIN_3, SET);
	
	//查看系统配置
	KY5530_Read(&S0, OS_CH0);
	KY5530_Read(&S1, GAIN_CH0);
	KY5530_Read(&S2, SYS_CONF0);
	KY5530_Read(&S3, SYS_CONF1);
	
	OLED_ShowString(0, 0, "OS0", OLED_8X16);
	OLED_ShowHexNum(40, 0, S0, 8, OLED_8X16);
	OLED_ShowString(0, 16, "GA0", OLED_8X16);
	OLED_ShowHexNum(40, 16, S1, 8, OLED_8X16);
	OLED_ShowString(0, 32, "SY0", OLED_8X16); //读取到02000001,2代表开启滤波器,1代表上次复位成功
	OLED_ShowHexNum(40, 32, S2, 8, OLED_8X16);
	OLED_ShowString(0, 48, "SY1", OLED_8X16);//
	OLED_ShowHexNum(40, 48, S3, 8, OLED_8X16);

	OLED_Update();
	delay_1ms(1500);
	OLED_Clear();
	
	while(1)
	{
			Trans_Data=KY5530_Trans(0x81);
			result=(double)Trans_Data/0x3fef9db2*3.32/8;
			strain_value = (result - balance_value)*9.412652859189006e+03;
			OLED_ShowFloatNum(0, 16, result, 5, 6, OLED_8X16);		
			OLED_ShowHexNum(0, 32, Trans_Data, 8, OLED_8X16);
			OLED_ShowFloatNum(0, 48, strain_value, 5, 6, OLED_8X16);
			OLED_Update();
			delay_1ms(1000);
	}
}

实物图

4b6c3ef05e56a676ae20c9c02dd2376.jpg

PCB

image.png

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
Strain_mea1.mp4
19
2
Strain_mea.rar
45
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航