关于adrduino HX711库的解析
资料在这里:链接: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库的解析相关推荐
- python分析pcap文件_利用Python库Scapy解析pcap文件的方法
每次写博客都是源于纳闷,python解析pcap这么常用的例子网上竟然没有,全是一堆命令行执行的python,能用吗?玩呢? pip安装scapy,然后解析pcap: import scapy fro ...
- Selenium学习 - 库代码解析
Selenium学习 - 库代码解析 一.selenium/common exceptions.py 定义了一个继承自Exception类的WebDriverException基础异常类,然后通过它扩 ...
- 深入浅出WMS之出库流程解析
深入浅出WMS之出库流程解析 创建出库单 出库单管理 出库单管理-配货 出库单管理-关单 出库任务管理 出库任务管理-撤销 结尾 创建出库单 本来打算周末的时候写出库的流程,没想到今天开了一天会,作为 ...
- 一起学OCP:oracle-082题库及解析(21-40)
历史文章 一起学OCP:oracle-082题库及解析(1-20) 一起学OCP:oracle-082题库及解析(21-40) 一起学OCP:082题库及解析 历史文章 第21题 第22题 第23题 ...
- 2021年高处作业安装拆除维护证考试题库及解析
题库来源:特种作业模考题库小程序 2021年安装拆除维护证考试题库及安装拆除维护试题解析是结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大纲随机出的安装拆除维护在线模拟 ...
- 同花顺python_python的解析库pyquery解析并读取同花顺网站的焦点新闻
代码如下: #本代码介绍requery第三方解析库的使用 #本代码用来读取同花顺网站的焦点新闻标题 #1.导入相应的模块 import requests from pyquery import PyQ ...
- python解析库beautifulsoup_12_Python_解析库_BeautifulSoup的使用
1.安装 pip3 install BeautifulSoup Beautiful Soup支持的解析器 解析器 使用方法 优势 劣势 Python标准库 BeautifulSoup(markup, ...
- C++用库 jsoncpp 解析 JSON
使用C++处理JSON数据交换格式(转自http://hi.baidu.com/%D3%C3%B1%F8%C8%E7%C9%F1garbin/blog/item/85c602edd7f9a7fbcf1 ...
- python读取pdf表格_【Python 库】解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比...
pdf 是个异常坑爹的东西,有很多处理 pdf 的库,但是没有完美的. 一.pdfminer3k pdfminer3k 是 pdfminer 的 python3 版本,主要用于读取 pdf 中的文本. ...
最新文章
- UVa10881 Piotr's Ants
- python json的简单学习
- [渝粤教育] 广东-国家-开放大学 21秋期末考试工程经济10202k2
- Laynews内核仿阿怪资源娱乐网源码
- Android开发实战一之搭建开发环境-附测试实例(已亲测)
- python微信集成_python+微信+腾讯智能闲聊
- JavaScript监听浏览器刷新或是关闭事件
- 快逸报表传递中文参数乱码解决
- 基于北斗高精度定位的运河航道安全导航解决方案
- python视频关键帧提取_视频关键帧提取
- PAT A1154 Vertex Coloring ——多少楼台烟雨中
- 下载B站(bilibili)视频
- 支付宝CTO李静明:打造严谨的互联网研发文化
- 关于多极充磁磁环表面磁场分布的研发历程GM900系列表磁分布测量仪
- JESD204B IP核的配置与使用
- 从0到1爬虫学习笔记:04Scrapy框架
- Ubuntu16.04如何安装google chrome浏览器
- 短视频微信小程序界面
- 如何用Python下载在线字典上的单词或者短语mp3
- 汽车行驶工况构建 2019D题
热门文章
- 如何在Win2000上安装配置防火墙(转)
- 2017第8届中国中西部(昆明)医疗器械展览会会刊(参展商名录)
- 如今市场行情写字楼一落千丈
- Java版打飞机小游戏
- php cs fixer 怎么用,php代码格式化工具 php-cs-fixer的使用
- 为飞机设计一款智能的黑匣子(针对过去飞机失事后飞机黑匣子的致命缺陷,如:马航370飞机失事若干年了,至今未有音信,飞机失事后黑匣子的安全和稳定性)
- 关于解决无法删除WPS留下的qingse64.dll的方案【wps】
- “链”向未来——前景广阔的TD源链
- Layui lay-skin=switch 表格修改状态
- 新入职一个00后卷王,每天加班到12点,太让人崩溃了····