

| 编号 | 名称 | 功能 |
| 1 | GND | 电源地 |
| 2 | DT | 数据输出引脚 |
| 3 | SCK | 时钟引脚 |
| 4 | VCC | 电源正 |
HX711是一款专为高精度称重传感器而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片是专门为称重传感器设计的,称重传感器只需要一个HX711芯片即可完成称重信号的处理及AD转换;对于单片机来说,获取此刻的重量值,只需一个简单函数读取此时AD值,并通过一个线性方程的转换后即可获取此时物体的精确重量。
HX711芯片与单片机的通讯只需要两个引脚,时钟引脚PD_SCK及数据引脚DOUT,用来输出数据,选择输入通道和增益。当数据输出管脚DOUT为高电平时,表明A/D转换器还未准备好输出数据,此时串口时钟输入信号PD_SCK应为低电平。当DOUT从高电平变低电平后,PD_SCK应输入25至27个不等的时钟脉冲,如图:

其中第一个时钟脉冲的上升沿将读出输出24位数据的最高位(MSB),直至第24个时钟脉冲完成,24位输出数据从最高位至最低位逐位输出完成。第25至27个时钟脉冲用来选择下一次A/D转换的输入通道和增益,时序如图:

压力传感器:感知物体重力,并转化为电压信号。这里是0~10kg压力传感器,灵敏电压为1mv,即1kg重力产生1mv电压
电压放大器:由于压力传感器产生电压太小,需要对电压信号放大。这里用的是128倍电压增益。
ad转换芯片(24位):将模拟信号(放大后的电压值)转化为数字信号(ad值)
假设重力为x kg,ad = (x/10)*128*2^24*(5/5000),(满量程为10kg,128倍放大,精度为2^24,传感器满偏电压5mv,单片机为5v)
ad = 214748.3648x >> x = ad/214748.3648 (按g显示再乘1000即可)
//ad转化为重力大小公式,(float)将整除转化为小数运算,再将运算结果强制转化为无符号整型数值
Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/240);
//理论上是除以214.7,实际上存在误差(传感器曲线以及电压的微小误差),需要根据显示情况来调整这一数值
/****
******* 读取HX711数值
*****/
ulong HX711_Read(void)
{
ulong count; //存ad值
uchar i;
HX711_DOUT = 1; //数据端口拉高,参照时序图写
Hx711_delay_us(); //延时
HX711_SCK = 0; //时钟端口拉低,使能AD
count = 0; //ad值初始化
while(HX711_DOUT); //AD转换未结束则等待,否则开始读取
for(i=0; i<24; i++) //循环24次传数据,按位接收数据
{
HX711_SCK = 1; //准备转换数据
count = count << 1; //向左移位,即向低位补0,空出最低位进行传值操作,如1<<1为10
HX711_SCK = 0; //时钟脉冲下降延,数据开始转换
if(HX711_DOUT)
count++; //数据端为高则最低位+1,为1,数据端为低则最低位不变,为0(左移把最低位空出)
}
HX711_SCK = 1; //第25个脉冲延
count = count^0x800000; //异或输出原码
Hx711_delay_us(); //延时
HX711_SCK = 0; //结束ad转换
return(count); //传出ad值
}
首先初始化引脚,然后数据引脚拉高,延时一段时间后,将时钟引脚拉低,等待AD转换结束,然后开始读取数据。接下来循环24次数据接收,在第25个脉冲将数据异或转换,并拉低时钟引脚结束AD转换。通过采集第一次数据为毛皮重量,采集第二次数据减去第一次数据即为最终称重重量。

1、实物图2、原理图3、原理介绍LCD1602:LCD1602液晶显示器是一种广泛使用的字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路及其扩展驱动电路,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。用于显示字母、数字和符号等的点阵式LCD,总共可以显示两行数据,每行可以显示16个数据。在哪显示:LCD1602可以显示16*2个字符且通过D0-D7八个引脚传输八位数据,每一个显示的位置都对应上图的一个地址。例如我想在第一行的第三个位置显示,那么就可以锁定上表中的“02”,换算成二进制就是00000010。听上去很简单,但是LCD1602有个特点就是写入显示地址时要
最近设计了一个项目基于单片机的加湿器系统,与大家分享一下:一、基本介绍项目名:加湿器项目编号:mcuclub-jj-011单片机类型:STC89C52具体功能:1、通过DHT11获取湿度值,当湿度值低于设置最小值,则启动加湿器加湿,大于设置最大值,则停止加湿2、通过液位检测模块检测加湿器中是否还有水,如果没有,则自动停止加湿、声光提醒3、通过按键设置湿度上下限4、通过显示屏显示测量值、手动加湿、切换模式扩展功能:通过蓝牙模块将测量数据发送到手机端,并可以控制是否加湿、切换模式二、51实物图单片机型号:STC89C52板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本
1说明使用ffmpeg源码,进行交叉编译,支持H264和G711A编码支持2环境说明硬件环境:mips架构芯片软件环境:Linux任意版本3原理(1)下载ffmpeg源码,从官网下载(2)修改源码,增加对G711A(PCM_ALAW)支持(3)使用交叉编译,对ffmpeg裁剪,最终控制在2M以内4操作步骤4.1下载ffmpeg源码从ffmpeg官网下载源码包,网址如下:https://ffmpeg.org/download.html#releases本人使用的是ffmpeg-4.4.2版本https://ffmpeg.org/releases/ffmpeg-4.4.2.tar.xz4.2修改源
[蓝桥杯2021省AB]砝码称重(C++,01背包可行性)题目描述你有一架天平和NNN个砝码,这NNN个砝码重量依次是W1,W2,⋯ ,WNW_{1},W_{2},\cdots,W_{N}W1,W2,⋯,WN。请你计算一共可以称出多少种不同的重量?注意砝码可以放在天平两边。输入格式输入的第一行包含一个整数NNN。第二行包含NNN个整数:W1,W2,W3,⋯ ,WNW_{1},W_{2},W_{3},\cdots,W_{N}W1,W2,W3,⋯,WN。输出格式输出一个整数代表答案。样例#1样例输入#13146样例输出#110提示【样例说明】能称出的10种重量是:1、2、3、4、5、
我目前正在研究一个类,其中有一个名为“connect”的方法,我还调用了winsock函数“connect”。这当然会导致编译器给我一个错误,因为它不知道如何处理它。我怎样才能以最好的方式解决这样的命名问题?我想保留我的方法名称,因为它能最好地描述发生的事情。我无法控制winsock函数“connect”的名称,即使我控制了,我认为重命名它也没有多大意义。我很确定在其他地方已经回答了这个或类似的问题,但我太笨了,找不到它。 最佳答案 在调用winsock标准函数时,您可以在函数名前使用作用域解析运算符::。即::connect(..
你能建议用C/C++实现G.711音频编解码器吗?我将在专有软件中使用它。 最佳答案 我使用实现here,简单快捷。 关于c++-G.711C++实现,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6519369/
一、实物图 二、原理图编号名称功能1VCC电源正2TRIG触发控制信号输入3ECHO回响信号输出4GND电源地三、简介由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物体测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人研制上也得到了广泛的应用。HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度3mm,模块包括超声波发射器、接收器与控制电路。基本工作原理:超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时
一、实物图(四相五线步进电机,型号:28BYJ-48-5V)二、原理图编号名称功能1IN1脉冲输入端2IN2脉冲输入端3IN3脉冲输入端4IN4脉冲输入端8GND电源地9COM续流二极管负极的公共端,接电源正13OT4脉冲输出端14OT3脉冲输出端15OT2脉冲输出端16OT1脉冲输出端三、简介(工作原理)步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速和角加速度与脉冲频率成正比(在非超载的情况下)。因此,步进电动机又称脉冲电动机。步进电机作为一种可控制用的特种电机,利用其没有累计误差
我正在使用PHPExcel从数据库中导出我的文件,但我的问题是当我下载我的excel时,我的工作表的名称是默认的“Worksheet”。我想将它设置为另一个名称,例如“Helloworld”。到目前为止,这是我的代码require_oncedirname(__FILE__).'/Classes/PHPExcel.php';$objPHPExcel=newPHPExcel();$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1','1')->setCellValue('B1','2')->setCellValue('C1','3'
问题描述你有一架天平和N个砝码,这N个砝码重量依次是W1,W2,⋅⋅⋅,WN。请你计算一共可以称出多少种不同的正整数重量?注意砝码可以放在天平两边。输入格式输入的第一行包含一个整数N。第二行包含N个整数:W1,W2,W3,⋅⋅⋅,WN。输出格式 输出一个整数代表答案。数据范围 对于50%的评测用例,1≤N≤15。对于所有评测用例,1≤N≤100,N个砝码总重不超过 100000。输入样例:3146输出样例:10解题思路:用dp法,分析状态和状态转移的过程,类似于01背包问题,多了一个分支状态表示:题目保证砝码不大于100,总砝码重不超过100000,则状态最多为100*100000个,设dp[