下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子设计实验电子科技大学电子称 设计题目:姓 名:学生姓名任务与要求一、任务使用电阻应变片称重传感器,实现电广秤。用硅码作称重比对。二、要求准确、稳定称重:称重传感器的非线性校正,提高称重精度;实现“去皮”、计价功能:具备“休眠”与“唤醒”功能,以降低功耗。电子秤第一节绪论摘要随着科技的进步,在日常生活以及工业运用上,对电子秤的要求越来越:高。常规的测试仪器仪表和控制装置被更先进的智能仪器所取代,使得传统的电 子测量仪器在远离、功能、精度及自动化水平定方面发生了巨大变化,并相应的 出现了各种各样的智能仪器控制系统,使得科学实验和应用工程的自动化程度得 以显著提高。影响其精度的因素主要有:机械结
2、构、传感器和数显仪表。在机械 结构方面,因材料结构强度和刚度的限制,会使力的传递出现误差,而传感器输出 特性存在非线性,加上信号放大、模数转换等环节存在的非线性,使得整个系统的 非线性误差变得不容忽视。因此,在高精度的称重场合,迫切需要电子秤能自动校 正系统的非线性。此外,为了保证准确、稳定地显示,要求所采用的ADC具有足 够的转换位数,而采用高精度的ADC.自然增加了系统的成本。基于电子秤的现状, 本文提出了一种简单实用并且精度高的智能电子秤设计方案。通过运用很好的集 成电路,使测量精度得到了大大提高,由于采用数字滤波技术,使稳态测量的稳定 性和动态测量的跟随性都相当好。并取得了令人满意的效
3、果。关键词压力传感器,AD620N放大电路,ADC模数转换,STM32单片机,OLED:显示屏,矩阵键盘,电子秤。1.1引言本课程设计的电子秤以单片机为主要部件,利用全桥测量原理,通过对电 路输出电压和标准重量的线性关系,建立具体的数学模型,将电压量纲(V)改 为重量纲(g)即成为一台原始电子秤。其中测量电路中最主要的元器件就是电 阻应变式传感器。电阻应变式传感器是传感器中应用最多的一种,本设计采用全 桥测量电路,是系统产生的误差更小。输出的数据更精确。而AD620N放大电 路的作用就是把传感器输出的微弱的模拟信号进行一定倍数的放大,以满足A/D 转换器对输入信号电平的要求。A/D转换的作用是
4、把模拟信号转变成数字信号, OLED最后由然后把数字信号输送到显示电路中去,进行模拟量转数字量转换, 屏幕显示出测量结果。配置有矩阵键盘可以对电子秤进行一定的操作如去皮,计 价,并可当下手动录入价格,并显示价格。1. 2系统的设计与理论分析2. 2.1系统设计根据设计要求,设计的主要内容如下:1)利用电阻应变式传感器,并采用全桥测量电路2)设计一款电子秤,利用OLED屏幕显示被称物体的重量3)利用矩阵键盘对电子秤进行去皮,计价,录入价格的操作。4)电路分成以下几个部分:a .运放电路b.电路的滤波及电压跟随器电路c.单片机数据处理及控制电路,包括矩阵键盘,OLED屏幕等。d.双电源供电及变压电
5、路。1.2.2基本工作原理及原理框图单电源10V 双电10V 单电 源供电3.3V供电源供电图:基本硬件系统结构图电阻值发生改变,全桥电阻应变式传感然输入电压,当标准重物放 置在传感器之上时,仪表放大10mV到3mV变化范围约为使加载到全桥电路上的输出电压发生变化,运用AD620X单片机中STM32送至搭建的电压跟随器电路滤波。LM358并经过电路将微弱模拟信号放大,进行A/D模数转换,将模拟信号转变成单片机能够识别的数字信号,并且利用单片机控制整个电 路的同时,处理数字信号,并且控制在OLED中显示实时结果。由于其激励电压越高,准确度越高的特性,本次设计使川10V电源供电。2. 2信号放大电
6、路的设计与选择山上文中可知,10V单电源供电的压力传感器输出最大值只有10mV, Stm32的AD 量程为0、3.3V,则可以放大330倍。此处由于信号源仅有10mV,并且放大倍数较大,选用AD620N仪表放大器而非一 般的运算放大器做放大电路,以得到较高的精确度和输出电压的良好的线性性。放大电路为:图3运算放大器电路是一种低功耗,高精度的仪表放大器,它只需要一个外界电阻,即可设AD620 与分离元件组成的仪表放大器相比较具有体AD6201000)。置各种增益(1到5V 均可以。之前曾经使用正积小,功耗低,精度高等优点。电源电压上15V由于 分度值的要3.6V到之间,的单电源供电,但是使用时发
7、现输出电压在L 3V的 双电源供电。10V求,不能满足本题的要求,故选用双电源供电。此处使用49.9kQ,gR由此公式可计算出我们所需要的电阻,放大330倍约需要使用1501-GQ电阻。2. 4电压跟随器电路设计(励电)MU牙之一由于精度要求,为了降低信号的噪声,此处增用一个电压跟随器电路已达成接近 滤波的效果。电压跟随器的显著特点就是,输入阻抗高,而输出阻抗低。一般来说,输入阻抗可以达到几兆欧姆,而输出阻抗低,通常只有儿欧姆,甚至更低。在电路中,电压跟随器一般做缓冲级(buffer)及隔离级。因为,电压放大器的输出阻抗一般比较高,通常在几干欧到几十千欧,如果后级的输入阻抗比较小,那么信号就会
8、有相当的部分损耗在前级的输出电阻中。在这个时候,就需要电压跟随器进行缓冲。起到承上启下的作用。电压跟 随器还可以提高输入阻抗,可以大幅度减小输入电容的大小,为应用高品质的电 容提供保证。此处菜用如图所示的电路。经过电压跟随器处理的信号噪声有明显的减少,使数 据的稳定性提高。电压跟随器)的电路如图所示LM358仪表放大器和AD620X信号部分2. 5单片机数据处理及控制电路3. 5. 1 STM32STM32系列芯片是由ST公司开发并发布系列相关固件库以方便开发人员进行开发的- 款实用性强,功能强大,开发较容易的32位微处理器(单片机)。在工业上适用于高性能、低成 本、低功耗的嵌入式开发。作为款
9、32位单片机芯片,它使用了 ARM公司的Cortex-M3高性 能内核,并集成/12通道的DMA处理器,定时器,3个12位的us级的A/D转换器,2通道 12位D/A转换器,3个SPI接口,2个IIC接口和串行接口 UART,并因其集成度之高及价格低廉 而被广泛使用。在目前的时代发展中,电广产品对于传感器的使用逐渐增多,ADC功能也相应变得重要。而 在这方面,STM32系列芯片上集成的外设ADC也可以算得上非常强大。增强型产品(STM32F103xC.STM32F103xD.STM32F103xE系列为ST推出的增强型产品)内城3个12位的 ADC.每个多达21个外部通道,可以实现单次或多次扫
10、描转换。ADC的结果可以左对齐或右对 齐的方式存储在16位数据寄存器中。对于ADC来说,分辨率,转换时间和ADC类型是最重要的。32的外设ADC有12位的分 辨率,不能直接测量负电压;转换时间是可编程的,采样时间最短为lum: ADC类型则是逐次 比较性的ADCo ADC的参考电压引脚分别为V (模拟参考量正极)V (模DW 拟电源),V (模 拟参考负极).V (模拟电源地)和模拟量输入脚(16个)。在过程中,SSARa输入信号经过通道 被送到ADC部件,ADC部件需要收到触发信号才开始进行转换,如EXTI触发,定时器触发或 软件触发。ADC部件接收到触发信号后,在ADCCLK时钟的驱动下对
11、输入通道信号进行采样, 并进行模数转换,其中ADCCLK是来自ADC预分频器的。得到的数据被保存在16位的规则通 道寄存器中,可以通过CPU指令或DMA把它读取到内存(变量)中。在ADC的程序设置上,可以设置多种模式,如同步注入模式,同步规则模式等,并可以进行 多通道的轮流采集等设置,功能强大,简便易用。有STM32在定时器方面,还有同样强大的定时器功能。,ADC系列芯片不仅有强大的32 8个16位的定时器,其中TIM6, TIM7为基本定时器,TIM1, TIM8是高级定时然,其他为通 用定时器。这些定时器有定时,信号频率测量,信号的PWM测量,PWM输出,三相六步电机 控制及编码器接口等功
12、能。ri n c n / 48 4? 4. 4f:rcnrir;nn口W 42 41 4*.l 30 9a 9/AVlCD C 1PC13RTC AF1-WKUP2 匚 23C3 VSSNPC14-OSC32 IN C 3* 3RM3PC15 OSC32 OUT C 433 3RM2PHO-OSC IN C s酸nR11pHi-osc dur ccLOFP483i JB10NRST C 730:)伙9VSSA c 229 3RMVDDA r n28 3PB15PA0-V/KUP1 C 10271PB14C ii2区:PB13阳 2 C122s 1P812也母 费 98d i had0HO2 .
13、工、一 .ic 一 SIISSAL SSA 二忘 。京 京 Sa * 是 mi磐h货磐y落吧?包英巨色,单片机引脚图STM32图单片机的引脚连接关系单片机与矩阵键盘的连接:PC2-PIN2GPIOPC1-PIN1PC3-PIN3PC5-PIN5PC4-PIN4PC6-PIN6PC8-PIN8PA4-RSTPC7-PIN7单片机与OLED屏幕的连接:GPIOPA3-CSPA5-DCPA7-SDIN(D1)PA6-SCLK(D0)3.3V-VDD+(非单片机引脚)GND-GND (非单片机引脚) 单片机与传感电路的连接:VCC-3.3VGND-GNDPA1-电压跟随器的信号口 其中P
14、A1复用ADC1功能软件程序的设计与选择第三节.3.1软件程序计算经过放大,滤波与电压跟随器的信号电压从adc中取值,经过20组测量数 据,我们测量出了电源电压(伏)与重量(千克)的关系(数据没有保存,测试成功之后只留下了变换函数),经过非线性校准之后的函数为y = 07835k1-1.38D2(:-1010.3x()/1000 o4. 2最终软件程序(部分)RCC.c, OLED.c, ADC.c, TIM.c, keyboard main.co其中adc.c如下:#include ProHead.hinclude ADC.hextern float mass;extern float ma
15、ssO;extern float massaget;extern u8 danjia4;extern u8 danjia_point;float adc_get| 1000;extern float massOO;extern float adc;u8 x;void ADC_Config(void) GPIO_InitTypeDef GPIO_InitStructure;ADC_InitTypeDef ADCnitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_l ;/l GPIO_Pin_l I GPIO_Pin_2;GPIO_InitStr
16、ucture.GPIO_Mode = GPIO_Mode_AIN;GPIOnit(GPIOA. &GPIOnilStructure);ADC_InitStructure.ADC_Mode= ADC_Mode_Independent; 独立模式ADCnitStructure.ADC_ScanConvMode = DISABLE;连续多通道模式ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; 连续转换ADCnitStructure.ADC_ExtemalTrigConv= ADC_ExternalTrigConv_None: 转换不受外界决定AD
17、CnitSlructure.ADC_DataAlign= ADC_DataAlign_Right; 右对齐ADCnitStructure.ADC_NbrOfChannel = 1;扫描通道数ADCnit(ADC 1, &ADC_InitStincture);ADC_RegularChannelConfig( ADC 1, ADC_Channel_l, 1 , ADC_SampleTime_7 1Cycles5);通道X,采样时间为1.5周期,1代表规则通道第1个这个1是啥意思我不太清楚只有是1的时候 我的ADC才正常。ADC_Cmd(ADCL ENABLE);使能或者失能指定的ADCADC_R
18、esetCalibration(ADCl); ADC1 校准寄存器while(ADC_GetResetCalibrationStatus(ADCl)等待 ADC1 校准重置完成ADC_StartCalibration(ADC 1);/ 开始 ADC 1 校准while(ADC_GetCalibrationStatus(ADCl);/ 等待 ADC 1 校准完成ADC_SoftwareStartConvCmd(ADCl .ENABLE);使能或者失能指定的ADC的软件转换启动功能 void ADC_Read(void) static u!6 i;float he = 0;ul6j;mass =
19、0;for(i=0;il 000;i+)while(ADC_GetFlagStatus(ADCLADC_FLAG_EOC)=RESET);检查制定 ADC 标志位置 1 与 否ADC_FLAG_EOC转换结束标志位mass_get = (float)ADC_GetConversionValue( ADC 1) / 4096 * 3.3;adc_geti = mass_get;for(j=0:jl 000;j+)he = he+adc_getj;mass_get = he/1000:mass_get = mass_get - massOO: adc = mass_get - massO;mass
20、 = (0.7835*adc*adc*adc - 1.3802*adc*adc +1010.3*adc )/1000: void insertsort(float x|.int n) int i, j;float a;for (i=0:in-l:i+)a=x i+1; 尸;j-;Keyboard.c 部分程序如下:void update_key(void) unsigned char i, j;i?.?for(i = 0; i 4; i+)GPIO_ResetBits(key_outputi.GPIO_x, key_outputi.GPIO_pin); for(j = 0: j 4; j+)/
21、)?,?(if(GPIO_ReadInputDataBit(key_inputj.GPIO_x,key_inputj.GPIO_pin) = 0) u!6t = 40000:while (t-);if (GPIO_ReadInputDataBit(keyJnputj.GPIO_x, keyJnputj.GPIO_pin) =0)keyiUJ = 1;key_down(ij);/printf(i=%drn,i);/printf(j=%driLj);/keypoint = 0;/delay_ms(300);else keyi(j = 0;GPIO_SetBits(key_outputi.GPIO_
22、x. key_output(i.GPIO_pin); Oled.c中部分程序如下:void show_mass(void)svvitch(oled_point)case 1 : 正常显示重量show_string_and_mass();break:case 0 :显示系统内存已有单价,可以进行价格选择OLED_ShowCHinese(O.OJ4);OLED_ShowCHinese( 16.0.15);OLED_ShowNum(28.3.danjia0.l);OLED_ShowNum(36,3,danjia 1 , 1J);OLED_ShowNum(443Janjia2JJ);OLED_Show
23、Num(523Janjia3JJ);break:键入单价界面case 2 :break;/case 3 :计价界面jiage = mass * (danjia0*10 + danjiaj 1J + danjia2*0.1 + danjia3*0.01); get_char(price,jiage);OLED_ShowNum(20,3.price4, 1.1);OLED_ShowNum(28,3,price3, 1,1);OLED_ShowNum(36,3price2, 1,1);OLED_ShowNum(44,3.price 1 J J);OLED_ShovNum(52,3.price0, 1
24、);OLED_ShowCHinese(60.3.16);/ ?void show_m_by_number(void) get_char( fanhaoyangjnass);OLED_ShowNum(20 J,fanhaoyang4. 1J);OLED_ShowNum(28.3 Janhaoyang3, 1J);OLED_ShowNum(36,3 Janhaoyang2, 1J);OLED_ShowNum(44.3 Janhaoyang 1 J J);OLED_ShowNum(52,3 Janhaoyang0, 1J);void get_char(u8 getJ.float from)u16 i
25、 = (ul6)(from*1000):get4 =(u8)(i/10000);get3 =(u8)(i - get4*10000)/1000);get2 =(u8)(i - get4*I0000 - get3*1000) / 100);getl =(u8)(i - get4* 10000 - get3*1000 - get2* 100)/10);getO =(u8)(i - get4*10000 - get3*1000 - get2*100 - getl*10);get5 = AO;void shov_string_and_mass(void)OLED_ShowString(0,0,weig
26、ht);OLED_ShowString(683,weight2); get_char(fanhaoyang,mass);OLED_ShowNum(20,3 Janhaoyang|4, 1J);OLED_ShowNum(28.3 Janhaoyang3, 1J);OLED_ShowNum(36,3 Janhaoyang2, 1J);OLED_ShowNum(44.3 Janhaoyang 1 J J);OLED_ShowNum(52,3 Janhaoyang0, 1J);if(qupi_point = 0)OLED_ShowCHinese(0,5,17);OLED_ShowCHinese( 16
27、,5.18);OLED_ShowCHinese(32,5.19);如下:Main.c#include Prohead.h#include mp.h float mass_get;float massO;float mass;float massOO = 0;u8 key point:u8 oled_point;u8 get5;u8 stop_point = 1;float adc;extern 118 fanhaoyang5;void ALL_Config(void) RCC_Config();LED_Config();USART_Config();ADC_Config();keyboard_init();oled_point = 1;OLED_Init();OLED_Clear();massO = 0;int main() delay_ms(5000);ALL_Config();ADC_Read();massOO = adc;vvhile(l) TIM4ntnit( 10,719
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 用电安全培训课件大全
- 2026广东广州市花都区花东镇大塘小学语文专任教师招聘1人备考考试试题附答案解析
- 2026年中国航天科技集团有限公司第五研究院第五一0所校园招聘参考考试题库附答案解析
- 2026年常德烟草机械有限责任公司招聘(35人)备考考试试题附答案解析
- 2026湖南娄底市娄星区青年就业见习单位第二批招募见习人员22人备考考试试题附答案解析
- 2026河南平顶山市宜阳县第一批城镇公益性岗位招聘100人备考考试题库附答案解析
- 2026西藏山南市加查县文旅局公益性岗位1人备考考试试题附答案解析
- 生产工艺培训制度及流程
- 07七年级语文2026年寒假专题练习七(文言文阅读)(解析版)
- 市安全生产工作督查制度
- 新疆概算管理办法
- 女性中医健康养生讲座
- 《养老服务政策法规与标准》智慧健康养老服务专业全套教学课件
- 知识付费商业模式设计
- 无锡车联天下信息技术有限公司智能网联汽车车载显示模组研发及智能化生产项目环评资料环境影响
- 抹灰层阴阳角方正度控制技术
- 【SA8000标准(社会责任标准)对我国劳动密集型产业的影响及应对措施研究12000字(论文)】
- 医疗行业知识产权教育的必要性
- 2024-2025学年沪教版(五四学制)(2024)初中英语六年级下册(全册)知识点归纳
- 五年级数学下册寒假作业每日一练
- 传染病院感防控课件
评论
0/150
提交评论