“最简单”的方法就是简单地通过ADC施加信号和采样。将结果存储在缓冲区中,然后根据需要显示(在您的情况下,通过RS232发送到PC)
如果需要信号的RMS电平,则需要在发送到PC之前或之后的某个时间进行计算。
如图所示,您的放大电路不是理想的,但对于基本的VU表应该可以正常工作。编辑-我刚刚注意到C2,将其移开,因为它将阻塞来自晶体管的DC偏置,并且信号将摆动到地以下。
编辑-这是放大晶体管的更好电路:
不必太在乎所使用的晶体管,输出偏置应在2.5V左右。
输入分频器(R3和R4)的确切值不是太重要,而是1:4的比率更为重要。因此,您可以使用例如400k和100k,或40k和10k等(尽量不要高于或低于这些各自的值)。C2应该> 10uF。C1应该> 1uF(在原理图中替换C1),但
R1和R2确实需要为这些值。
您所需要的只是带有偏置电阻的驻极体(原理图中的R1)
需要关注的一点是Arduino 3.3V和5V线似乎绑在一起-我假设这是一个原理图错误,但是如果在实际电路中是这种情况,它将无法正常工作,并且可能会损坏某些器件。
要查明问题,将有助于查看您的代码以及在PC端看到的内容。您还使用什么晶体管?
如果您有示波器,则可以检查一下您的麦克风/晶体管是否正常工作。如果不是,则可以使用万用表执行其他一些基本测试(例如,确认存在+ 5V,确认晶体管的基极处于〜0.6V,测试集电极以确保其未固定至+ 5V或接地且没有信号)
另外,您还需要确保RS232正常工作,因此编写一些简单的代码来发送一些测试值将是一个好主意。
如果您可以提供所需的信息,并告诉我们您可以使用的工具,则可以提供更具体的帮助。
编辑-如果您采样速度太慢,则需要这样的峰值检测电路:
您可以将此电路放在晶体管和Arduino引脚之间(减去C2)
二极管几乎可以是任何二极管。电容值和电阻值只是一个准则,可以稍作更改。它们的值决定了电压随信号电平变化需要多长时间。您可以使用RC常数(即R * C-在上面的示例中,RC常数为1e-6 * 10e3 = 10ms)进行计算。电压大约需要2.3个时间常数才能下降到其原始值的90%,因此在上面的示例中,如果电压始于1V,并且您删除了信号,则它将在23ms之后降至0.1V。
编辑 -好的,以为我发现了一个主要问题。您的S9012晶体管是PNP晶体管(与S9015一样),此电路需要NPN晶体管。的 S9014是NPN晶体管,所以你将不得不使用这一个。
标记为“ 104”的电容器几乎可以肯定是0.1uF的陶瓷电容器。值(以pF为单位)是前2个数字,后跟由最后一个数字设置的零个数字。因此,对于104,该值为10 + 4个零,即100,000pF。100,000pF为100nF或0.1uF。
编辑-没有示波器或万用表会使这里的生活非常困难(您应该尽快握住其中的一者或两者)
但是,有一些基本的PC声卡示波器可用于测试驻极体/晶体管电路。Visual Analyzer是一个很好的例子:
如果更换C2(并非绝对必要,但不是个好主意),则应该能够将信号直接输入PC并在软件中进行观察,以查看麦克风和放大功能是否正常工作。如果您的PC使用了线路,但是麦克风输入通常适合高达2V IIRC。您也可以直接测试驻极体-只需移除晶体管位并保留R1和C1,并从C1的另一侧获取信号即可。
请注意,此方法将不会测试DC电平,仅会测试AC(由于声卡输入中的DC屏蔽帽),而不会测试DC(音频)信号。
如果您尝试此操作,请发布屏幕截图,以便我们了解发生的情况。