在这个项目中,我们将使用ARDUINO UNO中的ADC(模数转换)概念制作拍板电路。我们将使用MIC和Uno感测声音并触发响应。该 拍手打开拍手关闭开关 基本上通过使用拍手声音作为开关来打开或关闭设备。我们以前使用555定时器IC构建了拍击开关和拍击打开拍击关闭开关。
拍手时,MIC处的峰值信号会比正常情况高得多,该信号会通过高通滤波器馈入放大器。放大后的电压信号被馈送到ADC,ADC将该高压转换为数字。因此,UNO的ADC读数将达到峰值。在此峰值检测中,我们将在每次拍拍时切换板上的LED。该项目已在下面进行了详细说明。
MIC或麦克风是一种声音传感换能器,它基本上将声能转换为电能,因此有了此传感器,我们就可以随着电压的变化而发出声音。我们通常通过此设备录制或感知声音。该换能器可用于所有手机和笔记本电脑。典型的MIC看起来像
确定电容麦克风的极性:
MIC有两个端子,一个是正极,另一个是负极。麦克风极性可以使用万用表找到。取下万用表的正极(将仪表置于“二极管测试”模式)并将其连接到MIC的一个端子,负极将其连接到MIC的另一端子。如果您在屏幕上获得读数,则正极(MIC)的端子在万用表的负极。或者,您可以通过查看它来简单地找到端子,负极端子具有连接到麦克风金属外壳的两根或三根焊接线。从负极端子到其金属外壳的这种连通性也可以使用连续性测试仪进行测试,以找出负极端子。
所需组件:
硬件:
ARDUINO UNO,电源(5v),电容式麦克风(如上所述)
2N3904 NPN晶体管,
100nF电容器(2个),一个100uF电容器,
1KΩ电阻,1MΩ电阻,15KΩ电阻(2个),一个LED,
面包板和连接线。
软体: Arduino IDE-Arduino每夜。
电路图及工作说明:
所述阀瓣电路的电路图中示出了下图:
我们将工作分为四个部分,即:过滤,放大,模数转换和切换LED的编程
只要有声音,MIC就会将其拾取并将其转换为电压,该电压与声音的大小呈线性关系。因此,对于更高的声音,我们具有更高的价值,对于更低的声音,我们具有更低的价值。该值首先送入高通滤波器进行过滤。然后,该滤波值被馈送到晶体管进行放大,晶体管在集电极上提供放大后的输出。该收集器信号被馈送到UNO的ADC0通道,以进行模数转换。最后,每当ADC通道A0超过特定电平时,Arduino就会被编程为切换连接在PORTD的PIN 7上的LED。
1.过滤:
首先,我们将简要介绍一下用于过滤噪声的RC高通滤波器。它易于设计,并且由单个电阻器和单个电容器组成。对于此电路,我们不需要太多细节,因此我们将使其保持简单。高通滤波器允许高频信号从输入传递到输出,换句话说,如果信号的频率高于滤波器规定的频率,则输入信号会出现在输出端。现在,我们不必担心这些值,因为在这里我们不设计音频放大器。电路中显示了一个高通滤波器。
经过该滤波器后,电压信号被馈送到晶体管进行放大。
2.放大:
MIC的电压很低,无法馈入UNO进行ADC(模数转换),因此我们为此设计了一个使用晶体管的简单放大器。在这里,我们设计了一个用于放大MIC电压的单晶体管放大器。放大后的电压信号被进一步馈送到Arduino的ADC0通道。
3.模数转换:
ARDUINO有6个ADC通道。其中的任何一个或全部都可用作模拟电压的输入。UNO ADC的分辨率为10位(因此(0-(2 ^ 10)1023中的整数值))。这意味着它将映射0到5伏之间的输入电压到0到1023之间的整数。 (5/1024 = 4.9mV)每单位。
现在,为使UNO将模拟信号转换为数字信号,我们需要借助以下功能使用ARDUINO UNO的ADC通道:
1. AnalogRead(pin); 2. AnalogReference();
UNO ADC通道的默认参考值为5V。这意味着我们可以在任何输入通道上为ADC转换提供5V的最大输入电压。由于某些传感器提供的电压范围为0-2.5V,因此使用5V基准电压时,我们获得的精度较低,因此我们有一条指令使我们能够更改该基准值。因此,为了更改参考值,我们有“ analogReference();”
在我们的电路中,我们将该参考电压保留为默认值,因此我们可以通过直接调用函数“ analogRead(pin);”从ADC通道0读取值,这里的“ pin”代表我们连接模拟信号的引脚,在这种情况下,它将是“ A0”。ADC的值可以取为整数,例如“ int sensorValue = AnalogRead(A0); ”,则通过该指令,来自ADC的值将存储在整数“ sensorValue”中。现在,我们将数字形式的晶体管值保存在UNO的存储器中。
4.对Arduino进行编程,以在每个拍手上切换LED:
在正常情况下,MIC提供正常信号,因此我们在UNO中具有正常的数字值,但是在拍打MIC提供的峰值时,我们在UNO中具有峰值数字值,我们可以对UNO进行编程以切换每当出现峰值时,LED就会亮起和熄灭。因此,在第一次拍手时,LED点亮并保持点亮状态。在第二次拍手时,LED熄灭并保持关闭状态,直到下一次拍手为止。有了这个,我们就有了拍手电路。检查下面的程序代码。