虽然你可以只用一个放大器和一个微控制器 (Arduino) 来完成这一切,但据我所知,你需要模拟选项。我试图创建一个在麦克风上输出语音电平的电路。范围从 0V 到 4V。但是,您只需更换 OP-AMP,即可轻松将其从 0V 升级到 5V。现在,让我们开始吧;
首先,我用运算放大器代替了晶体管放大器。这是我想出的;
这是一个简单的反相放大器,增益为 100。这是计算增益的公式;
$$ V_{out}=-\dfrac{R_f}{R_{in}}*V_{in} = -\dfrac{100k}{R_{in}}*V_{in} = -100*Vin $$
如您所见,U1 将输入信号取反,然后将其乘以 100。您可以更改 R2 或 R3,您会看到 U1 的增益发生了变化。输入信号的反转在这里无关紧要,稍后您将了解。让我们看看这个放大器的输出,你会看到输入信号有很大的增长。
在上图中,您将看到输出的直流偏移电压为 2.5 伏。那是因为我们使用了虚拟地面。如果我们创建一个虚拟接地,这意味着我们将接地带到另一个电压电平。在本例中,我们将其移至 2.5 V。使用新配置,我们为电路创建了类似于-2.5 V、0 V 和 2.5 V 的电压。为了实现这一点,我必须创建一个 2.5 伏的新电压轨。由于该电压轨不会提供太多功率(小于 1 mA),因此很容易创建;
注意上述电路的负反馈。这将给 OP-AMP 发出 \$V+=V-\$ 的命令。OP-AMP 将尽最大努力实现这个等式。因此,输出将为 2.5 V,即电源电压的一半。这就是我们的新起点。
放大后,我们应该把信号放到“包络检测器”,或者换句话说,“包络跟随器”。这将获得信号的电平,如您所愿以及您在问题图片中显示的那样。这是一个基本的信封追随者的样子:
看起来一切都很好,但是请注意,这里的 D3 是一个二极管,它自身会下降约 0.6 V。所以,你失去了电压。为了克服这个问题,我们将使用所谓的“超级二极管”。太棒了,因为电压降几乎是0V!为了实现这一点,我们包括一个带二极管的运算放大器,仅此而已!运算放大器将补偿二极管的压降,您将拥有一个几乎理想的二极管;
由于这个配置有负反馈,U5会尽量让\$V+=V-\$。因此,每当输入为 3V 时,它都会使其输出为 3.6V,以补偿 D3 上的 0.6V 压降。所以,这个超级二极管的输出,因此 \$V-\$ 输入将等于它的输入电压 \$V-\$。但是,当 \$V+\$ 输入为负时,D3 将不允许 U5 使输出为负。另请注意,U5 的负轨是 GND,即 0 V。无论如何它都不能低于 0 V。它就像一个理想的二极管一样工作!
现在,将上述包络跟随器电路中的 D3 更改为超级二极管,您就有了更好的包络跟随器!让我们看看我们的结果;
我们越来越近了。如您所见,包络跟随器的输出,即红线,可以从 2.5 V 变为 4 V。2.5 V 为无声,4 V 为响亮,3.25 V 为中声。要将其缩放到您想要的,我们可以减去 2.5 V 偏移电压并对其进行缩放。因此,当您减去 2.5 V 时,它变为;0 V代表无声,1.5 V代表响亮,0.75 V代表中等声音等等。在那之后,如果你把它乘以大约 3,你会得到你想要的。0 V 表示无声音,2.5 V 表示中等声音,5 V 表示响亮的声音。回顾一下,我们想要的是这个;
\$V_{out}=(V_{in} - 2.5V) * 3 \$
为了实现这一点,我们将使用一个差分放大器,或者换句话说,一个“减法器”。
当电阻器 R1 = R2 和 R3 = R4 时,差分放大器的传递函数可以简化为以下表达式:
$$V_{输出}=\dfrac{R_3}{R_1}*(V2-V1)$$
如果您使 V1= 2.5V 和 R3/R1 比率为 3,那么您将获得您想要的输出。
这是完整的原理图,可以满足您的要求:
我在这里使用 LM324 OP-AMP 进行仿真。这会将最大输出电压限制为 4V。为了获得全范围输出,您应该使用轨到轨输出运算放大器。我建议MCP6004。更改 R1 和 R2,直到获得所需的结果。这是我通过模拟得到的:
现在,在 ADC 中测量这些值时,您不会得到线性感觉,而是更好地理解对数的声音,因为我们的耳朵是这样听到的。所以,你应该使用分贝。如果您不熟悉分贝,这里有一个很棒的视频教程。
例如,一个安静的房间被测量为大约 40 dB。房间里的派对将使房间的音量上升到 100 dB,或者可能是 110 dB。在这个网站上,你可以找到关于它的重要信息,我也嵌入了下面的图片。考虑分贝水平并试验电路的电压输出。然后,计算您需要的 ADC 分辨率。很可能,您可以使用 12 位 ADC。