找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4171|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

STM32F103電子秤程序 稱重邏輯

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:730478 發(fā)表于 2020-4-16 17:16 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
實時重量計算,附帶可分部拿走部分的重量,OLED顯示  同時可通過串口上位機顯示拿去部分的重量

單片機源程序如下:
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "oled.h"
  4. #include "bmp.h"
  5. #include "adc.h"
  6. #include "pwm.h"
  7. #include "key.h"
  8. #include "pwm.h"
  9. #include "HX711.h"
  10. #include "usart.h"

  11. int main(void)
  12.   {        
  13.                
  14.                 char current[]={"current:"};
  15.     char take[]={"t a k e:"};
  16.                 char carry[]={"current:"};
  17.                 u8 i=0 ;
  18.     SystemInit();               /*系統(tǒng)時鐘初始化*/
  19.                 delay_init();               /*延時函數(shù)初始化*/        
  20.                 OLED_Init();                     /*OLED初始化*/
  21.                 OLED_Clear();        /*OLED清屏*/
  22.                 Init_HX711pin();
  23.           USART1_Config();
  24.                 delay_ms(100);
  25.     key_init();
  26.                 OLED_ShowString(0,2,current,16);
  27.                 OLED_ShowString(0,4,take,16);
  28.                 Get_Weight();        
  29.           offset=Weight_Shiwu;
  30.         while(1)
  31.         {               
  32.     Get_Weight();
  33.     tot=Weight_Shiwu-offset;
  34.           if(tot<=0)tot=0;
  35.     OLED_ShowNum(80,2,tot,6,16);
  36.                
  37.     if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10) == 0)
  38.                 {
  39.                         delay_ms(500);
  40.                             if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10) == 0)
  41.                                         {
  42.             i++;
  43.                                         }
  44.                 }
  45.     if(i==1)
  46.                 {
  47.                   tot_old=tot;
  48.                         i=2;
  49.                         err=0;
  50.       OLED_ShowChar(75,4,'*',16);
  51.       OLED_ShowChar(65,4,' ',16);
  52.       OLED_ShowNum(80,4,err,6,16);
  53.                 }
  54.     if(i==3)
  55.                 {
  56.       err=tot_old-tot;
  57.                         i=0;
  58.                   if(err<=0)
  59.                   {
  60.                   err=-err;
  61.                    }
  62.       OLED_ShowChar(75,4,'*',16);
  63.       OLED_ShowChar(65,4,'*',16);
  64.       OLED_ShowNum(80,4,err,6,16);
  65.       USART_SendData(USART1,err);
  66.                 }
  67.     //  USART_SendData(USART1,err);
  68.         }         
  69.         
  70. }
  71.         
復(fù)制代碼

所有資料51hei提供下載:
電子秤串口 oled 拿去重量.7z (206.11 KB, 下載次數(shù): 87)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:887744 發(fā)表于 2021-3-5 08:42 來自手機 | 只看該作者
怎么接線呢
回復(fù)

使用道具 舉報

板凳
ID:874751 發(fā)表于 2021-3-19 13:02 | 只看該作者
回復(fù)

使用道具 舉報

地板
ID:446775 發(fā)表于 2021-3-25 15:53 | 只看該作者
你用的傳感器量程是多大的?我目前做了一款使用51做的,輸出用的是LCD1602,感覺不夠用,想輸出用OLED屏試試
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表