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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

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

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
用飯缸蓋做的秤盤(pán),程序里的數(shù)據(jù)做了濾波處理,反應(yīng)速度有點(diǎn)慢,不喜歡的可以去掉濾波,程序以前用的串口1 ,為了方便測(cè)試,后來(lái)改到串口2,做這個(gè)純屬娛樂(lè),學(xué)習(xí),鍛煉動(dòng)手能力

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


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


上秤盤(pán)(看看這是什么?沒(méi)錯(cuò),翻缸蓋)


固定傳感器



固定板子

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

  9. /************************* 主函數(shù) **************************/
  10. int main(void)
  11. {
  12. /****************** 配置系統(tǒng)時(shí)鐘為 72M *********************/              
  13.         SystemInit();
  14. /**************  USART2 config 115200 8-N-1  **************/               
  15.         USART2_Config();
  16. /*********************  HX711端口配置 *********************/
  17.         GPIO_INIT();
  18. /*********************  秤臺(tái)數(shù)值清零  *********************/
  19.   GetRoughWeight();
  20. /********************* 讀取秤臺(tái)校準(zhǔn)值 *********************/
  21.         GetFlashParameter();
  22.         if(Correction == 0xFFFFFFFF)
  23.                 {
  24.                         printf("/*** 秤臺(tái)未校準(zhǔn) ***/ \r\n");
  25.                         Correction = SensorAccuracy1mV;//缺省設(shè)置
  26.                         printf("校準(zhǔn)值 Correction = %f \r\n",Correction);
  27.                 }
  28. /*********************  清零成功檢測(cè)  *********************/
  29.         printf("/**** STM32F103C8T6 HX711電子秤 ****/\r\n");
  30.         printf("/********* 請(qǐng)輸入串口指令  *********/\r\n");
  31.         printf("/********* 1 稱(chēng)重         *********/\r\n");
  32.         printf("/********* 2 去皮         *********/\r\n");
  33.         printf("/********* 3 轉(zhuǎn)換單位     *********/\r\n");
  34.         printf("/********* 4 秤臺(tái)校準(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 ://稱(chēng)重
  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 ://秤臺(tái)校準(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("***** 無(wú)效指令 *****\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)定,說(shuō)明傳感器基本穩(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. /*********************** 秤臺(tái)校準(zhǔn) ***********************/
  113. void WeighingCorrection(void)
  114. {
  115.         printf("請(qǐng)移除秤臺(tái)上所有異物…… \r\n");
  116.         GetRoughWeight();//獲取皮重
  117.         actual_weight = FilterCount();        
  118.         actual_weight = actual_weight - rough_weight;//秤臺(tái)清零 獲取當(dāng)前的 “0”
  119.         printf("請(qǐng)放置 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 時(shí) hx711 的值
  125.         Correction        = (float)((actual_weight - rough_weight) / 1.000);//獲取修正值
  126.         Correction *= 1000;
  127.         SaveFlashParameter();//修正值寫(xiě)入 Flash
  128.         GetFlashParameter(); //將修正值讀出,以作使用
  129.         Correction /= 1000;
  130.         printf("校準(zhǔn)值 Correction  = %f \r\n",Correction);
  131. }
復(fù)制代碼

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

好像有點(diǎn)歪

好像有點(diǎn)歪

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

打個(gè)孔

打個(gè)孔

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

沒(méi)錯(cuò),翻缸蓋

沒(méi)錯(cuò),翻缸蓋

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

看看這是什么

看看這是什么

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

就這樣吧

就這樣吧

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

HX711 成品,淘寶很便宜的,沒(méi)必要自己做

HX711 成品,淘寶很便宜的,沒(méi)必要自己做

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

紅 黑 白 綠

紅 黑 白 綠

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

沒(méi)找到彎針

沒(méi)找到彎針

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

這個(gè)不錯(cuò),結(jié)實(shí)

這個(gè)不錯(cuò),結(jié)實(shí)

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

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

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

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

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

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

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

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩在线免费观看视频 | 欧美性另类 | 亚洲精品在线看 | 日韩免费视频一区二区 | 精品视频999| 国产特黄一级 | 亚洲综合色视频在线观看 | 日韩中文字幕区 | 美国一级黄色片 | 天天摸天天干 | 青青久草 | 成年人黄色一级片 | 黄久久久| 成人在线免费 | 国产在线中文 | 伊人一区| 久色视频在线 | 国产高清一二三区 | 色免费看 | 激情a| 亚洲 欧美 综合 | 日日天天 | 欧美男人天堂 | 亚洲精品二区 | 日韩高清一区 | 亚洲欧美精品国产一级在线 | 精品成人av| 美女久久久久久久久 | 久在线精品视频 | 1级黄色大片 | 亚洲成人网在线播放 | 精品国产视频 | 黄色一级毛片免费看 | 中文字幕人成乱码在线观看 | 日本a v在线播放 | 99精品国产一区二区三区 | 欧美一区二区三区视频 | 国产精品永久在线观看 | 日本精品视频在线观看 | 精品久久一区 | 操操网站 |