压力传感器 HX711 程序
- 格式:docx
- 大小:15.35 KB
- 文档页数:4
HX711电子秤称重模块配送资料(加中值滤波的单片机源码)
电子秤注意
1.程序中采用P16、P17口作为HX711的数据口。
2.每个传感器的系数不一样,第一次测量必须修正传感器的系数。(修正系数HX711_xishu)
修正方法:
例如1000g砝码称出来是934g,则HX711_xishu=(原值)*1000/934;
电路原理图如下:
电子称 LCD1602(加中值滤波)单片机源程序如下:
#include //调用单片机头文件
#include
#define uchar unsigned char //无符号字符型宏定义变量范围0~255
#define uint unsigned int //无符号整型宏定义变量范围0~65535
#define ulong unsigned long
sbit rs=P0^5 //寄存器选择信号 H:数据寄存器 L:指令寄存器
sbit rw=P0^6; //寄存器选择信号 H:数据寄存器 L:指令寄存器
sbit e =P0^7; //片选信号下降沿触发
sbit hx711_dout=P1^7;
sbit hx711_sck =P1^6;
sbit beep = P3^0; //蜂鸣器
sbit K1 = P3^5; //加
sbit K2 = P3^6; //长按去皮键
sbit K3 = P3^7; //减
uchar K2_num;
uint time1;
uint time2;
uint time3;
long weight; //实际重量值
long qi_weight; //皮重
称重专用芯片HX711
HX711是一款专为高精度电子秤设计的24位AD转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需的外围电路,具有集成度高、响应速度快、
抗干扰性强等优点。
硬件电路设计
图2 所示为系统硬件电路设计框图,系统设计成两块电路板,IO 板和MCU板。MCU板上集成有HX711称重专用24位Σ-ΔDA转换芯片,RS232或RS485通信,16位7段LCD显示,IO板上集成有7路继电器IO输出,5路光电隔离IO输入,一路模拟量输出,2路模拟量输入,1路PWM光电隔离输出,5键键盘输入。
HX711外围电路以及电压基准电路设计,采用TL431芯片,通过电阻设定成5V输出,同时作为传感器电桥激励和HX711的参考电压,这样可以有效抵消温漂造成的系统误差(如图3所示)。
软件设计
控制器软件设计
HX711芯片的串口通讯线由管脚PD_SCK 和DOUT 组成,用来输出数据,选择输入通道和增益。当数据输出管脚DOUT 为高电平时,表明AD 转换器还未准备好输出数据,此时串口时钟输入信号PD_SCK 应为低电平。当DOUT 从高电平变低电平后,PD_SCK 应输入25至27个不等的时钟脉冲(如图4)。其中第一个时钟脉冲的上升沿将读出输出24 位数据的最高位(MSB),直至第24 个时钟脉冲完成,24位输出数据从最高位至最低位逐位输出完成。第25至27个时钟脉冲用来选择下一次AD转换的输入通道和增
益,见表1。
PD_SCK 的输入时钟脉冲数不应少于25和多于27,否则会造成串口通讯错误。当AD 转换器的输入通道或增益改变时,AD转换器需要4个数据输出周期才能稳定。DOUT 在4 个数据输出周期后才会从高电平变低电平,输出有效数据。
hx711转换公式
HX711转换公式是一种常见的模拟数字转换(ADC)电路,用于测量物理量并将其转化为数字信号。本文将介绍HX711转换公式的原理和应用。
一、HX711转换公式的原理
HX711是一种高精度、低功耗的模拟数字转换芯片,常用于称重传感器和压力传感器等测量设备中。它采用差分式输入,通过调整增益和偏移量,将模拟信号转换为数字信号。
HX711转换公式的原理可以简单描述为:输入电压经过放大和采样后,通过内部的数模转换器(ADC)转化为数字信号。转换公式可以表示为:
Digital Output = (Analog Input - Offset) / Scale
其中,Analog Input是传感器输入的模拟信号,Offset是偏移量,Scale是比例因子。通过调整偏移量和比例因子,可以实现对输入信号的校准和量程调节。
二、HX711转换公式的应用
1. 称重传感器:HX711转换公式常用于称重传感器中,通过测量传感器的变形或压力,将物体的重量转换为数字信号。在工业生产、商业交易和家庭使用中都有广泛应用。
2. 压力传感器:HX711转换公式也可以应用于压力传感器中,测量压力大小并转换为数字信号。压力传感器广泛应用于工业控制、环境监测和医疗设备等领域。
3. 温度传感器:HX711转换公式还可以用于温度传感器中,将温度变化转换为数字信号。温度传感器在气象观测、环境监测和工业自动化等领域有重要的应用。
通过HX711转换公式,可以实现传感器信号的精确测量和数字化处理,提高测量的准确性和稳定性。
/*******************************************************本文件中,是操作称重传感器专用AD芯片 HX711 的程序。********************************************************/#include "stm32f10x.h"#include "ad_hx711.h"#include "delay.h"#include "transform.h"#define ADIO GPIOA //定义AD芯片使用的I/O端口组。 #define DATA GPIO_Pin_11 //定义AD芯片的数据线使用的引脚。#define CLK GPIO_Pin_8 //定义AD芯片的时钟线使用的引脚。#define ADCLK RCC_APB2Periph_GPIOA //定义AD芯片所使用的I/O端口的时钟。#define N 12 //定义滤波时,存放采样值的队列的长度。使用循环队列。unsigned long BUF[N]; //定义作为队列的全局数组。long double SUM; //定义存放采样值之和的全局变量。int i=0; //定义指向队列当前位置的数组下标变量。void ADInit(void) //初始化AD芯片使用的I/O端口。{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(ADCLK,ENABLE);GPIO_InitStructure.GPIO_Pin = CLK;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //CLK引脚定义为输出。GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(ADIO,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = DATA;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//DATA引脚定义为输入。GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(ADIO,&GPIO_InitStructure); }unsigned long ReadAD(void) //读AD芯片输出的数据。{unsigned long val = 0;unsigned char i = 0;GPIO_SetBits(ADIO,DATA);GPIO_ResetBits(ADIO,CLK);while(GPIO_ReadInputDataBit(ADIO,DATA));delay_us(1);for(i=0;i<24;i++){GPIO_SetBits(ADIO,CLK);val=val<<1;delay_us(1); GPIO_ResetBits(ADIO,CLK);if(GPIO_ReadInputDataBit(ADIO,DATA))val++;delay_us(1);}GPIO_SetBits(ADIO,CLK);val = val^0x800000;delay_us(1);GPIO_ResetBits(ADIO,CLK);delay_us(1); return val; }/*函数UsartDebugAD(), 用于,串口与电脑通信,在串口调试助手中显示AD模块返回的数据,以调试AD模块。无滤波算法。*/void UsartDebugAD(void) {unsigned long ad;u8 str[26];int i=0,j=0,k=0; delay_init(72);UsartConf(9600);ADInit();while(1){ad = ReadAD();IntToStr(ad,str);for(i=0;str[i]!='\0';i++); //计算数字是几位数。if(i == 7) //如果只有7位数,前面用一个空格补齐8位。USendStr(" ");USendStr(str);USendStr(" ");j++; //j实现输出数字个数的计数,每输出6个数字,换2行。if(j == 6) {j = 0;USendStr("\n");USendStr("\n");}k++;if(k == 100) break; //输出100个数据后,结束调试。delay_ms(500);} } /*函数UsartDebugAD_F(), 用于,串口与电脑通信,在串口调试助手中显示AD模块返回的数据,以调试AD模块。有滤波算法。*/void UsartDe
hx711读取数据方法
HX711是一种高精度模数转换器(ADC),常用于电子秤和压力传感器等应用中。要想成功读取HX711的数据,可以按照以下方法进行操作:
1. 硬件接线:
首先,将HX711的VCC引脚连接到供电电源,GND引脚连接到地线,DT 引脚连接到你的单片机的数据输入引脚,SCK引脚连接到单片机的时钟引脚。
2. 初始化:
在代码中,首先需要初始化HX711。这可以通过发送一定次数的时钟脉冲给HX711来实现。具体次数可以根据HX711芯片的规格手册来确定。初始化时,需要保证DT引脚为高电平。
3. 读取数据:
读取HX711的数据也是通过传输时钟脉冲实现的。在读取数据之前,需要根据HX711的规格手册来确定使用的增益值。发送时钟脉冲的次数为24次,通过DT引脚的状态变化来读取数据。
4. 数据处理:
HX711读取到的数据是二进制补码形式的,需要进行适当的处理才能得到实际测量值。可以根据HX711的规格手册中给出的公式来进行处理。
需要注意的是,使用HX711的时候要遵循其规格手册中的操作要求,包括时序要求、电源电压要求等。此外,为了提高精度和稳定性,可以在读取数据时进行多次采样和滤波处理。
综上所述,按照以上步骤进行硬件接线和代码编写,可以成功读取HX711的数据。通过适当地处理数据,可以得到准确的测量结果。
hx711传感器工作原理
HX711传感器是一种重量测量模块,常用于称重、压力传感器和力传感器等领域。其工作原理基于压阻效应和示值放大器的原理。具体步骤如下:
将被测物体放置在称重传感器上,压缩应变片,使电阻值发生变化。
传感器输出微弱信号,通过微处理器或单片机读取。
读取的数据信号需要经过放大器进行放大,使得其变得更加稳定和准确。
放大后的信号被转换为数字信号,并通过串行通信接口传输给控制器,进行数据处理和显示。HX711传感器内部集成了放大器和模数转换器,可以直接将模拟电压信号转换为数字信号输出,精度高、稳定性好、噪声低,因此在重量测量领域得到广泛应用。
标准文案
大全
Digital
Interface
Analog Supply Regulator
Input
MUX
Internal
Oscillator
Bandgap Reference
HX711电子秤专用模拟/数字(A/D)转换器芯片
简介
HX711 采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的 24 位 A/D 转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。
该芯片与后端MCU 芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片部的寄存器编程。输入选择开关可任意选取通道A 或通道B,与其部的低噪声可编程放大器相连。通道 A 的可编程增益为 128 或 64,对应的满额度差分输入信号幅值分别为±20mV 或±40mV。通道 B 则为固定的 32 增益,用于系统参数检测。芯片提供的稳压电源可以直接向外部传感器和芯片的A/D 转换器提供电源,系统板上无需另外的模拟电源。芯片的时钟振荡器不需要任何外接器件。上电自动复位功能简化了开机的初始化过程。特点
•两路可选择差分输入
•片低噪声可编程放大器,可选增益为
32,64 和128
•片稳压电路可直接向外部传感器和芯片A/D 转换器提供电源
•片时钟振荡器无需任何外接器件,必要时也可使用外接晶振或时钟
•上电自动复位电路
•简单的数字控制和串口通讯:所有控制由管脚输入,芯片寄存器无需编程
目录
引言................................................................ - 1 -第一章系统地组成及工作原理....................................... - 2 -1.1 系统地组成.................................................... - 2 - 1.2系统地工作原理................................................ - 3 -第二章系统硬件设计............................................... - 4 -2.1主控芯片STC89C52单片机基本系统................................. - 4 -
2.1.1 STC89C52单片机性能介绍................................... - 4 -
2.1.2 STC89C52单片机引脚功能................................... - 4 -
2.1.3 复位电路 ................................................. - 5 -
2.1.4 晶振电路 ................................................. - 6 -2.2 A/D转换芯片HX711接口电路地设计................................ - 6 -
单片机电子秤设计报告
秤是一种在实际工作和生活中经常用到的测量器具。随着计量技术和电子技术的发展,传统纯机械结构的杆秤、台秤、磅秤等称量装置逐步被淘汰,电子称量装置电子秤、电子天平等以其准确、快速、方便、显示直观等诸多优点而受到人们的青睐。
和传统秤相比较,电子秤利用新型传感器、高精度AD转换器件、单片机设计实现,具有精度高、功能强等特点。本课题设计的电子秤具有基本称重、键盘输入、计算价格、显示、超重报警功能。该电子秤的测量范围为0-10Kg,测量精度达到5g,有高精度,低成本,易携带的特点。电子秤采用液晶显示汉字和测量记过,比传统秤具有更高的准确性和直观性。另外,该电子秤电路简单,使用寿命长,应用范围广,可以应用于商场、超市、家庭等场所,成为人们日常生活中不可少的必需品。
一、功能描述
1、采用高精度电阻应变式压力传感器,测量量程0-10kg,测量精度可达5g。
2、采用电子秤专用模拟/数字(A/D)转换器芯片hx711对传感器信号进行调理转换,HX711 采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的24 位A/D 转换器芯片。
3、采用STC89C52单片机作为主控芯片,实现称重、计算价格等主控功能。
4、采用128*64汉字液晶屏显示称重重量、单价、总价等信息。
5、采用4*4矩阵键盘进行人机交互,键盘容量大,操作便捷。
6、具有超量程报警功能,可以通过蜂鸣器和LED灯报警。
7、系统通过USB电源供电,单片机程序也可通过USB线串行下载。
二、硬件设计
1、硬件方案
单片机电子秤硬件方案如图1所示:
《传感器原理及应用》基于压力传感器的电子秤
设计实验报告
1.实验功能要求
压力传感器把压力信号转换为电信号,经放大器处理,通过HX711在数码管显示压力数据在数码管。
2.实验所用传感器原理
原理:
上下表面各有一个应变片,每个应变片内有两个压力电阻,四个电阻组成全桥式电路(提高测量精度)。
将应变片粘贴到受力的力敏型弹性元件上,当弹性元件受力产生变形时,应变片产生相应的应变,转化成电阻变化。如右图所示电桥电路,力引起的电阻变化将转换为测量电路的电压变化,通过测量输出电压的数值,再通过换算即可得到所测量物体的重量。
3.实验电路
4.实验过程
将电子秤大致能划分为三大部分,数据采集模块、控制器模块和人机交互界面模块。其中数据采集模块由压力传感器、信号的前级处理和A/D 转换部分组成。转换后的数字信号送给控制器处理,由控制器完成对该数字量的处理,驱动显示模块完成人机间的信息交换。此外添加了一个过载、欠量报警提示的特殊功能。
5.
6.如图2-1(上图为本系统的设计图)
为了方便程序调试和提高可靠性,程序设计采用自上而下、模块化、结构化的程序设计方法,把总的编程过程逐步细分,分解成一个个功能模块,每个功能模块相互独立,每个模块都能完成一个明确的任务,实现某
个具体的功能。本设计按任务模块划分的程序主要有初始化程序、主程序,A/D转换子程序、显示子程序、键盘处理子程序。
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit lcdrs=P2^4;
sbit lcden=P2^6;
sbit lcdrw=P2^5;
sbit ADDO = P2^0;
sbit ADSK = P2^1;
uchar code table[] = { 0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x8 0,0x90,};
void delay_ms(uint z)
{
uint x; uchar y; for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
unsigned long get_ADValue(void)
{
uchar i;
unsigned long value=0;
ADDO=1;//51 CPU I/O input enable
ADSK=0;//enable AD
while (ADDO);
_nop_();//delay T1>0.1us
for (i=0;i<24;i++)
{
ADSK=1;
_nop_();//delay T3>0.2us
if (ADDO)
value++;
value=value<<1; ADSK=0;
_nop_();//delay T4>0.2us
}
ADSK=1;
_nop_();//delay T3>0.2us
hx711传感器工作原理
hx711传感器是一种高精度的AD转换芯片,可用于称重传感器、压力传感器等多种应用场景。它的工作原理是:将待测信号经过放大之后,再进行AD转换输出数字信号。具体来说,hx711利用串联的前置放大器和差分放大器,将待测信号放大到合适的范围内,然后通过高精度的Δ-Σ调制器进行AD转换,最终将结果输出为数字信号。hx711传感器采用双路数据接口,能够与多种微控制器进行通信,具有高精度、低功耗、体积小、易于集成等优点,广泛应用于电子秤、智能家居、物联网等领域。
- 1 -