历史上的今天
今天是:2025年02月01日(星期六)
2020年02月01日 | 如何设计基于AVR单片机的数字电子秤?
2020-02-01 来源:elecfans
近年来,新型单片机的出现和集成电路技术的发展为更新产品设计,研制高性价比的称重控制器提供了条件。本设计采用为控制核心,结合电阻应变式压力传感器和相应的信号采集电路,设计出一种高精度、多功能、低成本的新型电子秤。
1 系统总体设计
首先由称重传感器采集因压力变化而产生的电压信号,通过A/D转换器将模拟信号转换为数字信号,把数字信号送入AVR单片机,单片机做相应的处理后,得到当前物体重量的数据,并通过LCD显示出来。系统硬件结构如图1所示。
系统硬件电路包括A/D转换模块、4×4矩阵键盘模块、LCD模块和蜂鸣器报警模块;软件模块又可分为主程序模块、矩阵键盘扫描模块、A/D转换模块和LCD1602模块。
2 系统硬件设计
2.1 AVR单片机
本设计是选用AVR系列单片机中的ATmega16作为微控制器。ATmega16是基于增强型AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集和单时钟周期指令执行时间,ATmega16L的数据吞吐量高达1MIPS/MHz,在片内集成了16kB的可编程FLASH,512B的E2PROM,1kB的片内SDRAM。在外设方面,具有两个可编程的串行UART,8路10位ADC,四通道PWM,并支持SPI、TWI、JTAG接口,允许ATmega16L和其他外设进行高速的数据传输。
2.2 称重传感器
电阻应变式称重传感器是把电阻应变计粘贴在弹性敏感元件上,然后以适当方式组成电桥的一种将力(重量)转换成电信号的传感器。在电阻应变式称重传感器中通过桥式电路将电阻的变化转换为电压变化。电阻应变式称重传感器工作原理如图2所示。
本设计选用湖南宇航公司的SB-B型悬臂式称重传感器,额定量程5kg,灵敏度3mv/V,非线性误差0.03%ES,重复性误差0.02%ES,蠕变(30分钟)O.03%F.S,零点温度漂移0.03%F.S./10℃,温度补偿范围-10~60℃。该系列传感器采用悬臂单剪切结构,过载能力强,受力后自动调心好,具有精度高、长期稳定性好、抗疲劳、抗偏载能力强的特点。
2.3 高精度A/D转换
称重传感器输出的是mV级的电压信号,本设计采用AD7705对信号进行采集。AD7705是AD公司推出的一种基于∑-△转换技术的16位A/D转换芯片,它具有高分辨率、宽动态范围、自校准、优良的抗噪声性能以及低电压、低功耗等特点,适合于称重系统中微机信号处理的需求。其具有可编程增益放大器,增益范围1~128,可与压力传感器直接相连,使用同步串行SPI接口,可以与AVR单片机的硬件SPI接口直接相连,其电路连接图如图3所示。
当传感器加上满量程重量5kg时,传感器在5V的工作电压下取得15mV的输出电压。5V工作电压经分压后为AD7705提供基准电压,因此工作电压的变化不会产生系统误差。分压电阻为24kΩ和15kΩ,产生的基准电压为1.92V。当器件的可编程增益为128时,对应的满量程输入电压即为15mV。
2.4 人机通讯
人机通讯包括键盘扫描、LCD、蜂鸣器报警三个部分,键盘采用4×4矩阵扫描键盘,接在单片机的PC口;显示部分采用的是LCD1602液晶,能够同时显示16×2即32个字符。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,编程时可以用AS-CII码直接赋值,还可以用字符型常量或变量赋值;蜂鸣器的作用是当称重物品超出传感器的量程时,以鸣响报警提示用户。
3 系统软件设计
系统软件开发平台为WinAVR,开发语言为C语言。为了方便程序调试和提高可靠性,程序设计采用自上而下、模块化、结构化的程序设计方法。本设计按任务模块划分的程序主要有初始化程序、主程序、A/D转换子程序、LCD显示子程序、键盘扫描子程序。
系统工作时分为初始界面模式和称重模式,可设一标志位进行更改以及判断。在初始界面中,液晶屏第一行显示"Place object!”,提示用户可以在电子秤上放置想要称重的物品;第二行显示"PrICe:”,提示用户输入物品的单价。
随后系统进入键盘扫描状态,当相应的称重按键被按下时,单片机控制AD7705进行AD转换,把得到的结果进行处理后通过LCD显示出来。显示包括物品的重量和总价,称重精度为1g。以此不断地循环完成对物品的实时测量。主程序流程图如图5所示。
4 结束语
文章提出了一种基于ATmega16单片机的的设计,充分发挥了AVR单片机的强大的控制能力,通过称重传感器和16位的AD7705转换器实现了对重量的高精度测量,具有成本低、稳定性强、电路简单等特点。系统在电子秤的实际应用中得到了满意的效果。
史海拾趣
|
一、 闭路监视电视系统简介: CCTV系统结构: 电视监控系统(Closed Circuit Television,简称CCTV),一般由以下三部分组成: 前端部分: 主要由黑白(彩色)摄像机、镜头、云台、防 ...… 查看全部问答> |
|
高人可以帮我看下我的这个拨码开关程序老有点小我问题,,十万火急 process(clk_a) VARIABLE cnt_a : std_logic_vector(7 downto 0):=\"11111111\"; begin if (clk_a\'event and clk_a=\'1\') then if cnt_a=\"11111111\" then cnt_a:=d; full_a… 查看全部问答> |
|
Altium Designer 使用 —— 快速制作原理图封装当制作引脚数比较多的器件的原理图封装时,可以使用AD提供的“smart grid insert”功能快速制作原理图封装库。本文以制作K9F1G08为例,进行简单说明。K9F1G08的引脚分布如图1所示:1. 打开 excel ,按 ...… 查看全部问答> |
|
新建一个wince 的mfc exe,怎么在对话框中添加一个ie控件,浏览一个url(本地页面),thanks 新建的时候,选择,WCE MFC appWizard[exe] ,然后再选择Dialog base, 怎么样在该Dialog上添加一个ie控件,然后去浏览一个本地url? thanks… 查看全部问答> |
|
本人从朋友那里得到一份cadence(allegro)视频教程15.5板本,是一个培训班的内部视频讲义,清晰度很高,很具体详细,是自学的好资料。如果您没时间看书或者想很快学会allegro的话就请联系:13783696474 或者QQ:20247125 ...… 查看全部问答> |
|
1.最近我用sci调试RS485的时候遇到一个怪现象: 有时候(不是全部,重新加载程序的时候一般都是)cpu明明有数据发出来,SCIRX,SCITX波形正常,可是485驱动芯片出来的两线信号发不出来,示波器只能看到负半波.只要我把与其通信的人机界面的通讯口拔出来 ...… 查看全部问答> |
|
最近在学习FPGA方面知识,对时钟触发有了了解,但有好多问题有些不明白。希望大虾解释 如: always(posedge CLK) begin //执行任务块 end 假如时钟的周期为50nS,占空比50%;所执行的任务块比较耗时间,超过50nS,而此时任务块尚未完全执行完 ...… 查看全部问答> |




