上海体育频道在线直播卫视

厨房电子称【方案教程】和【源程序】发布了 最低可测1g物体

来源:上海体育频道在线直播卫视    发布时间:2026-01-25 00:26:22
产品简介

  厨房电子称的PDF版教程,以及单片机源程序,可以去技新网“称重传感器”产品页面免费下载。

  要制作一个电子称,你必须要设计以下几种关键电路部分:压力传感器部分、ADC模数转换部分、主控电路部分、显示器部分。让我们一起看看各部分电路所起的作用。

  电子称,一般都会采用压力传感器,因为厨房秤经常会称一些几g的东西,所以,压力传感器的选型主要考虑的是分辨率。

  比如,市场上有一种称为S型压力传感器的,主要用在工业控制场合,量程很大比如1吨的,它的允许误差可能就有1千克,所以做一个药房称非常不合适。

  这里,我们选用悬臂梁式压力传感器,这种传感器有一些是小量程的,比如1KG,比如10KG,这些都很适合做厨房称,分辨率可达1g。

  上图是压力传感器的内部电路示意图,E+和E-之间接上一个激励电压,比如3.7V。

  当有重物压在受力端时,S+和S-之间会产生一个电压,这个电压会随着重物的增加而变大,而且是一个线性的对应关系。

  我们最终选定“技小新-10kg称重传感器”,压力传感器带秤盘,引出4条线,分别是E+ E- S+ S-。

  上面刚说了,通过检验测试传感器的电压,就可以计算出重量,所以就需要一个模拟电压采集电路,看上图不难得知,S+和S-其实就是一个电桥的输出。

  假设,压力传感器的输出灵敏度为1mV/V,即表示若激励电压是5V,则输出范围±5mV。

  比如S+对地电压是2.51V,S-对地电压是2.50V,那么S+和S-之间的电压差就是0.01V,这个0.01V的信号就叫差分信号,他们的共模电压就是2.50V。

  在检测电压时,可以先检测一下S+的对地电压,再检测一下S-的对地电压,然后再做一个减法运算就行了,这样需要采集两次电压,不仅增加了运算量,而且每次采集都是带误差的,而且这里的有效信号仅仅是那个0.01V的差。

  这个芯片的输入信号可以是一个差分信号,也就是那个0.01V的电压,而且内部还带有一个放大器,可以把这个0.01V的信号放大128倍。

  由于是差分输入的芯片,所以要特别注意一下它可承受的共模电压大小,CS1237能承受最大共模电压是芯片的电源电压。

  还是假设S+和S-之间的电压差是0.01V,那就能经过128倍放大,就变成了1.28V。

  使用上图所示的接线V的供电,由于是差分输入的结构,所以CS1237可接受的信号是±3.7mV。这样有一个好处,就是当传感器安装时候,不需要过多的担心受力方向了,不管如何安装,只要经过校准,都可以检测到有效的重量。

  我们最终选定“技小新-CS1237差分ADC模块”,称重传感器的4条线可以接到ADC模块的接线端子上,排针接口用来和单片机连接,通信方式为2线 主控单片机部分

  我们最终选定“技小新-IAP15W4K58S4单片机最小系统板”,此单片机本身自带的ADC可拿来检测电池的电压,所以,我们还可以给电子称加入显示电池电压的功能。

  我们最终选定和单片机最小系统板配套的“技小新-0.96寸OLED显示模块”,通过I2C接口与单片机连接。

  硬件电路部分的搭建就完成了,接下来我们一起看看程序怎么设计。要想测得一个重量,步骤流程是这样的:用户把东西放到称重传感器以后,S+ S-两条线差分ADC模块采集到了压差,并且转换成了数字信号,单片机通过它们之间的2线SPI口与ADC模块通信,要到了电压数据,单片机经过一定的算法,把这个电压数据计算成了重量,然后把这个重量值显示到OLED显示模块上。除此之外,还会加入一些辅助功能,比如去皮功能、电池电压检测功能等。

  单片机和CS1237的通信协议最简单,根据芯片手册提供的通信时序,写好基本的驱动程序。

  这里对大家说一个格外的简单的验证驱动程序是不是正确的办法:首先给CS1237某寄存器写入一个值,然后再读取一下这个寄存器的值,最后通过串口把读取到的数据发送到电脑的串口助手,看一看读取到的数据是不是是你写进去的数据,这样就能判断和CS1237的通信是不是正常了。必须调试到通信正常,才可以去读取转换好的数据。

  通上电之后,秤盘上面不放任何东西,此时传感器会输出一个电压,不要管具体是多少,因为每一个批的传感器都会有微小差异,拧螺丝的力道不一样这个电压也不会一样。

  无论如何,此时能够采集到一个数值,想象一下,这是数轴上的一个点A。这样一个时间段,再在秤盘上面放一个500克的砝码,不管电压是往正方向走还是往负方向走,反正采集到的电压肯定会偏离A点一段距离的,记录这个点位B。那么用B-A(两个数值是带正负号的计算)得到的数值就是在这个电子秤中,500克的重量对应的那一段。此时可以计算一下称重系数C=500/(B-A)。数值C是一个小数,而且一定是正数,表示CS1237采集的数字,每一个数字对应的重量,比如可能是C=0.01,那么如果单片机再读取到一个数据是D,D-A如果等于1000,那么秤盘上放的这个物品就是10克。(详见源程序)

  通过上面的算法分析,我们应该一个校准数据,要求这个数据在设备掉电后也可保存,不然的话,每次上电都要校准,用户用起来就不方便。所以要用到一个掉电保存的存储器,一般来说,我们需要一个EEPROM芯片,不过,由于我们使用的单片机内部自带EEPROM,所以就不需要外部的EERPOM芯片了。

  电子称如果用外部电源供电的话,使用的时候还需要把它放到靠近插座的地方,很不方便。所以我们可以选择电池供电,用电池供电的电子称,可以很方便的搬到任何地方。

  不过,电池供电有一个问题必须要考虑,就是电池电压是不断变化的,理论上在每一分钟它都是在不断降低的,直到没电为止。采用CS1237的官方推荐电路连接的称重传感器,它的激励电源来自CS1237的电源电压,而且这个电压同时也是它的AD转换参考电压。之前校准保存好的数值假设是Y,那么在同样的重量下,即使电压降低了一点,的到的校准数据依然是Y。这是因为AD转换本来就是依据参考电压的一个相对数值。

  我们来看一下电池电压的检测的原理:上述已经说了,AD转换本来就是一个相对的数值,如果有一个稳定的参考,就是不管电池电压怎么变化,参考电压依然保持稳定就好了。单片机内部有一个BGA解决了这个问题,通过在5V情况下校准时候记录下这个BGA的电压,在电池供电时候就可以依据这个记录数值来推导出当前电压的大小了。

  我们使用的OLED显示模块使用IIC通信接口与单片机连接,OLED需要显示当前电池电压和当前重量。

  按键需要三个,其中两个是调试时候要使用到,校准用,另一个是留给用户的,作为去皮功能使用。

  去皮功能按键,如果能和开机键复用,就十分便捷了。查阅单片机手册,发现这个单片机能进入低功耗状态,还能够被唤醒。其中外部中断2就可以唤醒单片机,那么就把外部中断2这个引脚作为去皮功能的引脚吧。(详见源程序)

  程序中开了一个定时器4,产生25mS一次的中断,这样就可以计算时间了。假设这个时刻检测到了一个重量,30S之后又检测到了一个重量,如果两次相等,就认为电子秤不用了,关闭所有的外设什么的,进入低功耗状态,节约用电。若用户按了一次去皮按键,由于它可以唤醒设备,所以电子秤会继续工作,这就是低功耗设计的程序思路。

  开始连线我们按照下面的步骤,连接电子设计模块。3.1 “称重传感器模块”和“CS1237差分ADC模块”的连接

  (软件上有处理一下的话,S+和S-能不用区别正负极,因为CS1237的模拟输入通道是差分输入)

  GND连接到“51单片机最小系统板的“GND”接口上。OUT连接到单片机P3.7引脚。

  4.1下载程序步骤1:拿出USB转MINI-USB连接线,USB一端连接到电脑,MINI-USB一端连接到单片机最小系统板。步骤2:电脑上打开ISP下载软件,选择好正确的串口号,加载编译好的程序HEX文件,点击下载。

  第二个点的校准。在秤盘上放一个500克的砝码,等待十秒左右,按下 KEY2 按键。

  (如果你想校准第一个点,但是又不想重新下载程序,可以每时每刻按下KEY1键,第一个点校准的时候,不要放砝码。)

  如果用电池供电,把电池的正极连接到单片机最小系统板的5V接口,负极接到单片机最小系统板的GND接口。

  如果用外部USB电源供电,把电源的mini-USB口插入51单片机最小系统板mini-USB接口,就和下载程序的时候一样。

  由于每次开机时候,传感器受力情况会发生微妙变化(比如移动位置,秤盘被压过,底座没放平等),所以程序在每次开机时会进行去皮,软件上消除此误差。

  当程序检测到超过30S重量没有变化,则自动进入低功耗模式,关闭OLED以达到省电的目的。若想再次使用必须按下 KEY3 按键。(此时的KEY3按键相当于产品上面的“开机”按键。当然你也可以做一个电源开关,直接关闭系统)

  通过前边的设计,我们已实现了一个电子称。不过,我们仍旧是强烈建议你把这些模块整个到一个电路板上,设计自己的电子称电路板,而这项工作,也非常的容易。因为,技小新电子设计模块,都会提供一个详细的BOM表,你不需要过多的担心在市场采购元器件给你带来的烦恼,也不用自己设计封装。BOM表中,提供了电路板上所有元器件的品牌、值以及在立创商城的编号,你只需要在立创商城输入器件编号,就能买这些元器件。BOM表中,还提供了封装名称,你用到的模块电路板上的所有元器件的封装,都已经给你画好了,不过,要想使用这一些封装,你需要用LCEDA软件进行你的设计。这是一个云端EDA设计软件,打开浏览器就可以设计,不用考虑你的电脑是什么系统,也不用安装任何软件。这两项最繁琐的工作,已经给你做好了,你只需要把重点放在设计你的电路板就可以了。


相关设备