基于电阻式传感器和AVR单片机的体重计设计.docx
- 文档编号:25040691
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:14
- 大小:345.75KB
基于电阻式传感器和AVR单片机的体重计设计.docx
《基于电阻式传感器和AVR单片机的体重计设计.docx》由会员分享,可在线阅读,更多相关《基于电阻式传感器和AVR单片机的体重计设计.docx(14页珍藏版)》请在冰豆网上搜索。
基于电阻式传感器和AVR单片机的体重计设计
基于电阻式传感器和AVR单片机的体重计设计
基于电阻式传感器的体重计
电阻式传感器:
电阻式传感器在传感器家族中占有十分重要的地位,也是一种历史悠久使用广泛的传感器。
电阻式传感器大体可以分为两类:
一类是金属应变片型,它是用金属丝或金属箔作敏感元件制成的片状传感器。
另一类是半导体扩散型压阻传感器,是近些年来发展起来的新型传感器。
金属应变片传感器由弹性元件、金属应变片和其他附件组成。
当弹性元件变形时,粘贴其上的电阻应变片随之变形,并把变形转化为电阻值的变化。
金属应变片主要有基片、金属丝或金属箔、覆盖层以及引线等4部分组成。
金属丝(箔)是应变片的敏感核心;覆盖层起到保护作用和定位作用,引线作为测量的连接线;底基起绝缘保护作用。
通常,在仪器中采用的应变片有两种类型,一种是丝式应变计,另一种是箔式应变计。
半导体固态压阻式传感器具有高灵敏度、高分辨率、体积小、工作频带宽、测量电路可与敏感部分一体化等优点。
通常把半导体应变式传感器称之为压阻式传感器。
半导体应变元件主要有两大类型:
①体型半导体应变片;②扩散式半导体应变片。
传感器电路有:
恒压源供电直流电桥和恒流源供电直流电桥。
机械设计:
采用哪一种应变片应根据实际情况确定。
本实验不进行机械部分的设计,主要在于电桥传感器电路和采集处理以及显示的设计。
实验原理:
利用金属或者半导体的应变效应制作出电阻式传感器,传感器将感受到的压力将导致传感器的敏感元件的电阻发生变化,如果敏感元件在一个惠斯通电桥中为某一个桥臂,将会使电桥失去平衡结果将反映在电桥电路的输出电压上。
由于传感器的电阻变化量是很微小的,所以电压的输出量也会很小,这就要利用运放将输出电压进行一定倍数的放大输出。
然后将放大的电压信号通过模数转换模块变成数字信号,最后送入微控制器(或微处理器)进行处理输、显示,就可以实现重力的测量。
实验框图:
直流电源框图:
传感器框图:
直流电源电路图:
传感器电路图:
总电路图:
实验步骤:
1.制作5V稳压电源
1 确定初级线圈和次级线圈的比值,比如本实验的40:
1;
2 确定所用滤波电容的电容值,因为作为滤波使用,所以需要比较大的电容值,一般使用电解电容。
本实验取10uF;
3 选用合适的稳压管,击穿电流不能太大,不然可能没有工作在击穿区。
2.制作具有一定灵敏度的传感器
1 首先确定使用哪种电桥,是单臂桥,是半桥,还是全桥;一般来说,如果条件允许,选用双臂桥或者四臂桥灵敏度较高,温漂较小,本实验中,如果只改变一个变阻器,就是双臂桥;如果同时改变两个变阻器(向相反方向改变),就是四臂桥!
2 即便是四臂桥,敏感元件感受到的变化量往往也是非常小的,所以感受到的信号需要进行放大处理,根据集成运放的特性,可以设计出合适的加减运算电路,同时又可以放大。
合理选择各个电阻的大小。
最后还原信号的方向,加上一个反向器(也就是一个反向比例放大电路,只不过放大倍数为1罢了)。
3.连接所有电路部分
1 将传感器电路输出端接在AVR单片机模数转换输入引脚上,或者接在一块模数转换芯片输入引脚上,模数转换芯片的输出引脚再与51单片机的输入引脚相连;
2 将自己制作的直流电源接在需要供电的地方;
3 连接显示模块。
作为数值显示,可以考虑使用数码管(用动态扫描方式显示),可以考虑使用字符型液晶显示模块显示,还可以考虑使用图形液晶模块显示;利用数码管不能显示字符,太单调;利用图形液晶又太浪费(杀鸡焉用牛刀?
);所以考虑使用字符液晶显示。
连接好供电线路,连接好控制线路和数据线路。
4.编写单片机程序
自己编写的液晶显示器驱动程序(lcd1602.h):
/*********************************************************
注意,请在使用时先定义各个控制端口和数据端口
它们分别是RS,RW,EN,lcddata
#defineRSPORTB.0
#defineRWPORTB.1
#defineENPORTB.2
#definelcddataPORTA
*********************************************************/
#include"delay.h"
voidwritecom(unsignedcharcom)//写命令函数
{
RS=0;//写命令模式(RW=0)
delay_ms
(1);
lcddata=com;
delay_ms
(1);
EN=1;
delay_ms
(1);
EN=0;
}
voidwritedat(unsignedchardat)//写数据函数
{
RS=1;//写数据模式(RW=0)
delay_ms
(1);
lcddata=dat;
delay_ms
(1);
EN=1;
delay_ms
(1);
EN=0;
}
voidwritestring(unsignedcharadr,unsignedchar*str)//写字符串函数
{
unsignedchari=0;
writecom(adr);
while(str[i])
{
writedat(str[i]);
i++;
}
}
voidlcdclear()//清屏函数
{
RS=0;//写命令模式(RW=0)
delay_ms
(1);
lcddata=0x01;
delay_ms
(1);
EN=1;
delay_ms
(1);
EN=0;
}
voidlcdinit()//初始化函数
{
delay_ms(30);
writecom(0x38);//初始化显示模式
delay_ms(5);
writecom(0x06);//光标右移,整屏不移动
delay_ms(5);
writecom(0x0c);//0X0f为显示光标并闪烁,0x0e为显示光标但不闪烁,0x0c为不显示光标
delay_ms(5);
writecom(0x01);//清屏。
}
主程序:
/*****************************************************
Project:
Version:
Date:
2009-12-28
Author:
李北齐
Company:
咸宁学院
Comments:
Chiptype:
ATmega16
Programtype:
Application
Clockfrequency:
4.000000MHz
Memorymodel:
Small
ExternalRAMsize:
0
DataStacksize:
256
*****************************************************/
#include
#defineRSPORTD.5
#defineRWPORTD.6
#defineENPORTD.7
#definelcddataPORTC
#include"lcd1602.h"
unsignedcharlcdcode[]="Weight:
";
unsignedcharlcdcode2[]="kg";
unsignedchardisbuff[5]={0,0,0,'.',0};
voidreaddata()//这个函数也很简单。
{
unsignedintadctemp,adcdata;
adctemp=ADCW;
adcdata=(unsignedlong)adctemp*5000/1024;
disbuff[0]=adcdata/1000+48;
disbuff[1]=adcdata%1000/100+48;
disbuff[2]=adcdata%100/10+48;
disbuff[4]=adcdata%10+48;
}
voidmain()
{
DDRD.5=1;
DDRD.6=1;
DDRD.7=1;
DDRA=0X00;
DDRC=0XFF;
ADMUX=0X40;//采用AVCC参考电压,通道为ADC7.
ADCSRA=0XE5;//使能ADC,启动ADC,自动转换允许,ADC采用32分频时钟
lcdinit();
lcdclear();
writestring(0x80,lcdcode);
while
(1)
{
delay_ms(10);//延时10ms,1S钟4个数码管每个显示25遍,不会有闪烁感。
ADCSRA.7=0;//使能ADC位清零,停止转换。
readdata();//读取数据。
writestring(0x87,disbuff);
writestring(0x8c,lcdcode2);
ADCSRA.7=1;//重新使能ADC,开始转换。
ADCSRA.6=1;
}
}
5.仿真测试
直流电源部分:
直流电源未滤波前
直流电源滤波后
传感器部分:
改变变阻器阻值:
改变电阻阻值2:
总电路:
实验相关计算:
假设质量与电阻之间有R=KM的关系(k为常数)
当有
,则有
.
电桥的两端的输出电压为:
,
设电桥为等臂电桥,差分放大部分电阻满足:
若反向器部分的电阻满足:
则传感器电路最终输出电压的值为:
考虑到AVR单片机能采集的电压范围是:
0--5V,
所以
直接送入单片机,在单片机中要乘以
,以还原人体(或物体)的本来质量。
说明:
本实验只是实现了数据的采集和即时显示,并没有实现数据的存储和数据的打印输出。
本实验应用AVR单片机和C语言旨在结合前面所学;也是为了节省一片模数转换芯片(51单片机需另外的模数转换芯片),简化过程,别无他意。
参考资料:
陈安宇.2008.医用传感器.北京:
科学出版社(教科书)
马潮.2007.AVR单片机嵌入式系统原理.北京航空航天大学出版社
ATMEL.ATmega16DataBook.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 电阻 传感器 AVR 单片机 体重计 设计