单片机音频信号采集电路
音频话筒有两种:
一、动圈式话筒,他是利用电池感应现象制成的,当声波使膜片振动时连在膜片的线圈随着以前振动,音圈在磁场里振动产生感应电流,感应电流的大小和方向都是变化的,变化的振幅和频率由声波决定。如图所示
动圈式话筒
二、驻极体话筒,话筒由单面涂有金属的驻极体薄膜与一个上面有若干个小孔的金属电极构成。驻极体面与背电极相对中间有一个极极小的空气间隙两电极构成平板电容。如图所示
驻极体话筒
所以如果所用的话筒型号不一样电路也会不一样。也就是动圈式要并联一个电阻使线圈有电流回路,驻极体要有电源也就是要串联一个分压电阻。
原理图分析:如图所示
单片机音频信号采集电路
运用常见的运放LM358,两路运放都有2.5V的偏置电压,利用电容隔直流通交流。然后两路反向放大电路进行信号放大最后信号方向不变,然后用电位器进行型号调节,防止信号过大信号饱和,但然如果信号振幅落差比较大,又要自动调节增益,那就得用到模拟开光进行档位原则,这里就不做介绍了。还有电路上有滤出高频信号的电容。接到单片机电源是3.3V
所以也可以接ESD防止单片机引脚击穿。如图所示。
初学单片机,可别自顾自的发送,对方跟得上吗?细说I2C的ACK信号
对于一位单片机初学者,最容易做的是走捷径,找到一份现成的代码来用。当我们在网上找到一份别人的程序代码参考的时候,往往会遇到很多问题。要么是功能和我们想要的不完全一样,要么是实际使用中出现各种问题,究其原因,大多是在细节上存在偏差。那么我们最好的解决方法就是自己对照器件手册,来分析如何改进(修正)现有的代码,才能适合我们自己的设计需要。当然,我们的目标是完全可以根据器件手册自己编写源代码。
前面我们的两篇短文聊到了如何对照24cxx的器件手册编写程序,开始只是一个小意念,没想到其内容很多,一时写不完。今天接前面两篇短文,继续聊如何阅读理解24cxx器件手册里的信息。
还是用图说话:
从上图中可以看到很多信息:
总线从机地址设置:之所以叫总线,就是两根线可以并接多个器件。线路板上用A0/A1/A2这些管脚设置,程序里用地址(高位)来区分。当然只接一片24cxx的时候程序里的地址同样要和线路板上的连接方式对应一致。
24cxx的WP管脚:在实际电器产品中,个别厂家对此保护加以利用,其产品对应部位故障率非常低。也就是说在读写器件的时候关闭保护,平常启用保护。
页写缓冲器:这是大多数初学者忽视的东西,当然对于24c08~16基本不存在这个问题,大多设置为8字节,但是对于02来说就要修改为2字节。
存储容量:24c04的容量超过了256字节,一个字节的地址已经不够用了,所以占用了A0,只能用A1、A2,也就是说,24c04最多外接两位二进制数的从机(24c04),也就是3个。
另外,24c32以上用法跟24c16以下的用法稍有不同,相信在弄明白如何看懂器件手册的情况下,那都不是问题,包括SPI等。
由于24cxx不需要单独的擦除命令,在写入的时候会自动擦除要写入的地址的数据,那么写入是需要时间的,不会像单片机发送数据那么快,因此,每发送完一个“写”命令或数据字节,都需要查询24cxx是否“忙完”?这就是ACK信号。
ACK信号:单片机先释放端口(SDA = 1),SCK当然要打开(SCK = 1),当24cxx处理完前面的“写工作”,也就是空闲了,就会自动下拉SDA(SDA = 0),这时单片机不断查询SDA,当检测到低电平时,就可以继续下一个操作。
如果24cxx器件损坏,SDA一直等于1,则程序会进入死循环,因此需要加入计数(计时)来规避此现象发生。
请看下图详细标注:
从上图可以看出,器件手册给出的是完整的查询ACK流程,但是我们在写程序的时候一般只是在写指令后面做简单的等待查询,这并不影响实际操作。
等待时间是有据可查的,字节编程模式下,最大时间是1ms,对于高速单片机需要加入延时函数,普通89C51/2只要计数就可以。当然等待时间也不能随意设置的太长,否则影响单片机整个运行时间。
(注意:不同品牌器件参数不同,应以手册和实际调试为准。取值较大可适应更大范围,实际相差20倍都有。)
另外,编写程序通常把ACK函数和Send函数放在一起,这里暂不详述。
以上分别分析了24cxx作为从机的地址设置,以及ACK忙信号查询的函数写法,希望对初学者有用。
今天就聊到这里,如果您喜欢,可以关注头条号/春天说,欢迎在评论区留言交流,如果您觉得有用,也欢迎分享给更多朋友。。。
相关问答
单片机 采集指示灯的 交流 电平 信号 通过485与电脑通信来控制继电器的开关的电路图?如果是5V单片机系统,高输出2V的情况有:1、IO口外接了较大的负载,拉低了端口的电压(一般单片机的IO为弱上拉),如果你断开负载测量端口电压还是2V的话就有可能...
单片机 如何采集电流互感器出来的 信号 ?电流互感器副线圈的信号是交流电流信号,先通过一个电阻,变成电压,再整流滤波,并测出最大电压值,确保不能超过A/D转换器允许输入的最大电压,要经A/D转换后,...
单片机 接收的是什么 信号 ?单片机可以接收模拟电压信号和数字信号。模拟电压信号一般是通过ADC(模数转换器)将模拟量转换为数字量后,再由单片机进行处理。例如,温度、压力、声音等物理...
请问 单片机 输出的 信号 是什么类型的? - 芥末哒哒 的回答 - 懂得51单片机一般都是高低电平,中间没有变化,要不然就是0v,其他要根接的负载有关。单片机的I/O口的输出信号是数字信号,0-2.3V是低电平;3.2-5V是高电平...
51 单片机 程序中如何接收 信号 的?在51单片机程序中,可以通过串口通信来接收外部信号。以下是一些常用的方法:1.使用串口接收函数:在程序中使用串口接收函数(例如USART_Receive())来读取串...
单片机 只能接收什么 信号 ?单片机只能接收脉冲信号单片机只能接收脉冲信号
请问 单片机 输出的 信号 是什么类型的? - 184****0283 的回答 -...单片机的I/O口的输出信号是数字信号,0-2.3V是低电平;3.2-5V是高电平。虽说是数字信号,但实则是高速的模拟信号,因此0V-5V之间是有上升时间的;同样5V...
51 单片机 计算 交流 电参数?在51单片机上计算交流电参数需要进行以下步骤:1.通过外部电路将交流电输入到51单片机的输入引脚。需要使用电阻、电容等元件进行电压和电流的采样。2.使用...
单片机 的时钟电路内部时钟方式和外部时钟方式有什么不同?一、内部时钟方式:利用单片机内部的振荡器,然后在引脚XTAL1(18脚)和XTAL2(19脚)两端接晶振,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路...H...
谁能赐教:怎样把模拟 信号 传感器接入 单片机 ,需要什么器件转换?[回答]把模拟信号传感器接入单片机:单片机自身带有A/D通道,那么直接把传感器模拟信号接入即可,前提是信号电压的范围要合适,如果信号过于微弱还要增加前置...