极客秀
搜索

在思考中进步,设计一款基于STM32迷你三极管放大倍数测量仪(仅用4个器件)

今天突发奇想,想到了以前测三极管放大倍数的电路,觉得异常的抽象,于是想重新做一下测三极管放大倍数的电路。 于是想用一个恒流源来测量三极管的放大倍数。

我们可以给予一个恒定的电流源,经过三极管放大一定倍数之后,测量Rc的电阻压降来计算放大倍数。 需要注意的是,这里的电阻Rc不能太大,否则会导致提前饱和。
这里关于恒流源的实现本来想使用很早很早的一期文章中的电路。 基于电流镜的高精度稳定电流源设计

但是一想,为什么需要电流镜呢,我只需要前面的电流源的部分就可以了,于是对这个电路进行简化,只取前面的电流源的部分。

不过这里我又出现了一个疑问,这个三极管是为了增大运放的驱动能力,但是我并不需要强大的驱动能力呀,我希望给三极管的电流甚至不到1mA,那么是不需要这个三极管的呀。

于是就是用了运放作为跟随器提供一个稳定的电压源,但是都稳定的电压源了,而且还是小电流,为什么不选择使用稳压二极管????

于是乎只用了四个器件的三极管放大倍数测试装置就完成啦。 这里解释一下为什么我们去测R3的电压,而不是在集电极上拉一个电阻去测集电极的电压。
假如我们直接测量集电极电压,那么就会发现当我们不接入三极管的时候, 这个点的电压是电源电压
,就会导致电压过高,可能损坏单片机的IO口,因此我们选择测量三极管的发射极电压。

我们只需要获取Re的电压和Rb的电压,计算出Ib和Ie即可获得我们的放大倍数。

之后我们使用STM32配置双通道采集,即可实现采集两路的电压值,之后根据我们的公式来计算放大倍数,当然也可以算一下导通压降,或者判断导通状态等。


  while (1)  {    /* USER CODE END WHILE */  
    /* USER CODE BEGIN 3 */    float Vb,Ve,Mag,Ib,Ie;    Ve = HAL_ADC_GetValue(&hadc1);  
    HAL_ADC_Start(&hadc1);    HAL_Delay(50);    Vb = HAL_ADC_GetValue(&hadc1);    Ve = Ve*3.3f/4096;    Vb = Vb*3.3f/4096;    Ib = (2.87-Vb)/15;    Ie = (Ve)/0.15;    Mag = Ie/Ib - 1;    printf("Mag:%.4frn",Mag);    HAL_ADC_Start(&hadc1);    HAL_Delay(1000);  }

利用万用表的三极管档测量一下三极管的放大倍数。

本来想写误差在百分之十左右的,突然想起来,上面串口的数据是在室温下测量的,但是写文章的时候万用表是开了空调,温度降了蛮多了,然后我就拿出板子又测了一遍,果然还是比较精确的。

本来还可以更简单的两个器件直接测就行了。


但是这样子就会导致不接三极管的时候,基极电压会到达5V,但是假如使用3.3V的电源的话,就会减小测量范围。所以选择加入一个稳压二极管。

1.转载请保留原文链接谢谢!
2.本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
3.本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。
4.本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
5.联系方式(#替换成@):pm#vimge.com

  相关内容