DIY 自动录音和回放
组件和用品
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 6 |
关于这个项目
背后的想法!
我在互联网上玩杂耍寻找可以录制语音并再次播放的设备。我发现了 ISD1820,它非常合理(仅 3 美元),并且可以使用一些 rec 单独录制声音。和播放按钮。我需要使用 Arduino 来控制这个设备,我的意思是只通过 Arduino 录制和播放语音。
该项目仅适用于初学者和想要了解 ISD1820 与 Arduino 的功能的人,但您可以将其扩展到非常大的意义。
您应该访问 www.gadgetprogrammers.online 以获得完整的描述和新的想法。
工作原理!
首先,我们只是通过ISD1820录制语音,它可以录制一次20秒(你也可以将语音存储在sd卡中),你可以反复播放。所以在这里我们在用户在串行监视器中按“r”时录制语音,并在用户在串行监视器中按“p”时播放。
所以这就是我们系统的全部工作
.


下面是引脚工作(你可以跳过它):
- VCC– 3.3V 电源
- GND——电源地
- REC – REC 输入是一个高电平有效的录音信号。每当 REC 为高电平时,模块就开始录制。该引脚必须在录制期间保持高电平。 REC 优先于播放(PLAYL 或 PLAYE)信号。
- PLAYE – 播放,边沿激活:当检测到高电平转换时,将继续直到遇到消息结束 (EOM) 标记或到达内存空间的末尾。
- PLAYL – 播放,电平激活,当此输入引脚电平从低电平变为高电平时,开始播放周期。
- 扬声器输出 – SP+ 和 SP- 引脚为阻抗低至 8Ω 的扬声器提供直接驱动。
- MIC – 麦克风输入,麦克风输入将其信号传输到片上前置放大器。
- FT – 馈通:此模式使麦克风能够直接驱动扬声器。
- P-E – 无休止地播放唱片。
加油!
请连接如下:
- VCC => Arduino 5v
- GND => Arduino GND
- FT => Arduino 引脚 5
- 播放 L (PL) => Arduino pin 4
- PLAY_E(P-E) => Arduino 引脚 3
- REC => Arduino 引脚 2
以上引脚上传代码SAMPLE1后:
示例 1:如果您希望用户决定录音
示例 2:自动录制 3 秒语音并播放 5 秒。
示例 1:
/** ISD1820 Arduino Voice Recorder* 使用 Arduino 和 ISD1820 Sound Recorder* 录制和播放声音* 从 https://www.gadgetprogrammers.online/** ISD1820 Arduino Voice Recorder* 获得此代码Anshul Pareek 出于教育目的* 2018 年 6 月 6 日晚上 11:20,*/#define REC 2 // 引脚 2 用于录制#define PLAY_E 3 // 引脚 3 用于播放边缘触发#define FT 5 // 引脚 5 用于馈通 // 不会录制#define playTime 5000 // 播放时间 5 秒#define recordTime 3000 // 录制时间 3 秒,您可以将时间延长至 10 秒void setup() { pinMode( REC,OUTPUT);//设置REC管脚为输出pinMode(PLAY_E,OUTPUT);//设置PLAY_e管脚为输出pinMode(FT,OUTPUT);//设置FT管脚为输出 Serial.begin(9600); // 设置串口监视器 }void loop() { while (Serial.available()> 0) { char inChar =(char)Serial.read(); if(inChar =='p' || inChar =='P'){ digitalWrite(PLAY_E, HIGH);延迟(50);数字写入(PLAY_E,低); Serial.println("播放开始");延迟(播放时间); Serial.println("播放结束");休息; } else if(inChar =='r' || inChar =='R'){ digitalWrite(REC, HIGH); Serial.println("录音开始");延迟(记录时间);数字写入(记录,低); Serial.println("录音停止"); } Serial.println("###串行监视器退出"); }// wihileSerial.println("### Enter r to record, p to play");延迟(500);}
示例 2:
#define REC 2 // 引脚 2 用于录音#define PLAY_E 3 // 引脚 3 用于播放边缘触发 // 当 PLAY_E 变为高电平时,设备将开始播放并继续#define FT 5 / / pin 5 用于馈通#define playTime 5000 // 播放时间 5 秒#define recordTime 3000 // 录音时间 3 秒#define playLTime 900 // 按下和释放播放时间 0.9 秒void setup() { pinMode(REC,OUTPUT );//设置REC管脚为输出pinMode(PLAY_E,OUTPUT);//设置PLAY_e管脚为输出pinMode(FT,OUTPUT);//设置FT管脚为输出Serial.begin(9600);//设置up 串行监视器 }void loop() { digitalWrite(REC, HIGH);延迟(记录时间);数字写入(记录,低);数字写入(PLAY_E,高);延迟(50);数字写入(PLAY_E,低);延迟(播放时间);延迟(500);}
所以现在你已经建立了整个系统,快点!
未来范围:
你 可以 录制语音并将其存储在 SD 卡中以备将来使用,您可以创建对讲机等等..... 随您的想象:)
如果你喜欢请分享.......:)
请访问并推广我们,以便我们为您构建新项目 www.gadgetprogrammers.online
代码
- 示例 1
- 示例 2
示例 1Arduino
请将此代码粘贴到 ARDUINO 中并在连接构建后运行。/** ISD1820 Arduino 录音机* 使用 Arduino 和 ISD1820 录音机录制和播放声音* 从 https://www.gadgetprogrammers.online/* 获取此代码* ISD1820 Arduino 录音机* 由 Anshul Pareek 编写的用于教育目的的代码* 2018 年 6 月 6 日晚上 11:20,*/#define REC 2 // 引脚 2 用于录音#define PLAY_E 3 // 引脚 3用于播放边沿触发#define FT 5 // 引脚 5 用于馈通 // 不会录制#define playTime 5000 // 播放时间 5 秒#define recordTime 3000 // 录制时间 3 秒可以延长时间upto 10 secondsvoid setup() { pinMode(REC,OUTPUT);//设置REC pin为输出pinMode(PLAY_E,OUTPUT);//设置PLAY_e pin为输出pinMode(FT,OUTPUT);//设置FT pin as output Serial.begin(9600);// 设置串口监视器 }void loop() { while (Serial.available()> 0) { char inChar =(char)Serial.read(); if(inChar =='p' || inChar =='P'){ digitalWrite(PLAY_E, HIGH);延迟(50);数字写入(PLAY_E,低); Serial.println("播放开始");延迟(播放时间); Serial.println("播放结束");休息; } else if(inChar =='r' || inChar =='R'){ digitalWrite(REC, HIGH); Serial.println("录音开始");延迟(记录时间);数字写入(记录,低); Serial.println("录音停止"); } Serial.println("###串行监视器退出"); }// wihileSerial.println("### Enter r to record, p to play");延迟(500);}
SAMPLE 2Arduino
连续录音 3 秒。并播放 5 秒#define REC 2 // 引脚 2 用于录制#define PLAY_E 3 // 引脚 3 用于播放边缘触发 // 当 PLAY_E 变为高电平时,设备将开始播放并继续#define FT 5 // 引脚 5 用于馈通#define playTime 5000 // 播放时间 5 秒#define recordTime 3000 // 录制时间 3 秒#define playLTime 900 // 按下和释放播放时间 0.9 秒void setup() { pinMode(REC ,OUTPUT);//设置REC管脚为输出pinMode(PLAY_E,OUTPUT);//设置PLAY_e管脚为输出pinMode(FT,OUTPUT);//设置FT管脚为输出Serial.begin(9600);/ / 设置串行监视器 }void loop() { digitalWrite(REC, HIGH);延迟(记录时间);数字写入(记录,低);数字写入(PLAY_E,高);延迟(50);数字写入(PLAY_E,低);延迟(播放时间);延迟(500);}
示意图


制造工艺