Arduino Code and Video: ISD1820 Arduino Voice Recorder
The ISD1820 is a simple voice recorder module that allows you to record and playback audio using an Arduino. In this tutorial, you will learn how to set up the ISD1820 with an Arduino to record up to 20 seconds of sound and play it back on command. This project is perfect for beginners looking to explore audio processing with Arduino.

Throughout this tutorial, you'll find key identifiers that are used in the code, such as REC, PLAY_E, and PLAY_L. These identifiers correspond to the pins used for recording and playback functions. Additionally, the code snippets provided will help clarify the programming logic behind this project. For a more detailed explanation, be sure to check the video at (in video at 00:00).
Hardware Explained
The main component of this project is the ISD1820 voice recorder module, which can record audio for up to 20 seconds. It features several pins for controlling recording, playback, and feed-through functions. The module operates on a supply voltage of 3V to 4.5V, making it compatible with most Arduino boards.
In addition to the ISD1820 module, you will need an Arduino board, a speaker, and a microphone. The Arduino will control the recording and playback functions through digital pins. The module's operation is straightforward: it records audio when the record pin is set high and plays audio when the playback pins are activated.
Datasheet Details
| Manufacturer | ISD1820 |
|---|---|
| Part number | ISD1820 |
| Logic/IO voltage | 3.3 V typ. |
| Supply voltage | 3.0 V to 4.5 V |
| Idle current | 0.5 µA typ. |
| Operating current | 30 mA max. |
| Recording time | 20 sec max. |
| Playback time | 20 sec max. |
| Package | 8-DIP |
- Ensure the supply voltage is between 3.0 V and 4.5 V to avoid damaging the module.
- Use resistors to shift the 5V Arduino signal to the 3.3V logic level for safe interfacing.
- Monitor current consumption; the module can draw up to 30 mA during operation.
- Connect a low-power speaker (0.5 W) to the audio output for playback.
- The module supports various recording lengths; adjust timing based on your needs.
Wiring Instructions

To wire the ISD1820 to your Arduino, start by connecting the module's VCC pin to the 3.3V output on the Arduino. Next, connect the GND pin of the module to one of the Arduino's ground pins. For the control pins, connect the module's REC pin to Arduino pin 2, PLAY_E to pin 3, PLAY_L to pin 4, and FT to pin 5.
Since the Arduino operates at 5V, you will need to use a voltage divider to safely connect the control pins. For example, connect a 5 kΩ resistor from the Arduino's pin to the control pin on the module, and then connect a 3.3 kΩ resistor from the module control pin to ground. Repeat this process for any additional control pins to ensure they receive the correct voltage levels.
Code Examples & Walkthrough
The following code snippet defines the pins used for recording and playback. This allows you to easily reference these pins in your code rather than using hardcoded values.
#define REC 2 // pin 2 is used for recording
#define PLAY_E 3 // pin 3 is used for playback-edge trigger
#define PLAY_L 4 // pin 4 is used for playback
In the setup function, we initialize the pins as outputs. This ensures that the Arduino can control the ISD1820 module effectively.
void setup()
{
pinMode(REC, OUTPUT); // set the REC pin as output
pinMode(PLAY_L, OUTPUT); // set the PLAY_L pin as output
pinMode(PLAY_E, OUTPUT); // set the PLAY_E pin as output
}
The main loop checks for user input from the serial monitor. Depending on the character received, it will trigger the appropriate actions, such as recording or playing back audio.
void loop() {
while (Serial.available() > 0) {
char inChar = (char)Serial.read();
if (inChar == 'p' || inChar == 'P') {
digitalWrite(PLAY_E, HIGH); // Start playback
delay(50);
digitalWrite(PLAY_E, LOW); // Stop playback
}
}
This conditional structure allows for flexible control of the ISD1820 based on user input, making it easy to record and playback audio as needed. For further details, the full code loads below the article.
Demonstration / What to Expect
Once everything is set up and the code is uploaded, you should be able to record audio by sending the r command via the serial monitor and playback using the p command. The expected behavior includes a response in the serial monitor indicating when recording starts and stops, as well as when playback begins and ends. Keep in mind the timing set in the code; for instance, recording is set for 3 seconds, and playback for 5 seconds (in video at 05:00).
|||您可能需要的东西
-
亚马逊
-
易趣ISD1820 Voice Recorder from eBayebay.us
-
全球速卖通ISD1820 Voice Recorder from AliExpresss.click.aliexpress.com
资源与参考
尚无可用资源。
文件📁
Fritzing 文件
-
ISD1820 voice recorder module
ISD1820-module.fzpz0.01 MB