找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4761|回復: 0
打印 上一主題 下一主題
收起左側

HX711的arduino源程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:248329 發(fā)表于 2017-11-11 13:38 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

所有資料51hei提供下載:
HX711.zip (1.22 KB, 下載次數(shù): 25)

arduino源程序如下:
  1. #include "hx711.h"

  2. long HX711_Buffer = 0;
  3. long Weight_Maopi = 0,Weight_Shiwu = 0;

  4. //****************************************************
  5. //初始化HX711
  6. //****************************************************
  7. void Init_Hx711()
  8. {
  9.         pinMode(HX711_SCK, OUTPUT);       
  10.         pinMode(HX711_DT, INPUT);
  11. }


  12. //****************************************************
  13. //獲取毛皮重量
  14. //****************************************************
  15. void Get_Maopi()
  16. {
  17.         HX711_Buffer = HX711_Read();
  18.         Weight_Maopi = HX711_Buffer/100;               
  19. }

  20. //****************************************************
  21. //稱重
  22. //****************************************************
  23. unsigned int Get_Weight()
  24. {
  25.         HX711_Buffer = HX711_Read();
  26.         HX711_Buffer = HX711_Buffer/100;

  27.         Weight_Shiwu = HX711_Buffer;
  28.         Weight_Shiwu = Weight_Shiwu - Weight_Maopi;                                //獲取實物的AD采樣數(shù)值。
  29.        
  30.         Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/7.35+0.05);        
  31.                 //計算實物的實際重量
  32.                 //因為不同的傳感器特性曲線不一樣,因此,每一個傳感器需要矯正這里的4.30這個除數(shù)。
  33.                 //當發(fā)現(xiàn)測試出來的重量偏大時,增加該數(shù)值。
  34.                 //如果測試出來的重量偏小時,減小改數(shù)值。
  35.                 //該數(shù)值一般在7.16左右。因傳感器不同而定。
  36.                 //+0.05是為了四舍五入百分位

  37.         return Weight_Shiwu;
  38. }

  39. //****************************************************
  40. //讀取HX711
  41. //****************************************************
  42. unsigned long HX711_Read(void)        //增益128
  43. {
  44.         unsigned long count;
  45.         unsigned char i;
  46.         bool Flag = 0;

  47.         digitalWrite(HX711_DT, HIGH);
  48.         delayMicroseconds(1);

  49.         digitalWrite(HX711_SCK, LOW);
  50.         delayMicroseconds(1);

  51.           count=0;
  52.           while(digitalRead(HX711_DT));
  53.           for(i=0;i<24;i++)
  54.         {
  55.                   digitalWrite(HX711_SCK, HIGH);
  56.                 delayMicroseconds(1);
  57.                   count=count<<1;
  58.                 digitalWrite(HX711_SCK, LOW);
  59.                 delayMicroseconds(1);
  60.                   if(digitalRead(HX711_DT))
  61. ……………………

  62. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼




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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表