电子称DIY(贴应变片+写代码)
第一步、应变片介绍



---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第二部分:应变片如何测量应变力的(对应的R1\R2\R3\R4实际上的贴片方法):


电桥的四个臂上接工作应变片,都参与机械变形,同处一个温度
场,温度影响相互抵消,电压输出灵敏度高。当 4 个应变片的材料、
阻值都想同时,可推导出以下公式:



---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第三部分、原理图(带器件参数):


部分图片来自网络
(注:以上原理图中的R1\R2\R3\R4均为图二对应的电阻。应和图二所示一致。)
第四部分、程序代码:
51代码采集部分:
/*=============================================
AD24位数值提取函数
一般提取6、7、8位数据
=============================================*/
unsigned long ReadCount(void)
{
// unsigned long Count;
unsigned char i;
ADSK=;
Count=;
while(ADDO);
for (i=;i<;i++)
{
ADSK=;
Count=Count<<;
ADSK=;
if(ADDO) Count++;
}
ADSK=;
Count=Count^0x800000;//抑或
ADSK=;
return(Count);
}
STM32代码:
/*=============================================
AD24位数值提取函数
一般提取6、7、8位数据
=============================================*/
//#define ADD0_R GPIO_ResetBits(GPIOA,GPIO_Pin_1)
//#define ADD0_S GPIO_SetBits(GPIOA,GPIO_Pin_1)
//#define ADSK_R GPIO_ResetBits(GPIOA,GPIO_Pin_2)
//#define ADSK_S GPIO_SetBits(GPIOA,GPIO_Pin_2) unsigned long ADC_ReadCount(void)
{
unsigned char i;
unsigned long Count;
Count=;
GPIO_ResetBits(GPIOC,GPIO_Pin_5);//ADSK=0;
delay_us();
while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4)==)// while(ADDO);
delay_us();
for (i=;i<;i++)
{
GPIO_SetBits(GPIOC,GPIO_Pin_5);//ADSK=1;
delay_us();
Count=Count<<;
GPIO_ResetBits(GPIOC,GPIO_Pin_5);//ADSK=0;
delay_us();
if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4)==) Count++;
delay_us();
}
GPIO_SetBits(GPIOC,GPIO_Pin_5);//ADSK=1;
delay_us();
Count=Count^0x800000;//抑或
GPIO_ResetBits(GPIOC,GPIO_Pin_5);//ADSK=0;
delay_us();
return(Count);
}
完整测试代码:
51带串口收发采集书籍的完整代码:
#include<reg52.h>
#include <math.h>
#define uint unsigned int
#define uchar unsigned char
uchar flag ,a ,i;
uchar code table[]="I Get ";
///////////////////////////////////////
sbit ADDO = P1^;
sbit ADSK = P1^;
unsigned long Count;
void delay_50ms(uint t);
/*=============================================
AD24位数值提取函数
一般提取6、7、8位数据
=============================================*/
unsigned long ReadCount(void)
{
// unsigned long Count;
unsigned char i;
ADSK=;
Count=;
while(ADDO);
for (i=;i<;i++)
{
ADSK=;
Count=Count<<;
ADSK=;
if(ADDO) Count++;
}
ADSK=;
Count=Count^0x800000;//抑或
ADSK=;
return(Count);
}
/*============================================
求平均值函数
===============================================*/
long averageValue(uchar times)
{
uchar i;
long sum = ;
for (i = ; i < times; i++)
{
sum += ReadCount();
} return sum / times;
}
/*===============================================
串口初始化函数
===============================================*/
void init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=;REN=;SM0=;SM1=;EA=;ES=; }
void delay_50ms(uint t)
{
uint j;
for( ;t>;t--)
for(j=;j>;j--); } void main()
{ unsigned long num;
uchar s[];
init();
while()
{
/************************************/
num=averageValue();
num=num-;
num=num*;
for(i=;i>;i--)
{
s[i-]=(uchar)num%+0x30;
if(num<)
s[i-]=0x30;
num=num /;
}
s[]='G';
/************************************/
/*==================================================
long val = (averageValue() - _offset);//_offset
return (float) val / _scale;//再.H函数中设置scale = 416.f =====================================================*/ ES=;//关闭串口中断
for(i=;i<;i++)
{
SBUF=s[i];//通过串口发送数据
while(!TI);//检查是否发送数据发送完毕
TI=;
}
delay_50ms();
} } void set() interrupt
{
RI=;
a=SBUF;
flag=; }
STM32完整代码:
c代码.c 文件
#include<reg52.h>
#include <math.h>
#include <stdio.h>
#define uint unsigned int
#define uchar unsigned char
uchar flag ,a ,i;
uchar code table[]="I Get ";
///////////////////////////////////////
sbit ADDO = P1^;
sbit ADSK = P1^;
unsigned long Count;
void delay_50ms(uint t);
/*=============================================
AD24位数值提取函数
一般提取6、7、8位数据
=============================================*/
unsigned long ReadCount(void)
{
// unsigned long Count;
unsigned char i;
ADSK=;
Count=;
while(ADDO);
for (i=;i<;i++)
{
ADSK=;
Count=Count<<;
ADSK=;
if(ADDO) Count++;
}
ADSK=;
Count=Count^0x800000;//抑或
ADSK=;
return(Count);
}
/*============================================
求平均值函数
===============================================*/
long averageValue(uchar times)
{
uchar i;
long sum = ;
for (i = ; i < times; i++)
{
sum += ReadCount();
} return sum / times;
}
/*===============================================
串口初始化函数
===============================================*/
void init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=;REN=;SM0=;SM1=;EA=;ES=; }
void delay_50ms(uint t)
{
uint j;
for( ;t>;t--)
for(j=;j>;j--); } void main()
{ unsigned long num;
uchar s[];
init();
while()
{
/************************************/
num=averageValue();
num=num-;
num=num*;
sprintf(s,"称得重量:%f g",num); /************************************/
/*==================================================
long val = (averageValue() - _offset);//_offset
return (float) val / _scale;//再.H函数中设置scale = 416.f =====================================================*/ ES=;//关闭串口中断
for(i=;i<;i++)
{
SBUF=s[i];//通过串口发送数据
while(!TI);//检查是否发送数据发送完毕
TI=;
}
delay_50ms();
} } void set() interrupt
{
RI=;
a=SBUF;
flag=; }
.h文件:
#ifndef __AD24_H
#define __AD24_H
#include "stm32f10x.h"
#include "delay.h"
void ADC24_Configtion(void);
long averageValue(unsigned char times); #endif
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
附录:(此处R1\R2\R3\R4不一定和第二部分的图2中的R1\R2\R3\R4对应)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------贴应变片-------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


贴应变片:
用锉刀和粗砂纸等工具将试件在钢板上的贴片位置的油污、漆层、锈迹、电镀层除去,再用细砂纸打磨成 45°交叉纹,之后用镊子镊起丙酮棉球将贴片处擦洗干净,至棉球洁白为止。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------应变片的其他贴法:-----------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
应变片的其他贴法:






温度补偿:

电子称DIY(贴应变片+写代码)的更多相关文章
- 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序
直接切入正题,这是我09年到11年左右业余时间编写的项目,最初的想法很简单,做一个能拖拖拽拽就直接生成应用程序的工具,不用写代码,把能想到的业务操作全部封装起来,通过配置的方式把这些业务操作组织起来运 ...
- ClownFish:比手写代码还快的通用数据访问层
http://www.cnblogs.com/fish-li/archive/2012/07/17/ClownFish.html 阅读目录 开始 ClownFish是什么? 比手写代码还快的执行速度 ...
- Markdown: 用写代码的思维写文档
作者:吴香伟 发表于 2014/08/07 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 本文不讲解Markdown的语法规则,只关注它带来的好处以及我使用的方 ...
- 【腾讯Bugly干货分享】深入理解 ButterKnife,让你的程序学会写代码
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/578753c0c9da73584b025875 0.引子 话说我们做程序员的,都 ...
- 不需要写代码,文件夹右键cmd定位指定目录
引子 这篇文章其实本来不是这样的,因为我用C#的代码实现了一个程序,后面才突然发现,我太傻太天真了,明明不需要写程序和写代码的,结果自己把自己二住了. 我们来看看效果图. 由于,我自己的原因,这个功能 ...
- [No000008]发工资不仅仅是让你写代码的
这是我对团队每个新进员工说的第一件事情.这句话的意思是,我并不关心你是如何快速完成任务的,哪怕代码很差,只要它像救生艇通气门一样管用就行.这句话也是我最喜欢的座右铭之一. 这个说法其实很合理:我们的工 ...
- 手写代码自动实现自动布局,即Auto Layout的使用
手写代码自动实现自动布局,即Auto Layout的使用,有需要的朋友可以参考下. 这里要注意几点: 对子视图的约束,若是基于父视图,要通过父视图去添加约束. 对子视图进行自动布局调整,首先对UIVi ...
- jQuery 之父:每天写代码
去年秋天我的支线代码项目 遇到了一些问题,项目进展不足,而且我没法找到一个完成更多代码的方法(在不影响我在Khan Academy方面的工作的前提下). 我主要在周末进行我的支线,当然有时候也在晚上进 ...
- 如果选择构建ui界面方式,手写代码,xib和StoryBoard间的博弈
代码手写UI这种方法经常被学院派的极客或者依赖多人合作的大型项目大规模使用. 大型多人合作项目使用代码构建UI,主要是看中纯代码在版本管理时的优势,检查追踪改动以及进行代码合并相对容易一些. 另外,代 ...
随机推荐
- Zabbix 微信报警Python版(带监控项波动图片)
#!/usr/bin/python # -*- coding: UTF- -*- #Function: 微信报警python版(带波动图) #Environment: python import ur ...
- centos6.5下 hdp-2.4.2安装
(1)准备工作 /usr/sbin/sestatus -v getenforce1./usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态SE ...
- java中阻止类的继承
1.使用final来修饰类 final表示这个类是继承树的末端,不能被继承. 2.将类的构造方法声明为private的,再提供一个static的方法来返回一个类的对象. JAVA语言要求继承时必须在构 ...
- 如何实现类似Oracle中的家族树功能
先来设计一下表结构: create table city(id varchar(3) , pid varchar(3) , name varchar(10)); 下面我们造几条测试数据: INSERT ...
- [转]Git教程【译】
[转]Git教程[译] http://www.cnblogs.com/zhangjing230/archive/2012/05/09/2489745.html 原文出处:http://www.voge ...
- 记录使用微信小程序的NFC和蓝牙功能读取15693芯片的开发历程
开发目标: (1) 对于Android手机,直接通过微信小程序调用手机的NFC功能,对15693协议的芯片进行读写操作: (2)对于苹果手机(及没有NFC模块的手机),通过微信小程序的蓝牙功能连接到蓝 ...
- Hadoop的Archive归档命令使用指南
hadoop不适合小文件的存储,小文件本省就占用了很多的metadata,就会造成namenode越来越大.Hadoop Archives的出现视为了缓解大量小文件消耗namenode内存的问题. 采 ...
- Samba原理和配置
Samba原理和配置 个人原创,转载请注明,否则追究法律责任. 一,原理及安装 1,Samba是在Linux和UNIX系统上实现在局域网上共享文件一种通信协议,它为局域网内的不同计算机之间提供文件等资 ...
- V-bind详细使用
v-bind 主要用于属性绑定,Vue官方提供了一个简写方式 :bind,例如: <!-- 完整语法 --> <a v-bind:href="url">& ...
- 怎样把Linux的私钥文件id_rsa转换成putty的ppk格式
在Linux VPS下产生的私钥文件putty是不认识的,putty只认识自己的ppk格式,要在这两种格式之间转换,需要PuTTYgen这个程序. puttygen是putty的配套程序,putty的 ...