资料在这里:链接:https://pan.baidu.com/s/1a3lbToJZKTeBq6lbU9SRCg
提取码:1234

实验室一个hx711称重模块,搞了一下,不稳定,所以解析一下代码:

#ifndef __HX711__H__
#define __HX711__H__
#include <Arduino.h>
#define HX711_SCK 2       //设置2号引脚发送时钟信号
#define HX711_DT 3        //设置3号引脚接收数据信号
extern void Init_Hx711();             //初始化
extern unsigned long HX711_Read(void);   //读取增益128
extern long Get_Weight();               //获取重量
extern void Get_Maopi();                //获取毛皮
#endif

初始化函数
Init_Hx711():

void Init_Hx711()
{pinMode(HX711_SCK, OUTPUT);    pinMode(HX711_DT, INPUT);
}
/*
初始化Hx711模块 ,设置引脚SCK和DT 输出输入  类似IIC 用引脚模拟iic
*/

读取增益函数unsigned long HX711_Read(void)

unsigned long HX711_Read(void)   //增益128
{unsigned long count;     //储存变量unsigned char i;         //接收位数bool Flag = 0;           //没啥用digitalWrite(HX711_DT, HIGH);delayMicroseconds(1);
//高一微秒digitalWrite(HX711_SCK, LOW);delayMicroseconds(1);
//低一微秒count=0;            //清除储存变量while(digitalRead(HX711_DT));  //等待数据引脚DT响应高电平for(i=0;i<24;i++) //循环读取24位数据  hx711芯片是24位ADC储存芯片{ digitalWrite(HX711_SCK, HIGH); delayMicroseconds(1);count=count<<1; digitalWrite(HX711_SCK, LOW); delayMicroseconds(1);if(digitalRead(HX711_DT))count++; //发送时钟信号 并且移位 如果读取电平为高,当前的count的位数为1,否则默认为0} digitalWrite(HX711_SCK, HIGH); count ^= 0x800000;   /*^是异或,位运算的一种,相同为0不同为1 a=3,二进制表示是00000011 b=4,二进制表示是00000100 a=a^b,a的值为:00000111 b=b^a,b的值为:00000011,即是a的初值3 a=a^b,a的值为:00000100,即是b的初值4 实现交换  这里相当于是count ^= 0x800000  =  count=count^0x800000,如果count=FFFFFF,拆散开来为二进制的1111 1111 1111 1111 1111 11110x800000=1000 0000 0000 0000 0000 0000count=count^0x800000=1111 1111 1111 1111 1111 1111^1000 0000 0000 0000 0000 0000=1000 0000 0000 0000 0000 0000;*/delayMicroseconds(1);digitalWrite(HX711_SCK, LOW); delayMicroseconds(1);//质低时钟,等待下次发送return(count); //返回count的值
}

获取毛皮(重量初始化) void Get_Maopi()

void Get_Maopi()
{Weight_Maopi = HX711_Read(); //赋值hx711获取的值count给maopi
}
/*
可以理解为获取没有东西时候的重量  重量初始化
*/

获取重量:long Get_Weight()

long Get_Weight()
{HX711_Buffer = HX711_Read();Weight_Shiwu = HX711_Buffer;Weight_Shiwu = Weight_Shiwu - Weight_Maopi;             //获取实物的AD采样数值。  用现在的重量-之前初始化的重量Weight_Shiwu = (long)((float)Weight_Shiwu/GapValue); //实物的重量=数值/GapValuereturn Weight_Shiwu; //返回实物的重量
}

GapValue取多少,具体看说明书,在函数里是这样子定义的:

#define GapValue 430

手册又是这样子定义的:

arduino代码实现:

/** #define HX711_SCK 2
#define HX711_DT 3
有误  需要校准
*/#include "HX711.h"
float Weight = 0;void setup()
{Init_Hx711();              //初始化HX711模块连接的IO设置Serial.begin(9600);Serial.print("Welcome to use!\n");delay(3000);Get_Maopi();      //获取毛皮
}void loop()
{Weight = Get_Weight();    //计算放在传感器上的重物重量Serial.print(float(Weight/1000),3);  //(g)缩小一千倍(kg) 串口显示重量  3位浮点数Serial.print(" kg\n");    //显示单位Serial.print("\n");     //显示单位delay(1000);              //延时1s}

关于adrduino HX711库的解析相关推荐

  1. python分析pcap文件_利用Python库Scapy解析pcap文件的方法

    每次写博客都是源于纳闷,python解析pcap这么常用的例子网上竟然没有,全是一堆命令行执行的python,能用吗?玩呢? pip安装scapy,然后解析pcap: import scapy fro ...

  2. Selenium学习 - 库代码解析

    Selenium学习 - 库代码解析 一.selenium/common exceptions.py 定义了一个继承自Exception类的WebDriverException基础异常类,然后通过它扩 ...

  3. 深入浅出WMS之出库流程解析

    深入浅出WMS之出库流程解析 创建出库单 出库单管理 出库单管理-配货 出库单管理-关单 出库任务管理 出库任务管理-撤销 结尾 创建出库单 本来打算周末的时候写出库的流程,没想到今天开了一天会,作为 ...

  4. 一起学OCP:oracle-082题库及解析(21-40)

    历史文章 一起学OCP:oracle-082题库及解析(1-20) 一起学OCP:oracle-082题库及解析(21-40) 一起学OCP:082题库及解析 历史文章 第21题 第22题 第23题 ...

  5. 2021年高处作业安装拆除维护证考试题库及解析

    题库来源:特种作业模考题库小程序 2021年安装拆除维护证考试题库及安装拆除维护试题解析是结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大纲随机出的安装拆除维护在线模拟 ...

  6. 同花顺python_python的解析库pyquery解析并读取同花顺网站的焦点新闻

    代码如下: #本代码介绍requery第三方解析库的使用 #本代码用来读取同花顺网站的焦点新闻标题 #1.导入相应的模块 import requests from pyquery import PyQ ...

  7. python解析库beautifulsoup_12_Python_解析库_BeautifulSoup的使用

    1.安装 pip3 install BeautifulSoup Beautiful Soup支持的解析器 解析器 使用方法 优势 劣势 Python标准库 BeautifulSoup(markup, ...

  8. C++用库 jsoncpp 解析 JSON

    使用C++处理JSON数据交换格式(转自http://hi.baidu.com/%D3%C3%B1%F8%C8%E7%C9%F1garbin/blog/item/85c602edd7f9a7fbcf1 ...

  9. python读取pdf表格_【Python 库】解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比...

    pdf 是个异常坑爹的东西,有很多处理 pdf 的库,但是没有完美的. 一.pdfminer3k pdfminer3k 是 pdfminer 的 python3 版本,主要用于读取 pdf 中的文本. ...

最新文章

  1. UVa10881 Piotr's Ants
  2. python json的简单学习
  3. [渝粤教育] 广东-国家-开放大学 21秋期末考试工程经济10202k2
  4. Laynews内核仿阿怪资源娱乐网源码
  5. Android开发实战一之搭建开发环境-附测试实例(已亲测)
  6. python微信集成_python+微信+腾讯智能闲聊
  7. JavaScript监听浏览器刷新或是关闭事件
  8. 快逸报表传递中文参数乱码解决
  9. 基于北斗高精度定位的运河航道安全导航解决方案
  10. python视频关键帧提取_视频关键帧提取
  11. PAT A1154 Vertex Coloring ——多少楼台烟雨中
  12. 下载B站(bilibili)视频
  13. 支付宝CTO李静明:打造严谨的互联网研发文化
  14. 关于多极充磁磁环表面磁场分布的研发历程GM900系列表磁分布测量仪
  15. JESD204B IP核的配置与使用
  16. 从0到1爬虫学习笔记:04Scrapy框架
  17. Ubuntu16.04如何安装google chrome浏览器
  18. 短视频微信小程序界面
  19. 如何用Python下载在线字典上的单词或者短语mp3
  20. 汽车行驶工况构建 2019D题

热门文章

  1. 如何在Win2000上安装配置防火墙(转)
  2. 2017第8届中国中西部(昆明)医疗器械展览会会刊(参展商名录)
  3. 如今市场行情写字楼一落千丈
  4. Java版打飞机小游戏
  5. php cs fixer 怎么用,php代码格式化工具 php-cs-fixer的使用
  6. 为飞机设计一款智能的黑匣子(针对过去飞机失事后飞机黑匣子的致命缺陷,如:马航370飞机失事若干年了,至今未有音信,飞机失事后黑匣子的安全和稳定性)
  7. 关于解决无法删除WPS留下的qingse64.dll的方案【wps】
  8. “链”向未来——前景广阔的TD源链
  9. Layui lay-skin=switch 表格修改状态
  10. 新入职一个00后卷王,每天加班到12点,太让人崩溃了····