37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验三十一:ISD1820录音语音模块 8-20秒语音模块 喊话器模块 板载咪头0.5W喇叭
知识点:ISD1820芯片
1、美国ISD公司的系列语音芯片以其高品质的工作性能和语音音质深受技术设计人员和生产商的青睐。最近ISD公司推出了一种新的单片8~20秒单段语音录放电路ISD1820,采用CMOS工艺,包含振荡器、麦克风前置放大器、和自动增益。 控制、抗混叠滤波器、扬声器驱动器和 FLASH 阵列。ISD1820除了具有ISD系列语音录放电路的基本特性外,还有以下几个新的显着特点:
(1)工作电压3~5V;
(2)取样率和录放音时间可以由外部振荡电阻调节;
(3)DIP14小型封装或其它COB软封装;
(4)单段录放控制简单;
(5)带话筒放大直通功能;
(6)高质量自然的语音还原技术;
(7)边沿/电平触发放音;
(8)自动节电,维持电流0.5μA;
(9)内置8Ω喇叭驱动放大电路;
(10)无需开发系统。
2、内部功能框图
3、ISD1820引脚说明
1脚为录音端(REC),高电平有效。只要REC变高电平(不管芯片处在节电状态还是正在放音),芯片即开始录音。录音期间,REC必须保持为高电平。REC变低电平或内存录满后,录音周期结束,芯片自动写入一个信息结束标志(EOM),使以后的重放操作可以及时停止。(如果用户只需要电路做放音用,可以在芯片录好音测试无误后,将芯片的REC端长期接地,取消REC按键,这样可以防止意外抹音。)
2脚为边沿触发放音端(PLAYE),此端出现上升沿时,芯片开始放音。放音持续到EOM标志或内存结束。开始放音后,可以释放PLAYE。
3脚为电平触发放音端(PLAYL),此端从低电平变高电平时,芯片开始放音。放音持续至此端回到低电平,或遇到EOM标志,或内存结束。
4脚为话筒输入端(MIC)。
5脚为话筒参考端(MICREF)。
6脚为自动增益控制端(AGC)。通常4.7μF的电容器在多数场合下可获得满意的效果。
7脚、9脚为喇叭输出端(SP+、SP-),这对输出端可直接驱动8Ω以上的喇叭。(ISD1820能够直接推动喇叭,但音量不是很大。如果用户需要更大音量的输出,可以外加集成功率放大器。)
8脚、14脚为地线(VSSA,VSSD),芯片内部的模拟和数字电路的不同地线汇合在这两个引脚。
10脚为振荡电阻端(ROSC),此端接振荡电阻至VSS,由振荡电阻的阻值决定录放音的时间。
11脚为电源端(VCC),芯片内部的模拟和数字电路使用的不同电源总线在此引脚汇合,这样使得噪声最小。去耦电容应尽量靠近芯片。
12脚为直通模式端(FT),此端允许接在MIC输入端的外部语音信号经过芯片内部的AGC电路、滤波器和喇叭驱动器而直接到达喇叭输出端,形成话筒扩音机功能。平时FT端为低电平,要实现直通功能,需将FT端接高电平,同时REC、PLAYE和PLAYL保持低电平。
13脚为录音指示端(/RECLED),处于录音状态时,此端为低电平,可驱动LED。此外,放音遇到EOM标志时,此端输出一个低电平脉冲。此脉冲可用来触发PLAYE,实现循环放音。
4、概述
ISD1820芯片的基本结构与ISD1110、ISD1420完全相同,它采用CMOS技术,内含振荡器、话筒前置放大、自动增益控制、防混淆滤波器、平滑滤波器、扬声器驱动及FlASH阵列。最小的录放系统仅需麦克风、喇叭、两个按钮、3V电源及少数电阻电容。在录放操作结束后,芯片自动进入低功耗节电模式,功耗仅0.5μA。
芯片采用多电平直接模拟量存储专利技术(DAST),每个采样值直接存储在片内FLASH单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和"金属声"。ISD1820的声音采样频率可通过外接振荡电阻来调节,从3.7kHz到8kHz对应不同的录音时间和频带宽度,其关系如表1所示。片内信息可保存100年(无需后备电源),FLASH单元可反复录音1万次。
5、典型应用电路
6、ISD1820芯片技术资料
ISD1820语音20秒录放模块
1、语音记录模块基于 ISD1820,它是一个多消息记录/播放设备。它可以提供真正的单芯片录音、非易失性存储和 8 到 20 秒的播放能力。样本为 3.2k,Recorder 总共为 20s。该模块使用非常简单,您可以通过板上的按钮或微控制器(如 Arduino、STM32、ChipKit 等)直接控制。通过这些,您可以轻松控制录制、播放和重复等。
(1)主要芯片:ISD1820
(2)尺寸:38mm*42.5mm
(3)工作电压:直流3-5V
(4)工作温度:0℃ ~ +50℃
(5)录放音电源电压 (Vcc):+2.7V ~ +4.5V
(6)地电平 (Vss):0V
模块主要特点:
(1)使用方便的20秒语音录放
(2)高质量、自然的语音还原
(3)可用作喊话器模块
(4)带循环播放,点动播放,单遍播放功能
(5)可用单片机控制
(6)本模块可直接驱动8欧0.5W小喇叭
(7)供电电源:3-5V,可接排针上电
(8)按钮界面,播放可以边沿或电平激活
(9)录放音控制方式:手动按键控制或单片机MCU,控制线IO引出
模块电原理图
模块按键控制录放音操作方法:
REC键:录音按键,按住就能录音,松开按键停止录音;
RLAYE键:触发模式放音,按一下就播放当前整段的语音;
PLAYL键:点动模式放音,按住才放音,松开就停止放音;
RPL跳线:循环播放模式控制,可循环播放;
FT跳线:直通控制,可使咪头语音直通到喇叭放音。
如果想改变记录持续时间,则需要一个外部电阻来选择记录持续时间和采样频率,范围为 8-20 秒(4-12kHz 采样频率)。录音模块默认通过短帽连接 100k 电阻。所以默认的记录时长是 10 秒。
模块接脚与按键
(1)VCC– 3.3V 电源
(2)GND——电源地
(3)REC – REC 输入是一个高电平有效记录信号。只要 REC 为 HIGH,模块就会开始录制。该引脚在录制期间必须保持高电平。REC 优先于播放(PLAYL 或 PLAYE)信号。
(4)PLAYE – 播放,边沿激活:当检测到高电平转换时继续,直到遇到消息结束 (EOM) 标记或到达内存空间的末尾。
(5)PLAYL——播放,电平激活,当此输入引脚电平从 LOW 变为 HIGH 时,开始播放周期。
(6)扬声器输出——SP+ 和 SP- 引脚为阻抗低至 8Ω 的扬声器提供直接驱动。
(7) MIC – 麦克风输入,麦克风输入将其信号传输到片上前置放大器。
(8)FT – 直通:此模式使麦克风能够直接驱动扬声器。
(9)P-E——无休止地播放唱片。
连接功放
ISD1820语音20秒录放模块实验所需硬件清单
激光头发射模块X1
激光头接收模块X1
8欧0.5瓦小喇叭X1
红外光电避障模块X1
Arduino Uno开发板 X1
杜邦线 若干(备了9条)
HC-SR04超声波测距模块X1
IIC/I2C 1602 LCD液晶屏模块X1
ISD1820语音20秒录放模块X1
LED发光二极管(绿、蓝色)X2
Proto Shield 原型扩展板(带mini面包板)X1
传感器模块实验所需软件平台
代码编程 Arduino IDE (版本1.8.19)
仿真编程 Linkboy (版本V4.6.3)
图形编程 Mind+ (版本 V1.7.0 RC2.0)
以及编玩边学(线上平台https://ide.codepku.com/?type=Arduino)
实验接线示意图
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验三十一:ISD1820录音语音模块 8-20秒语音模块 喊话器模块 板载咪头0.5W喇叭
程序一:录音10秒,播放10秒
实验效果:将程序下载到Arduino 控制器,并正确连接ISD1820后,上电复位模块指示灯亮即为录音状态,可以通过板载麦克风录音,待指示灯熄灭录音完 成,随即开始播所录声音,重复录音将Arduino控制器复位重复以上操作即可。
Arduino实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序一:录音10秒,播放10秒
*/
int Rec = 3;//定义录音接脚为D3
int Play = 4;//定义播放接脚为D4
void setup() {
pinMode(Rec, OUTPUT);//设置为输出
pinMode(Play, OUTPUT);
}
void loop() {
digitalWrite(Rec, HIGH);//打开录音,延时10秒
delay(10000);
digitalWrite(Rec, LOW);
delay(50);
digitalWrite(Play, HIGH);//播放录音10秒
delay(10000);
digitalWrite(Play, LOW);
delay(50);
}
Arduino实验场景图
实验开源仿真编程(Linkboy V5.33)
实验开源图形编程(Mind+、编玩边学)
yuio2023.12.09
我想请问isd1820三个按钮引脚的定义是什么?谢谢
语法的有人2023.11.22
...
语法的有人2023.11.22
好像可以不用arduino的,直接可以实现