HX711称重传感器

HX711称重传感器
是⼀款专为⾼精度电⼦秤⽽设计的 24 位 A/D 转 换器芯⽚。
· 两路可选择差分输⼊
· ⽚内低噪声可编程放⼤器,可选增益为 32,64 和 128
· ⽚内稳压电路可直接向外部传感器和芯⽚内 A/D 转换器提供电源
· ⽚内时钟振荡器⽆需任何外接器件,必要时 也可使⽤外接晶振或时钟
· 上电⾃动复位电路 · 简单的数字控制和串⼝通讯:所有控制由管 脚输⼊,芯⽚内寄存器⽆需编程 · 可选择 10Hz 或 80Hz 的输出数据速率
· 同步抑制 50Hz 和 60Hz 的电源⼲扰
· 耗电量(含稳压电源电路): 典型⼯作电流:< 1.6mA, 断电电流:< 1 A
· ⼯作电压范围:2.6 ~ 5.5V · ⼯作温度范围:-40 ~ +85℃
· 16 管脚的 SOP-16 封装
杨善林 院士
原理图:
//初始化HX711
long HX711_Buffer = 0;
long Weight_Maopi = 0,Weight_Shiwu = 0;
#define GapValue 430  //不同传感器值不同需要标定
#define HIGH 1
#define LOW  0
#define HX711_GROUP GPIOB
#define HX711_DT  GPIO_Pin_0
#define HX711_SCK GPIO_Pin_1
//****************************************************
//初始化HX711
//****************************************************
void Init_Hx711()
{
GPIO_InitTypeDef  GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);  //SCK
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitTypeDef  GPIO_InitStructure1;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
//DOUT
GPIO_InitStructure1.GPIO_Pin = GPIO_Pin_1 ;
GPIO_InitStructure1.GPIO_Mode = GPIO_Mode_IN;
//GPIO_InitStructure1.GPIO_OType = GPIO_OType_OD;
GPIO_InitStructure1.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure1.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOB, &GPIO_InitStructure1);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); }
读取重量
//****************************************************
//读取HX711
//****************************************************
unsigned long HX711_Read(void) //增益128
{
unsigned long val = 0;
unsigned char i = 0;
/
2013年度感动中国十大人物/判断模块是否准备好
while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1));
delay_us(1);
//sck 拉低
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
影立驰
//再次判断是否准备好
while(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1));
for(i=0;i<24;i++)
{
delay_us(100);
GPIO_SetBits(GPIOB,GPIO_Pin_0);
val=val<<1;
delay_us(1);
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1))
val++;
delay_us(1);
}
GPIO_SetBits(GPIOB,GPIO_Pin_0);
val = val^0x800000;
delay_us(1);
手机乐讯网GPIO_ResetBits(GPIOB,GPIO_Pin_0);
delay_us(1);
return val;
}
获取⽑重需要放置在初始化⾥⾯,或者放置在按键中断⾥⾯ 进⾏去⽪。
//****************************************************
//获取⽑⽪重量
//****************************************************
void Get_Maopi()
{
Weight_Maopi = HX711_Read();azo
}
/
/****************************************************
//称重
//****************************************************
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);
return Weight_Shiwu;
}

本文发布于:2024-09-22 05:35:09,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/651311.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:电路   获取   范围   需要   放置   传感器   电流   是否
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议