帮我分析个集成运放电路lm324
帮我分析个电路吧,左边接热敏电阻,右边接ad接口 本帖最后由 youluo235 于 2014-3-6 16:23 编辑交流的话,一般就是那个820K的电阻相当于直接到地。热敏电阻随着温度的不同将电阻上面的压降传递过来经过放大器缓冲,在通过后面那个放大器放大,可以利用简单的续断续断计算,和差分放大、减法器的原理类似。 youluo235 发表于 2014-3-6 15:05 static/image/common/back.gif
那个820K 和12V之间接个电容是干嘛用的?确定是那样接的吗?。一般就是那个820K的电阻直接到地。热敏电阻随 ...
那个是20k 给我说说放大了多少啊,怎么计算的 本帖最后由 youluo235 于 2014-3-6 16:24 编辑
cl234583745 发表于 2014-3-6 15:46 static/image/common/back.gif
那个是20k 给我说说放大了多少啊,怎么计算的
对于交流信号。那个20K直接到地。假设压敏电阻上面下面电压为V+V-.低通滤波后经过射随,忽略低通滤波可能会有压降衰减的问题。二个放大器的输出分别还是V+V-.然后再通过续断续断计算最后那个放大器的正端为(20/30)*V+.根据虚短负端也是(20/30)*V+ 再根据虚断流过下面那个10K20K电阻的电流一样。可计算。2*((V-)-((20/30)*V+))=((20/30)*V+)-V0 所以V0=2(V+-V-) 对于直流,那个0.1电容相当于断开了。所以2(V+-V-)=VO-V- V0=(2V+)-V- youluo235 发表于 2014-3-6 16:21 static/image/common/back.gif
对于交流信号。那个20K直接到地。假设压敏电阻上面下面电压为V+V-.低通滤波后经过射随,忽略低通滤波可 ...
这个是温度采集的,也就是放大2倍吗?
再问个那个2.2k怎么理解?
还有个问题
for(i=0;i<100;i++)
{
AD_WD1 +=(1024-AD_Z(10));
}
AD_WD1=(AD_WD1-WD0_1)*100;
这个是10通道的ad。10位的ad。那为什么用1024减去呢? cl234583745 发表于 2014-3-6 16:29 static/image/common/back.gif
这个是温度采集的,也就是放大2倍吗?
再问个那个2.2k怎么理解?
还有个问题
那个2.2K只是用来阻抗匹配的,不参与放大,交流放大2倍,我猜你的温度不可能形成交流,应该是直流的说,所以建议你把那个电容短路到地,AD_Z代表10通道吗? cl234583745 发表于 2014-3-6 16:29 static/image/common/back.gif
这个是温度采集的,也就是放大2倍吗?
再问个那个2.2k怎么理解?
还有个问题
可以看看仪表放大器的相关资料,和你的那个图的相似之处
youluo235 发表于 2014-3-6 16:39 static/image/common/back.gif
那个2.2K只是用来阻抗匹配的,不参与放大,交流放大2倍,我猜你的温度不可能形成交流,应该是直流的说, ...
你真厉害哪里,12v哪里是要接地的,我画错了。那2.2k是怎么计算来de呢?
10通道。10位的分辨率。采集了的数据均值一下,但不知道为什么用1024减去呢?
所以我就去研究下电路部分,但我没有学过模电数电的,还是不明白了。 cl234583745 发表于 2014-3-6 16:46 static/image/common/back.gif
你真厉害哪里,12v哪里是要接地的,我画错了。那2.2k是怎么计算来de呢?
10通道。10位的分辨率。采集了的 ...
2.2K只是为了匹配电阻的。换个500欧 1K,2K什么的都无所谓,程序部分还有几个值不知道你的代表什么意思。估计人家1024减去他的话是取反向的值吧。 youluo235 发表于 2014-3-6 17:29 static/image/common/back.gif
2.2K只是为了匹配电阻的。换个500欧 1K,2K什么的都无所谓,程序部分还有几个值不知道你的代表什么意思。 ...
//得到x通道ad结果
uint AD_Z(unsigned char abbq)
{
unsigned int AD_DATA=0;
uint i;
for(i=0;i<16;i++)
{
ADCSC1 = abbq;//PTA1通道
while(!ADCSC1_COCO);
AD_DATA += ADCR;
}
AD_DATA/=16;
return AD_DATA;
}
//结果处理
void ReadAll_AD(void)
{
uchar i;
AD_WD1=0;
for(i=0;i<100;i++)
{
AD_WD1 +=(1024-AD_Z(10));//用1024-10通道的结果 再加起来100次
}
////////////////////////////////////////////////////////////////////////////
for(i=0;i<100;i++) //此处是我插进来的,就是采集端调整电位器数值为30c 50c时候的数值,从而得到30.50度时候的结果,来计算斜率,用来标定,计算0度时候的值,
{
WD50_1 +=(1024-AD_Z(10));
}
WDXL_1=(WD50_1-WD30_1)/ 2;
WD0_1=WD30_1- WDXL_1*3;
////////////////////////////////////////////////////////////////////////////////最后要得到的标定后的结果就是如下:
AD_WD1=(AD_WD1-WD0_1)*100/WDXL_1;
}
其中有几点不明白的。
1.为什么用1024减去,是不与电路有关系?
2.斜率=(50-30)/2为啥不是20呢?
麻烦大侠帮我从头说说,你前面说的我都明白了。
cl234583745 发表于 2014-3-7 09:25 static/image/common/back.gif
//得到x通道ad结果
uint AD_Z(unsigned char abbq)
{
电路只是放大了倍数,和程序没有太大的挂钩关系, return AD_DATA;就是这个值。才是采用的均值结果。至于处理部分每个人的想法都不一样。楼主可以自己写出一个算法。那个2030的问题你何不试试20会是什么效果呢。何必过多的去理解别人的程序。建议你可以根据自己的思路编程序啊,在理解了电路的基础上
页:
[1]