欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9057|回復(fù): 3
收起左側(cè)

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

  [復(fù)制鏈接]
ID:149144 發(fā)表于 2018-11-3 14:27 | 顯示全部樓層 |閱讀模式
用飯缸蓋做的秤盤,程序里的數(shù)據(jù)做了濾波處理,反應(yīng)速度有點(diǎn)慢,不喜歡的可以去掉濾波,程序以前用的串口1 ,為了方便測試,后來改到串口2,做這個純屬娛樂,學(xué)習(xí),鍛煉動手能力

制作出來的實(shí)物圖如下:

熱熔膠直接打一個,有點(diǎn)丑

熱熔膠直接打一個,有點(diǎn)丑


熱熔膠直接打一個,有點(diǎn)丑

上秤盤

上秤盤

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

固定傳感器

固定傳感器

固定傳感器

固定板子

固定板子


固定板子

stm32單片機(jī)源程序如下:
  1. /*文件名:main.c                                                                                            
  2. /*基本功能 :稱重數(shù)據(jù)處理*/
  3. /*先獲取一個當(dāng)前重量,作為一個參考,再獲取第二次重量,兩次差值作為去皮清零        */
  4. /* 精度    24位   128增益*/
  5. /*  修正值與精度的關(guān)系  1mV *(2^24) * 128 = 2147483648  214.7483648                        */
  6. /*  校準(zhǔn)后的修正值寫入 Flash */
  7. /*串口發(fā)送數(shù)據(jù)作為調(diào)節(jié)指令 1: 去皮  2: g kg ct 單位切換  3:秤臺校準(zhǔn)  4:查看校準(zhǔn)值                */
  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. /********************* 讀取秤臺校準(zhǔn)值 *********************/
  21.         GetFlashParameter();
  22.         if(Correction == 0xFFFFFFFF)
  23.                 {
  24.                         printf("/*** 秤臺未校準(zhǔn) ***/ \r\n");
  25.                         Correction = SensorAccuracy1mV;//缺省設(shè)置
  26.                         printf("校準(zhǔn)值 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 秤臺校準(zhǔn)     *********/\r\n");
  35.         printf("/********* 5 查看校準(zhǔn)值   *********/\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 ://秤臺校準(zhǔn)
  62.                                                 WeighingCorrection();
  63.                                                 break;
  64.                                         case 5 ://查看校準(zhǔn)值
  65.                                                 printf("校準(zhǔn)值 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)定 實(shí)際靈敏度高了 一點(diǎn)都不穩(wěn)定  */
  81.                 rough_weight = FilterCount();
  82.         if(first_weight/50 != rough_weight/50)
  83.         goto repeat;
  84. }
  85. /***************   獲取實(shí)際重量  *********************/
  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("當(dāng)前重量 = %.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("當(dāng)前重量 = %.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("當(dāng)前重量 = %.3f ct\r\n",weight);
  110.                 }        
  111. }
  112. /*********************** 秤臺校準(zhǔn) ***********************/
  113. void WeighingCorrection(void)
  114. {
  115.         printf("請移除秤臺上所有異物…… \r\n");
  116.         GetRoughWeight();//獲取皮重
  117.         actual_weight = FilterCount();        
  118.         actual_weight = actual_weight - rough_weight;//秤臺清零 獲取當(dāng)前的 “0”
  119.         printf("請放置 1 kg 標(biāo)準(zhǔn)砝碼…… \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("校準(zhǔn)值 Correction  = %f \r\n",Correction);
  131. }
復(fù)制代碼

好像有點(diǎn)歪

好像有點(diǎn)歪

打個孔

打個孔

沒錯,翻缸蓋

沒錯,翻缸蓋

看看這是什么

看看這是什么

就這樣吧

就這樣吧

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

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

紅 黑 白 綠

紅 黑 白 綠

沒找到彎針

沒找到彎針

這個不錯,結(jié)實(shí)

這個不錯,結(jié)實(shí)

其實(shí)用這個也挺好的,又絕緣

其實(shí)用這個也挺好的,又絕緣

還是當(dāng)絕緣墊用吧

還是當(dāng)絕緣墊用吧

固定一下

固定一下

還行,不算太丑

還行,不算太丑
0.png

stm32-usart2-hx711-0919.rar

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

評分

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

查看全部評分

回復(fù)

使用道具 舉報

ID:58925 發(fā)表于 2019-1-24 13:46 | 顯示全部樓層
謝謝分享,好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
ID:75369 發(fā)表于 2019-7-31 04:16 | 顯示全部樓層
謝謝分享,樓主的飯碗?yún)柡?/td>
回復(fù)

使用道具 舉報

ID:604602 發(fā)表于 2019-8-28 10:04 | 顯示全部樓層
有用,樓主動手能力真強(qiáng)
回復(fù)

使用道具 舉報

6#
無效樓層,該帖已經(jīng)被刪除
7#
無效樓層,該帖已經(jīng)被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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