我想控制一个小型12V机箱风扇。我将设置R 1,R 2和R 3的值,以使风扇在40 o C 以上的温度下工作。
我知道,在这类系统中,会有一个不确定的区域,比较器的输出将在高电平和低电平之间快速变化。在这种实际情况下,当温度在40 o C 附近时,将出现不稳定的行为。
有什么办法可以通过尽可能少地改变使其在施密特触发模式下工作(例如,在38 o C以下停止,在42 o C 以上启动,并将先前的状态保持在38 o C和42 o C之间)的方式来实现;无需使用任何施密特触发器逻辑门。
我想控制一个小型12V机箱风扇。我将设置R 1,R 2和R 3的值,以使风扇在40 o C 以上的温度下工作。
我知道,在这类系统中,会有一个不确定的区域,比较器的输出将在高电平和低电平之间快速变化。在这种实际情况下,当温度在40 o C 附近时,将出现不稳定的行为。
有什么办法可以通过尽可能少地改变使其在施密特触发模式下工作(例如,在38 o C以下停止,在42 o C 以上启动,并将先前的状态保持在38 o C和42 o C之间)的方式来实现;无需使用任何施密特触发器逻辑门。
Answers:
要创建施密特触发器,您必须提供正反馈,从运算放大器的输出到同相输入。通常,此输入将是阈值电压,根据运算放大器的输出,它将采用两个值之一(即磁滞)。
在您的情况下,同相输入上有信号。您也可以通过这种方式使其工作,但是我建议您同时切换两个输入,并且交换R1和PTC仍然具有相同的行为:更高的PTC电阻会降低反相输入,并且当达到阈值时,风扇将切换到。因此,让我们这样做,然后将输出中的R5添加到R2 / R3节点。
现在,对R2 / R3 / R5节点应用KCL(基尔霍夫现行定律):
和
要么
然后经过一些替换和改组,我们发现
我已经说过这种情况不太普遍,但是您也可以使用当前原理图,并且计算结果相似。同样,在输出和同相输入之间增加一个R5反馈电阻。现在,参考输入由比率R2 / R3固定,并且磁滞将使您测量的电压上下移动,这至少对我来说是需要习惯的。
同样,求解R1和R5。
根据运算放大器的特性,我们知道:
Vin <= VIL ==> Vout = VOL (Low State)
Vin >= VIH ==> Vout = VOH (High State)
因此,我们可以针对这两种状态编写两个单独的方程式。
例:
R1 = 100k
R2 = 100k
Vdd = +15V
Vss = -15V
VOH = +13V
VOL = -13V
% Matlab code for the plotting
R1 = 100000;
R2 = 100000;
Vdd = +15;
Vss = -15;
VOH = +13;
VOL = -13;
RMIN = 10000; % 10k
RMAX = 10000000; % 10M
VMIN = -10.0;
VMAX = +10.0;
POINTS = (RMAX - RMIN) / 100;
Rf = linspace(RMIN, RMAX, POINTS);
VIL = zeros(1, POINTS);
VIH = zeros(1, POINTS);
for i = 1 : 1 : POINTS
VIL(i) = 1 / ((1/R1) + (1/R2) + (1/Rf(i))) * ((Vdd/R1) + (Vss/R2) + (VOL/Rf(i)));
VIH(i) = 1 / ((1/R1) + (1/R2) + (1/Rf(i))) * ((Vdd/R1) + (Vss/R2) + (VOH/Rf(i)));
end;
close all;
hFig = figure;
hold on;
plot([0 10], [0 0], 'Color', [0.75 0.75 0.75]);
plot(Rf/1000000, VIL, 'Color', [0 0 1]);
plot(Rf/1000000, VIH, 'Color', [1 0 0]);
xlim([RMIN/1000000, RMAX/1000000]);
ylim([VMIN, VMAX]);
xlabel('R_f (M\Omega)');
ylabel('VIL & VIH (V)');
hold off;