红外测温传感器的输出是一个mV级的电压信号,大约在室温下(26℃左右)输出0电压,温度再低就是负电压了。要用单片机检测这样一个小信号,必须进行放大,可一般的单电压运放都不能放大小信号(我曾经折腾过LM324的单电压小信号放大,发现大约在100mV以下,LM324就没有反应了),最常规的解决方案就是使用双电压供电。
双电压是个头疼的事情,弄两路电压一般来说要使用变压器,还得是双绕组的,全桥整流,78 79系列IC伺候着。。。看着就不爽! 如果要改用电池供电。。。麻烦啊!
于是打算用负压生成电路。 负压生成都是一个套路,用振荡器产生交流电,然后用电感产生感应电动势,或者用二极管和电容组成的倍压电路。。。既然用了单片机,那么产生交流电这个任务,就交给软件吧~ 接着需要考虑负压拓扑。
负压生成有电感和电容两种范式;其中,电感模式的有变压器式,和电感自激这么两种。 显然,我还没打算自己绕变压器,那还不如用双绕组市电变压器了;电感和电容选那种呢? 其实电感式的我做过,要想达到高效率,还真有点麻烦,最终选定电容式的了!
在baidu上一搜“负压”,就有好多链接,从其中挑了一个简单的:
当然,我用AVR代替了555,随便找个IO,在LED扫描中断里面反转一下IO,产生了3K左右的方波波形,套用上面这个电路,一下子就生成了-4V的电压(5V供电),OK~
接上100欧负载,顿时电压跌落为-1.6V,改了改电容容量,没效果(可能和我只改了1个电容有关系)!改了改驱动能力(多个IO口并联驱动),也基本没效果!改了改振荡频率,也基本没效果! 看来这个驱动能力确实有点差。。。当年用MAX232做高压发生,还能带动编程器呢(作为变成高压发生)。
算了,没时间细研究,直接焊上LM324,管脚全部悬空,电压为3.8XV,想了想,把两个二极管从1N4148更换为1N60(锗管,0.2~0.3V压降),OK,带LM324的情况下,电压为-4.6V了!
现在LM324是+5V -4.6V,已经可以工作了,有空的时候再研究效率吧。
笔记一下:
第一个电容C3,我使用的是10u的;第二个电容C4,我使用的是22u的;从原理上分析,这两个电容应该相等效果才好,否则两个电容只等于最小的那个容量;两个二极管为1n60,按理说1N5817之类的肖特基也是可以的,我就没有试验了。
这个电路的原理很简单,虽然是倍压拓扑,但是其实没有进行倍压。
如图,C3的正极接一个方波,实质上就是依次和VCC与GND导通。当C3正极接通VCC的时候,根据二极管的特性,我们很容易得到下面的电流方向图:
可以轻松算得,C3上充电能达到VCC-VIO-VD1,VD1为D1的压降0.2~0.3V,VIO为单片机IO口的内阻(一般是一个三极管的饱和压降0.2~0.3V),因此C3能达到的电压,在VCC为5V时,约为4.4~4.6V。 实际上如果电流很小,那么二极管的压降还要低,因此C3充电电压实际能达到4.8V! 我实测为4.76V。
好,接着看,紧接着C3正极被接通至GND了,那么此时电流按照二极管的约束,开始由C3向C4充电:
同理,在C4上也能充上4.2~4.4V的电,我实测是4.6V。
就这样往复,最后利用这两个电容+两个二极管,完成了电源从正到负的乾坤大挪移,在C4上产生了和VCC刚好相反的负电压,幅度为VCC-VIO-VD2-VD2,帅!
写在后面:从这个负压发生原理可以看出,影响负载能力的,主要是电容的容量和电容充放电速度;而电容充电速度取决于单片机IO口的内阻和二极管D1,电容的放电速度取决于二极管D2,因此,要想提高带负载能力,就在这上面下功夫吧。 如果要很强的负载能力,那还是用电感拓扑吧~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)