基于STM32的智能电子秤设计 您所在的位置:网站首页 电子秤结构图片 基于STM32的智能电子秤设计

基于STM32的智能电子秤设计

2023-08-11 16:27| 来源: 网络整理| 查看: 265

硬件设计

        本设计是一款基于STM32单片机的电子秤系统,随着科学技术的不断发展,传统的机械秤逐渐被电子秤所取代,相比于计量不精确,费时费力的机械秤,电子秤采用在方便快捷的同时,又保证了结果的准确性。本次设计采用STM32单片机作为处理器,控制各个传感器和外设,采用LCD1602液晶屏作为显示器,显示检测到的重量,压力传感器用于称重,通过检测物体对传感器造成的压力,通过公式计算得出物体的重量,此外通过16个按键组成矩阵键盘,可以输入数字,并进行加减乘除操作,通过重量和单价计算出总价。        实物主要由STM32单片机+最小系统+LCD1602液晶显示模块+HX711模块+LED模块+蜂鸣器模块+矩阵按键模块+10kg压力传感器;如图:

 

设计功能

1.液晶显示当前重量大小。 2.按键可以设置当前物品单价。 3.具有去皮清零功能。 4.按键确认按键液晶显示当前重量,单价,总价。

设计原理图

原理图如图:

PCB图如下:

 

主程序源码   int main(void)  {         u8 test_interval = 0;     delay_init();        //延时函数初始化           KEY_GPIO_Init();    //按键初始化     HX711_GPIO_Init();     delay_ms(500);       //上电瞬间加入一定延时在初始化     LCD_Init();         //屏幕初始化     delay_ms(300);      LCD1602_write_com(0x80);                        //指针设置     LCD1602_write_word("Welcome to use! ");     To_Zero();     LCD1602_write_com(0x80);                        //指针设置     LCD1602_write_word("WE: .    PR:  . ");     LCD1602_write_com(0x80+0x40);                //指针设置     LCD1602_write_word("MON:   .        ");     Display_Price();     while(1)     {             //每0.5秒称重一次         if (test_interval ++ > 25)         {             test_interval = 0;             //称重,得到重量值weight,单位为g         get_weight();             //如果超量程,显示‘-.---’             if (weight >= 10000)             {                 pre_weight = 10000;                 LCD1602_write_com(0x83);                 LCD1602_write_word("-.---");             }             //如果不超量程             else             {                 //显示重量值                 if (pre_weight != weight)                 {                     pre_weight = weight;                     Display_Weight();                 }                 //如果单价设定好了,则计算价格                 if (FlagSetPrice == 1)                 {                     money = weight*price/1000;  //money单位为分                     //显示总金额                     if (pre_money != money)                     {                         pre_money = money;                         Display_Money();                     }                 }                 else                 {                     LCD1602_write_com(0x80+0x40+4);                     LCD1602_write_word("   . ");                 }             }         }         //获取按键         keycode = KEYSCAN();         //有效键值0-15         if ((keycode


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有