找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 26258|回复: 14
打印 上一主题 下一主题
收起左侧

hx711压力传感器的单片机源码与详细资料

  [复制链接]
跳转到指定楼层
楼主
压力传感器资料
本传感器所附带的hx711程序,仅供参考。
纯属赠送,不提供指导!


用途与特点:适合学生实验,DIY电子设计,广泛用于小型电子计价秤、计重秤等。

传感器量程:10kg,20kg,40kg可选择,其外观、尺寸、参数都一样,只是量程不一样。

参考接线方法:
红线(传感器电源输入)  接E+
白线(传感器电源地)  接E-
绿线(差分信号输出-)  接A-
黑线(差分信号输出+)  接A+
特别注意:传感器属于精密部件,剧烈振动、自由落体、碰撞、过载、过压等等,都非常容易造成传感器永久损坏或者影响精度和线性,您如果对该部件没有一定的了解,请慎重购买。毕竟该部件比起电阻 电容 三极管等其它电子部件要脆弱的多。

参数说明:   
参数表中,灵敏度:2.0mv/v 的含义是:假如供电电压是5.0v,当传感器满量程的时候,绿色、黑色线之间有2.0mv/v * 5.0v=10mv的差分电压输出。例如:传感器的量程是10kg,供电电压是5v,那么这个传感器在受力10kg的时候,绿色、黑色之间输出有2.0mv/v * 5.0v=10mv的压差。

工作原理:
电阻应变式压力传感器主要由弹性体、电阻应变片电缆线等组成,内部线路采用惠更斯电桥,当弹性体承受载荷产生变形时,电阻应变片(转换元件)受到拉伸或压缩应变片变形后,它的阻值将发生变化(增大或减小),从而使电桥失去平衡,产生相应的差动信号,供后续电路测量和处理。
当垂直正压力P作用于梁上时,梁产生形变,电阻应变片R1、R3受压弯拉伸,阻值增加。R2、R4受压缩,阻值减小。电桥失去平衡,产生不平衡电压U,电压U与作用在传感器上的正压力P成正比,从而将非电量转化为电量输出。

示意图如下:



hx711压力传感器的电路原理图:



单片机源程序如下:
  1. /**************************************************************
  2.                                                          
  3. 实现功能:电子称称重测试程序
  4. **************************************************************/

  5. #include <reg52.h>
  6. #include <intrins.h>
  7. #include <string.h>
  8. #include "lcd.h"
  9. #include "hx711.h"


  10. //定义量程系数
  11. #define RATIO     1349/1000     //1574/1000  //2114/1623



  12. //定义标识
  13. volatile bit FlagTest = 0;                //定时测试标志,每0.25秒置位,测完清0

  14. //管脚定义
  15. sbit LedA = P2^2;
  16. sbit beep = P1^0;
  17. sbit alert = P1^1;


  18. //显示用变量
  19. int Counter;
  20. uchar idata str1[6] = "000000";
  21. int i, iTemp;
  22. //称重用变量
  23. unsigned long idata FullScale; //满量程AD值/1000
  24. unsigned long AdVal;     //AD采样值
  25. unsigned long weight;    //重量值,单位g

  26. uchar DotPos;                                   //小数点标志及位置

  27. int bak_num=1;
  28. char code tb3[]="重量:         kg";



  29. //整型转字符串的函数,转换范围0--65536
  30. void int2str(int x, char* str)
  31. {
  32.     int i=1;
  33.     int tmp=10;
  34.     while(x/tmp!=0)
  35.     {
  36.         i++;
  37.         tmp*=10;
  38.     }
  39.     tmp=x;
  40.     str[i]='\0';
  41.     while(i>1)
  42.     {
  43.         str[--i]='0'+(tmp%10);
  44.         tmp/=10;
  45.     }
  46.     str[0]=tmp+'0';
  47. }

  48. //重新找回零点,每次测量前调用
  49. void To_Zero()
  50. {
  51.    FullScale=ReadCount()/1000;
  52. }


  53. //显示重量,单位kg,两位整数,三位小数
  54. void Display_Weight()
  55. {
  56.    unsigned int i,j;
  57.    
  58.    display_GB2312_string(3,60,"      ");
  59.    //weight单位是g
  60.    i = weight/1000;    //得到整数部分
  61.    j = weight - i*1000;//得到小数部分
  62.    int2str(i,str1);
  63.    if (i>=10)
  64.    {
  65.       display_GB2312_string(3,60,str1);
  66.    }
  67.    else
  68.    {
  69.       display_GB2312_string(3,68,str1);
  70.    }
  71.    display_GB2312_string(3,76,".");   
  72.    int2str(j,str1);
  73.    if (j<10)
  74.    {
  75.       display_GB2312_string(3,84,"00");
  76.           display_GB2312_string(3,100,str1);
  77.    }
  78.    else if (j<100)
  79.    {
  80.       display_GB2312_string(3,84,"0");
  81.           display_GB2312_string(3,92,str1);

  82.    }
  83.    else
  84.    {
  85.       display_GB2312_string(3,84,str1);
  86.    }
  87. }


  88. //数据初始化
  89. void Data_Init()
  90. {

  91.    DotPos = 0;
  92.    beep = 1;
  93.    alert = 1;
  94. }



  95. //定时器0初始化
  96. void Timer0_Init()
  97. {
  98.         ET0 = 1;        //允许定时器0中断
  99.         TMOD = 1;       //定时器工作方式选择
  100.         TL0 = 0x06;     
  101.         TH0 = 0xf8;     //定时器赋予初值
  102.         TR0 = 1;        //启动定时器
  103. }

  104. //定时器0中断
  105. void Timer0_ISR (void) interrupt 1 using 0
  106. {
  107.         TL0 = 0x06;
  108.         TH0 = 0xf8;     //定时器赋予初值


  109.         //每0.25秒钟刷新重量
  110.     Counter ++;
  111.     if (Counter >=100)
  112.     {
  113.        FlagTest = 1;
  114.            Counter = 0;
  115.     }
  116. }





  117. //===============main program===================//
  118. void main(void)
  119. {
  120.    Rom_CS=1;
  121.    initial_lcd();
  122.    EA = 0;
  123.    Data_Init();
  124.    
  125.    Timer0_Init();
  126.    //初始化完成,开中断
  127.    EA = 1;
  128.    //背光
  129.    LedA = 1;
  130.    clear_screen();    //clear all dots
  131.    To_Zero();
  132.    To_Zero();
  133.    display_GB2312_string(3,1,tb3);



  134.    while(1)
  135.    {
  136.       //每0.5秒称重一次
  137.          
  138.              //称重,得到重量值weight,单位为g
  139.                  AdVal=ReadCount();
  140.                  weight=FullScale-AdVal/1000;
  141.                  if (weight>0x8000) weight=0;
  142.                  weight=15000*weight/FullScale;//校准值
  143.                  weight=weight*RATIO;
  144.                  Display_Weight();
  145.                  //如果超量程,则报警
  146.                  if (weight >= 10000)
  147.                  {
  148.                     beep = 0;
  149.                         alert = 0;
  150.                  }
  151.                  //如果不超量程
  152.                  else
  153.                  {
  154.                     beep = 1;
  155.                         alert = 1;
  156.                         //显示重量值
  157.                 Display_Weight();                 
  158.                     FlagTest = 0;
  159.              }
  160.                 delay(80);// 重量的亮度
  161.          
  162.    }
  163. }


复制代码


所有资料51hei提供下载:
压力传感器资料.zip (413.81 KB, 下载次数: 427)


评分

参与人数 2黑币 +62 收起 理由
YJGG + 12 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 分享淘帖 顶3 踩
回复

使用道具 举报

沙发
ID:440348 发表于 2019-1-1 15:52 | 只看该作者
刚好在学习HX711,谢谢楼主
回复

使用道具 举报

板凳
ID:508932 发表于 2019-4-10 17:11 | 只看该作者
谢谢楼主
回复

使用道具 举报

地板
ID:245466 发表于 2019-4-10 20:22 | 只看该作者
学习了!!!
回复

使用道具 举报

5#
ID:266070 发表于 2019-4-14 18:48 | 只看该作者
附件里面有仿真图吗?
回复

使用道具 举报

6#
ID:427362 发表于 2019-5-1 23:34 | 只看该作者
多谢.........
回复

使用道具 举报

7#
ID:529880 发表于 2019-5-8 02:44 | 只看该作者
超级感谢老哥分享啊,顺便鄙视一下某宝奸商
回复

使用道具 举报

8#
ID:538050 发表于 2019-5-17 15:19 | 只看该作者
非常感谢
回复

使用道具 举报

9#
ID:580472 发表于 2019-7-9 09:48 | 只看该作者
赞一个
回复

使用道具 举报

10#
ID:421308 发表于 2019-7-15 10:28 | 只看该作者
有没有stm32的呀
回复

使用道具 举报

11#
ID:593102 发表于 2019-8-5 09:59 | 只看该作者
刚好在学习HX711,谢谢楼主
回复

使用道具 举报

12#
ID:628333 发表于 2019-10-24 16:29 | 只看该作者
不显示啊
回复

使用道具 举报

13#
ID:713263 发表于 2020-3-22 10:49 | 只看该作者
刚好在学习HX711,谢谢楼主
回复

使用道具 举报

14#
ID:718526 发表于 2020-3-30 02:24 | 只看该作者
感谢楼主热心分享
回复

使用道具 举报

15#
ID:680646 发表于 2020-4-2 00:50 | 只看该作者
很好,充分体现HX711的功能
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

快速回复 返回顶部 返回列表