单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:5397|回复:4
打印上一主题下一主题

电子秤HX711AD模块资料包(V3.0)Arduino与单片机例程

[复制链接]
跳转到指定楼层
楼主
ID:390849发表于 2018-8-28 16:24|显示全部楼层|只看大图回帖奖励
   在使用压力传感器制作电子秤时需要进行模数转换,HX711是专门用于电子秤设计的高精度AD模块



全部资料51hei下载地址:
电子秤HX711AD模块资料包(V3.0).rar(3.12 MB, 下载次数: 94)

单片机源程序如下:
  1. #include "hx711.h"

  2. unsigned long HX711_Buffer = 0;
  3. unsigned int 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.        Serial.print(HX711_Buffer);
  28.        Serial.print("\n");
  29.        if(HX711_Buffer > Weight_Maopi)                
  30.        {
  31.            Weight_Shiwu = HX711_Buffer;
  32.            Weight_Shiwu = Weight_Shiwu - Weight_Maopi;                       //获取实物的AD采样数值。
  33.       
  34.            Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/4.05+0.05);      
  35.                  //计算实物的实际重量
  36.                  //因为不同的传感器特性曲线不一样,因此,每一个传感器需要矫正这里的4.30这个除数。
  37.                  //当发现测试出来的重量偏大时,增加该数值。
  38.                  //如果测试出来的重量偏小时,减小改数值。
  39.                  //该数值一般在4.0-5.0之间。因传感器不同而定。
  40.                  //+0.05是为了四舍五入百分位
  41.        }

  42.        if(Weight_Shiwu > 5000 || HX711_Buffer< Weight_Maopi - 30)
  43.        {
  44.            Serial.print("Error");
  45.        }
  46.        return Weight_Shiwu;
  47. }

  48. //****************************************************
  49. //读取HX711
  50. //****************************************************
  51. unsigned long HX711_Read(void)       //增益128
  52. {
  53.        unsigned long count;
  54.        unsigned char i;
  55.        bool Flag = 0;

  56.        digitalWrite(HX711_DT, HIGH);
  57.        delayMicroseconds(1);

  58.        digitalWrite(HX711_SCK, LOW);
  59.        delayMicroseconds(1);

  60.        count=0;
  61.        while(digitalRead(HX711_DT));
  62.        for(i=0;i<24;i++)
  63.        {
  64.              digitalWrite(HX711_SCK, HIGH);
  65.            delayMicroseconds(1);
  66.              count=count<<1;
  67.            digitalWrite(HX711_SCK, LOW);
  68.            delayMicroseconds(1);
  69.              if(digitalRead(HX711_DT))
  70.                  count++;
  71.        }
  72.        digitalWrite(HX711_SCK, HIGH);
  73.        delayMicroseconds(1);
  74.        digitalWrite(HX711_SCK, LOW);
  75.        delayMicroseconds(1);
  76.        //count ^= 0x800000;
  77.        return(count);
  78. }
复制代码

评分

黑币 +50
收起理由
+ 50
共享资料的黑币奖励!

查看全部评分

手机版|小黑屋|51黑电子论坛|51黑电子论坛6群QQ管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网