久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

個性HX711電子秤制作 附STM32單片機源碼帶濾波

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:149144 發(fā)表于 2018-11-3 14:27 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
用飯缸蓋做的秤盤,程序里的數(shù)據(jù)做了濾波處理,反應速度有點慢,不喜歡的可以去掉濾波,程序以前用的串口1 ,為了方便測試,后來改到串口2,做這個純屬娛樂,學習,鍛煉動手能力

制作出來的實物圖如下:


熱熔膠直接打一個,有點丑


上秤盤(看看這是什么?沒錯,翻缸蓋)


固定傳感器



固定板子

stm32單片機源程序如下:
  1. /*文件名:main.c                                                                                            
  2. /*基本功能 :稱重數(shù)據(jù)處理*/
  3. /*先獲取一個當前重量,作為一個參考,再獲取第二次重量,兩次差值作為去皮清零        */
  4. /* 精度    24位   128增益*/
  5. /*  修正值與精度的關(guān)系  1mV *(2^24) * 128 = 2147483648  214.7483648                        */
  6. /*  校準后的修正值寫入 Flash */
  7. /*串口發(fā)送數(shù)據(jù)作為調(diào)節(jié)指令 1: 去皮  2: g kg ct 單位切換  3:秤臺校準  4:查看校準值                */
  8. #include "main.h"

  9. /************************* 主函數(shù) **************************/
  10. int main(void)
  11. {
  12. /****************** 配置系統(tǒng)時鐘為 72M *********************/              
  13.         SystemInit();
  14. /**************  USART2 config 115200 8-N-1  **************/               
  15.         USART2_Config();
  16. /*********************  HX711端口配置 *********************/
  17.         GPIO_INIT();
  18. /*********************  秤臺數(shù)值清零  *********************/
  19.   GetRoughWeight();
  20. /********************* 讀取秤臺校準值 *********************/
  21.         GetFlashParameter();
  22.         if(Correction == 0xFFFFFFFF)
  23.                 {
  24.                         printf("/*** 秤臺未校準 ***/ \r\n");
  25.                         Correction = SensorAccuracy1mV;//缺省設(shè)置
  26.                         printf("校準值 Correction = %f \r\n",Correction);
  27.                 }
  28. /*********************  清零成功檢測  *********************/
  29.         printf("/**** STM32F103C8T6 HX711電子秤 ****/\r\n");
  30.         printf("/********* 請輸入串口指令  *********/\r\n");
  31.         printf("/********* 1 稱重         *********/\r\n");
  32.         printf("/********* 2 去皮         *********/\r\n");
  33.         printf("/********* 3 轉(zhuǎn)換單位     *********/\r\n");
  34.         printf("/********* 4 秤臺校準     *********/\r\n");
  35.         printf("/********* 5 查看校準值   *********/\r\n");
  36. /****************************************/        
  37.         while(1)
  38.                 {
  39.                         function = 0;
  40.                         if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
  41.                           {
  42.                                  USART_ClearFlag(USART2, USART_FLAG_RXNE);
  43.                                  USART_ClearITPendingBit(USART2,USART_IT_RXNE);
  44.                                  function = USART_ReceiveData(USART2);
  45.                           }
  46.                         if(function)
  47.                          {
  48.                                 switch( function )
  49.                                  {
  50.                                         case 1 ://稱重
  51.                                                 Weighing();
  52.                                                 break;
  53.                                         case 2 ://去皮
  54.                                                 GetRoughWeight();
  55.                                           Weighing();
  56.                                                 break;
  57.                                         case 3 ://切換單位
  58.                                                 if(++unit >= 3)unit = 0;
  59.                                           Weighing();                                       
  60.                                                 break;
  61.                                         case 4 ://秤臺校準
  62.                                                 WeighingCorrection();
  63.                                                 break;
  64.                                         case 5 ://查看校準值
  65.                                                 printf("校準值 Correction = %f \r\n",Correction);
  66.                                                 break;
  67.                                         default:
  68.                                                 printf("***** 無效指令 *****\r\n");
  69.                                                 break;
  70.                                  }
  71.                          }
  72.                 }
  73. }
  74. /**************     獲取毛皮重量   **************/
  75. void GetRoughWeight(void)
  76. {
  77.         repeat:
  78.                 first_weight = FilterCount();
  79.                 delay_ms(1000);
  80.                 delay_ms(1000);/*  2S 后 數(shù)據(jù)穩(wěn)定,說明傳感器基本穩(wěn)定 實際靈敏度高了 一點都不穩(wěn)定  */
  81.                 rough_weight = FilterCount();
  82.         if(first_weight/50 != rough_weight/50)
  83.         goto repeat;
  84. }
  85. /***************   獲取實際重量  *********************/
  86. void Weighing(void)
  87. {
  88.         actual_weight = FilterCount();
  89.         actual_weight = actual_weight - rough_weight;
  90. /*****************  單位為千克 kg         *****************/
  91.         if(unit == 0)
  92.                 {
  93.                         weight = ((float)actual_weight / Correction);
  94.                         if(weight > 10000)weight = 0;
  95.                         printf("當前重量 = %.2f kg\r\n",weight);
  96.                 }
  97. /*****************  單位為克  g          *****************/
  98.         if(unit == 1)
  99.                 {
  100.                         weight = ((float)actual_weight / Correction) *1000;
  101.                         if(weight > 10000)weight = 0;
  102.                         printf("當前重量 = %.2f g\r\n",weight);
  103.                 }
  104. /*****************  單位為克拉 ct         *****************/
  105.         if(unit == 2)
  106.                 {
  107.                         weight = ((float)actual_weight / Correction) * 5000;
  108.                         if(weight > 10000)weight = 0;
  109.                         printf("當前重量 = %.3f ct\r\n",weight);
  110.                 }        
  111. }
  112. /*********************** 秤臺校準 ***********************/
  113. void WeighingCorrection(void)
  114. {
  115.         printf("請移除秤臺上所有異物…… \r\n");
  116.         GetRoughWeight();//獲取皮重
  117.         actual_weight = FilterCount();        
  118.         actual_weight = actual_weight - rough_weight;//秤臺清零 獲取當前的 “0”
  119.         printf("請放置 1 kg 標準砝碼…… \r\n");
  120.         delay_ms(1000);
  121.         delay_ms(1000);
  122.         delay_ms(1000);
  123.         delay_ms(1000);
  124.         actual_weight = FilterCount();//獲取 1kg 時 hx711 的值
  125.         Correction        = (float)((actual_weight - rough_weight) / 1.000);//獲取修正值
  126.         Correction *= 1000;
  127.         SaveFlashParameter();//修正值寫入 Flash
  128.         GetFlashParameter(); //將修正值讀出,以作使用
  129.         Correction /= 1000;
  130.         printf("校準值 Correction  = %f \r\n",Correction);
  131. }
復制代碼

201811031410423.jpg (1.17 MB, 下載次數(shù): 202)

好像有點歪

好像有點歪

201811031410422.jpg (1.07 MB, 下載次數(shù): 333)

打個孔

打個孔

201811031410421.jpg (1.26 MB, 下載次數(shù): 197)

沒錯,翻缸蓋

沒錯,翻缸蓋

20181103141042.jpg (1.9 MB, 下載次數(shù): 196)

看看這是什么

看看這是什么

201811031410424.jpg (1.16 MB, 下載次數(shù): 207)

就這樣吧

就這樣吧

201811031410425.jpg (1.22 MB, 下載次數(shù): 198)

HX711 成品,淘寶很便宜的,沒必要自己做

HX711 成品,淘寶很便宜的,沒必要自己做

201811031410426.jpg (1.74 MB, 下載次數(shù): 205)

紅 黑 白 綠

紅 黑 白 綠

201811031410427.jpg (1.37 MB, 下載次數(shù): 202)

沒找到彎針

沒找到彎針

201811031410429.jpg (1.1 MB, 下載次數(shù): 196)

這個不錯,結(jié)實

這個不錯,結(jié)實

2018110314104210.jpg (1.2 MB, 下載次數(shù): 204)

其實用這個也挺好的,又絕緣

其實用這個也挺好的,又絕緣

2018110314104211.jpg (998.59 KB, 下載次數(shù): 228)

還是當絕緣墊用吧

還是當絕緣墊用吧

2018110314104212.jpg (1.4 MB, 下載次數(shù): 206)

固定一下

固定一下

2018110314104213.jpg (1.91 MB, 下載次數(shù): 198)

還行,不算太丑

還行,不算太丑

0.png (19.12 KB, 下載次數(shù): 195)

0.png

stm32-usart2-hx711-0919.rar

255.09 KB, 下載次數(shù): 205, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:58925 發(fā)表于 2019-1-24 13:46 | 只看該作者
謝謝分享,好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:75369 發(fā)表于 2019-7-31 04:16 | 只看該作者
謝謝分享,樓主的飯碗?yún)柡?/td>
回復

使用道具 舉報

地板
ID:604602 發(fā)表于 2019-8-28 10:04 | 只看該作者
有用,樓主動手能力真強
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本一级淫片免费啪啪3 | 蜜臀久久99精品久久久久久宅男 | 伊人婷婷 | 超碰97免费观看 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 久视频在线观看 | av黄色免费 | 91久久伊人 | 国产精品视频一区二区三 | 一区二区三区免费在线观看 | 97久久久久久久久 | 亚洲综合无码一区二区 | 夜夜精品浪潮av一区二区三区 | 久久国产成人午夜av影院武则天 | 久久精品一级 | 午夜免费| 亚洲精品国产电影 | av一区二区三区四区 | 伊人春色在线观看 | 一二区视频 | 国产成人免费视频网站高清观看视频 | 成人黄色在线观看 | 中文字幕在线精品 | 日日夜夜免费精品 | 日韩国产黄色片 | 91免费电影 | 免费成人在线网站 | 日韩欧美国产精品一区二区三区 | 日韩一区二区三区在线播放 | 男女免费在线观看视频 | 欧美日韩亚洲二区 | 成人亚洲精品 | 免费黄色片在线观看 | 久久青草av | 免费在线观看黄视频 | 视频二区国产 | 国产偷自视频区视频 | 亚洲高清视频一区二区 | 日韩看片 | a视频在线观看 | 国产一区二 |